<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 使用 scikit-learn 在 Python 中保存和加載機器學習模型 > 原文: [https://machinelearningmastery.com/save-load-machine-learning-models-python-scikit-learn/](https://machinelearningmastery.com/save-load-machine-learning-models-python-scikit-learn/) 找到準確的機器學習模型并不是項目的終點。 在這篇文章中,您將了解如何使用 scikit-learn 在 Python 中保存和加載機器學習模型。 這允許您將模型保存到文件并稍后加載以進行預測。 讓我們開始吧。 * **2017 年 1 月更新**:已更新,以反映版本 0.18 中 scikit-learn API 的更改。 * **更新 March / 2018** :添加了備用鏈接以下載數據集,因為原始圖像已被刪除。 ![Save and Load Machine Learning Models in Python with scikit-learn](https://img.kancloud.cn/29/72/29723b73d4c189f709a7e794e0d5ff4b_640x361.jpg) 使用 scikit-learn 照片保存并加載機器學習模型 [Christine](https://www.flickr.com/photos/spanginator/3414847568/) ,保留一些權利。 ## 用泡菜完成你的模型 Pickle 是在 Python 中序列化對象的標準方法。 您可以使用 [pickle](https://docs.python.org/2/library/pickle.html) 操作來序列化您的機器學習算法并將序列化格式保存到文件中。 稍后您可以加載此文件以反序列化您的模型并使用它來進行新的預測。 下面的例子演示了如何訓練 [Pima 印第安人糖尿病數據集](https://archive.ics.uci.edu/ml/datasets/Pima+Indians+Diabetes)的邏輯回歸模型,將模型保存到文件并加載它以對未見的測試集進行預測(更新:[下載從這里](https://raw.githubusercontent.com/jbrownlee/Datasets/master/pima-indians-diabetes.data.csv))。 ``` # Save Model Using Pickle import pandas from sklearn import model_selection from sklearn.linear_model import LogisticRegression import pickle url = "https://raw.githubusercontent.com/jbrownlee/Datasets/master/pima-indians-diabetes.data.csv" names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class'] dataframe = pandas.read_csv(url, names=names) array = dataframe.values X = array[:,0:8] Y = array[:,8] test_size = 0.33 seed = 7 X_train, X_test, Y_train, Y_test = model_selection.train_test_split(X, Y, test_size=test_size, random_state=seed) # Fit the model on 33% model = LogisticRegression() model.fit(X_train, Y_train) # save the model to disk filename = 'finalized_model.sav' pickle.dump(model, open(filename, 'wb')) # some time later... # load the model from disk loaded_model = pickle.load(open(filename, 'rb')) result = loaded_model.score(X_test, Y_test) print(result) ``` 運行該示例將模型保存到本地工作目錄中的 **finalized_model.sav** 。加載已保存的模型并對其進行評估可以估算模型對未見數據的準確性。 ``` 0.755905511811 ``` ## 使用 joblib 完成模型 [Joblib](https://pypi.python.org/pypi/joblib) 是 SciPy 生態系統的一部分,提供用于管道化 Python 作業的實用程序。 它提供了[實用程序,用于保存和加載有效利用 NumPy 數據結構的 Python 對象](https://pythonhosted.org/joblib/generated/joblib.dump.html)。 這對于需要大量參數或存儲整個數據集的某些機器學習算法(如 K-Nearest Neighbors)非常有用。 下面的示例演示了如何在 Pima Indians 糖尿病數據集開始時訓練邏輯回歸模型,使用 joblib 將模型保存到文件并加載它以對看不見的測試集進行預測。 ``` # Save Model Using joblib import pandas from sklearn import model_selection from sklearn.linear_model import LogisticRegression from sklearn.externals import joblib url = "https://raw.githubusercontent.com/jbrownlee/Datasets/master/pima-indians-diabetes.data.csv" names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class'] dataframe = pandas.read_csv(url, names=names) array = dataframe.values X = array[:,0:8] Y = array[:,8] test_size = 0.33 seed = 7 X_train, X_test, Y_train, Y_test = model_selection.train_test_split(X, Y, test_size=test_size, random_state=seed) # Fit the model on 33% model = LogisticRegression() model.fit(X_train, Y_train) # save the model to disk filename = 'finalized_model.sav' joblib.dump(model, filename) # some time later... # load the model from disk loaded_model = joblib.load(filename) result = loaded_model.score(X_test, Y_test) print(result) ``` 運行該示例將模型保存為文件 **finalized_model.sav** ,并為模型中的每個 NumPy 數組創建一個文件(另外四個文件)。加載模型后,將報告模型對未見數據的準確性估計值。 ``` 0.755905511811 ``` ## 完成模型的提示 本節列出了最終確定機器學習模型時的一些重要注意事項。 * **Python 版**。記下 python 版本。幾乎可以肯定,當您稍后加載并反序列化時,您需要使用相同的主要(可能是次要)版本的 Python 來序列化模型。 * **庫版本**。在反序列化已保存的模型時,機器學習項目中使用的所有主要庫的版本幾乎肯定需要相同。這不僅限于 NumPy 的版本和 scikit-learn 的版本。 * **手動序列化**。您可能希望手動輸出學習模型的參數,以便將來可以直接在 scikit-learn 或其他平臺中使用它們。通常,機器學習算法用于進行預測的算法比用于學習參數的算法簡單得多,可以很容易地在您可以控制的自定義代碼中實現。 請注意該版本,以便您可以在以后因某種原因無法在其他計算機或其他平臺上重新加載模型時重新創建環境。 ## 摘要 在這篇文章中,您發現了如何使用 scikit-learn 在 Python 中持久保存機器學習算法。 您學習了兩種可以使用的技術: * 用于序列化標準 Python 對象的 pickle API。 * joblib API 用于使用 NumPy 數組有效地序列化 Python 對象。 您對保存和加載機器學習算法或此帖子有任何疑問嗎?在評論中提出您的問題,我會盡力回答。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看