<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 如何用 Keras 進行預測 > 原文: [https://machinelearningmastery.com/how-to-make-classification-and-regression-predictions-for-deep-learning-models-in-keras/](https://machinelearningmastery.com/how-to-make-classification-and-regression-predictions-for-deep-learning-models-in-keras/) 一旦您在 Keras 中選擇并擬合了最終的深度學習模型,您就可以使用它來對新數據實例進行預測。 初學者對如何做到這一點有一些困惑。我經常看到以下問題: > 如何在 Keras 中使用我的模型進行預測? 在本教程中,您將了解如何使用 Keras Python 庫通過最終的深度學習模型進行分類和回歸預測。 完成本教程后,您將了解: * 如何最終確定模型以便為預測做好準備。 * 如何對 Keras 中的分類問題進行類別概率預測。 * 如何在 Keras 中進行回歸預測。 讓我們開始吧! ![How to Make Classification and Regression Predictions for Deep Learning Models in Keras](https://img.kancloud.cn/e5/b6/e5b6049f8937ff3f3da5adc2a3de2519_640x427.png) 照片由[mstk east](https://www.flickr.com/photos/120248737@N03/16306796118/)提供,并保留所屬權利。 ## 教程概述 本教程分為 3 個部分,分別是: 1. 完成模型 2. 分類預測 3. 回歸預測 ## 1.完成模型 在進行預測之前,必須訓練最終模型。 您可能使用 k 折交叉驗證或訓練/測試分割數據來訓練許多模型,這樣做是為了讓能夠利用模型能估計樣本外的數據,例如一些新數據。 如果這些模型已達到目的,則可以丟棄。 您現在必須在所有可用數據上訓練最終模型,您可以在此處了解有關如何訓練最終模型的更多信息: * [如何訓練最終機器學習模型](https://machinelearningmastery.com/train-final-machine-learning-model/) ## 2.分類預測 分類問題是模型學習輸入要素和作為標簽的輸出要素之間的映射的問題,例如“_垃圾郵件_”和“_非垃圾郵件_”。 下面是 Keras 中針對簡單的兩類(二元)分類問題開發的最終神經網絡模型的示例。 如果您不熟悉在 Keras 中開發神經網絡模型,請參閱帖子: * [用 Keras 逐步開發 Python 中的第一個神經網絡](https://machinelearningmastery.com/tutorial-first-neural-network-python-keras/) ```py # 訓練最終模型的示例 from keras.models import Sequential from keras.layers import Dense from sklearn.datasets.samples_generator import make_blobs from sklearn.preprocessing import MinMaxScaler # 生成2維分類數據集 X, y = make_blobs(n_samples=100, centers=2, n_features=2, random_state=1) scalar = MinMaxScaler() scalar.fit(X) X = scalar.transform(X) # 定義并擬合最終模型 model = Sequential() model.add(Dense(4, input_dim=2, activation='relu')) model.add(Dense(4, activation='relu')) model.add(Dense(1, activation='sigmoid')) model.compile(loss='binary_crossentropy', optimizer='adam') model.fit(X, y, epochs=200, verbose=0) ``` 完成后,您可能希望將模型保存到文件,例如通過 Keras API 保存后,您可以隨時加載模型并使用它進行預測,有關此示例,請參閱帖子: * [保存并加載您的 Keras 深度學習模型](https://machinelearningmastery.com/save-load-keras-deep-learning-models/) 為簡單起見,我們將跳過本教程中的示例。 我們可能希望使用最終模型進行兩種類型的分類預測,它們是類別預測和概率預測。 ### 類別預測 給出最終模型和一個或多個數據實例的類別預測,預測數據實例的類別。 我們并不知道新數據的分類結果,這就是我們首先需要定義模型的原因。 我們可以使用 `predict_classes()` 函數在 Keras 中使用我們最終的分類模型來預測新數據實例的類別。請注意,此函數僅適用于 `Sequential`模型,而不適用于使用函數 API 開發的其他模型。 例如,我們在名為 `Xnew` 的數組中有一個或多個數據實例,可以傳遞給我們模型上的 `predict_classes()`函數,以便預測數組中每個實例的類別。 ```py Xnew = [[...], [...]] ynew = model.predict_classes(Xnew) ``` 讓我們通過一個例子來具體演示這個過程: ```py # 對分類問題做出類別預測的示例 from keras.models import Sequential from keras.layers import Dense from sklearn.datasets.samples_generator import make_blobs from sklearn.preprocessing import MinMaxScaler #生成2維的分類數據集 X, y = make_blobs(n_samples=100, centers=2, n_features=2, random_state=1) scalar = MinMaxScaler() scalar.fit(X) X = scalar.transform(X) # 定義并擬合最終模型 model = Sequential() model.add(Dense(4, input_dim=2, activation='relu')) model.add(Dense(4, activation='relu')) model.add(Dense(1, activation='sigmoid')) model.compile(loss='binary_crossentropy', optimizer='adam') model.fit(X, y, epochs=500, verbose=0) # 不知分類結果的新的實例 Xnew, _ = make_blobs(n_samples=3, centers=2, n_features=2, random_state=1) Xnew = scalar.transform(Xnew) # 做出預測 ynew = model.predict_classes(Xnew) # show the inputs and predicted outputs for i in range(len(Xnew)): print("X=%s, Predicted=%s" % (Xnew[i], ynew[i])) ``` 運行該示例預測三個新數據實例的類,然后將數據和預測一起打印。 ```py X=[0.89337759 0.65864154], Predicted=[0] X=[0.29097707 0.12978982], Predicted=[1] X=[0.78082614 0.75391697], Predicted=[0] ``` 如果您只有一個新的數據實例,則可以將其作為包含在數組中的實例提供給 `predict_classes()` 函數,例如: ```py # 對分類問題做出類別預測的示例 from keras.models import Sequential from keras.layers import Dense from sklearn.datasets.samples_generator import make_blobs from sklearn.preprocessing import MinMaxScaler from numpy import array # 生成2維分類數據集 X, y = make_blobs(n_samples=100, centers=2, n_features=2, random_state=1) scalar = MinMaxScaler() scalar.fit(X) X = scalar.transform(X) # 定義并擬合最終模型 model = Sequential() model.add(Dense(4, input_dim=2, activation='relu')) model.add(Dense(4, activation='relu')) model.add(Dense(1, activation='sigmoid')) model.compile(loss='binary_crossentropy', optimizer='adam') model.fit(X, y, epochs=500, verbose=0) # 不知結果的新的實例 Xnew = array([[0.89337759, 0.65864154]]) # make a prediction ynew = model.predict_classes(Xnew) # 輸入和輸出的預測結果 print("X=%s, Predicted=%s" % (Xnew[0], ynew[0])) ``` 運行該示例將打印單個實例和預測類。 ```py X=[0.89337759 0.65864154], Predicted=[0] ``` ### 關于類別標簽的注意事項 請注意,在準備數據時,您將把域中的類值(例如字符串)映射到整數值。您可能使用過 _[LabelEncoder](http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.LabelEncoder.html#sklearn.preprocessing.LabelEncoder)_ 。 此 _LabelEncoder_ 可用于通過 `inverse_transform()` 函數將整數轉換回字符串值。 因此,您可能希望在擬合最終模型時保存(pickle)用于編碼`y`值的 _LabelEncoder_ 。 ### 概率預測 您可能希望進行的另一種類型的預測是數據實例屬于每個類別的概率。 這被稱為概率預測,其中,給定新實例,模型將為每個結果類別的概率返回為 0 和 1 之間的值。 您可以通過調用 `predict_proba()` 函數在 Keras 中進行這些類型的預測,如下所示: ```py Xnew = [[...], [...]] ynew = model.predict_proba(Xnew) ``` 在二元(二進制)分類問題的情況下,通常在輸出層中使用 `sigmoid`激活函數,預測概率被視為屬于類 1 的觀測值的概率,或被反轉(1-概率)以給出類 0 的概率。 在多類分類問題的情況下,通常在輸出層上使用 `softmax` 激活函數,并且將每個類的概率觀測值作為向量返回。 以下示例對數據實例的 _Xnew_ 數組中的每個示例進行概率預測。 ```py # 為分類問題做出概率預測的示例 from keras.models import Sequential from keras.layers import Dense from sklearn.datasets.samples_generator import make_blobs from sklearn.preprocessing import MinMaxScaler # 生成2維分類數據集 X, y = make_blobs(n_samples=100, centers=2, n_features=2, random_state=1) scalar = MinMaxScaler() scalar.fit(X) X = scalar.transform(X) #定義并擬合最終模型 model = Sequential() model.add(Dense(4, input_dim=2, activation='relu')) model.add(Dense(4, activation='relu')) model.add(Dense(1, activation='sigmoid')) model.compile(loss='binary_crossentropy', optimizer='adam') model.fit(X, y, epochs=500, verbose=0) # 不知分類結果的新的實例 Xnew, _ = make_blobs(n_samples=3, centers=2, n_features=2, random_state=1) Xnew = scalar.transform(Xnew) # 做出預測 ynew = model.predict_proba(Xnew) # show the inputs and predicted outputs for i in range(len(Xnew)): print("X=%s, Predicted=%s" % (Xnew[i], ynew[i])) ``` 運行實例會進行概率預測,然后打印輸入數據實例以及屬于類 1 的每個實例的概率。 ```py X=[0.89337759 0.65864154], Predicted=[0.0087348] X=[0.29097707 0.12978982], Predicted=[0.82020265] X=[0.78082614 0.75391697], Predicted=[0.00693122] ``` 如果您想向用戶提供專業的概率解釋,這的應用程序中會對您有所幫助。 ## 3.回歸預測 回歸是一種監督學習問題,在給定輸入示例的情況下,模型學習到適當輸出量的映射,例如“0.1”和“0.2”等。 下面是用于回歸的最終 Keras 模型的示例。 ```py # 訓練最終回歸模型的示例 from keras.models import Sequential from keras.layers import Dense from sklearn.datasets import make_regression from sklearn.preprocessing import MinMaxScaler # 生成回歸數據集 X, y = make_regression(n_samples=100, n_features=2, noise=0.1, random_state=1) scalarX, scalarY = MinMaxScaler(), MinMaxScaler() scalarX.fit(X) scalarY.fit(y.reshape(100,1)) X = scalarX.transform(X) y = scalarY.transform(y.reshape(100,1)) # 定義并擬合最終模型 model = Sequential() model.add(Dense(4, input_dim=2, activation='relu')) model.add(Dense(4, activation='relu')) model.add(Dense(1, activation='linear')) model.compile(loss='mse', optimizer='adam') model.fit(X, y, epochs=1000, verbose=0) ``` 我們可以通過在最終模型上調用 `predict()` 函數來使用最終的回歸模型預測數量。 `predict()` 函數獲取一個或多個數據實例的數組。 下面的示例演示了如何對具有未知預期結果的多個數據實例進行回歸預測。 ```py # 為回歸問題做出最終預測的示例 from keras.models import Sequential from keras.layers import Dense from sklearn.datasets import make_regression from sklearn.preprocessing import MinMaxScaler # 生成回歸數據集 X, y = make_regression(n_samples=100, n_features=2, noise=0.1, random_state=1) scalarX, scalarY = MinMaxScaler(), MinMaxScaler() scalarX.fit(X) scalarY.fit(y.reshape(100,1)) X = scalarX.transform(X) y = scalarY.transform(y.reshape(100,1)) # 定義并擬合最終模型 model = Sequential() model.add(Dense(4, input_dim=2, activation='relu')) model.add(Dense(4, activation='relu')) model.add(Dense(1, activation='linear')) model.compile(loss='mse', optimizer='adam') model.fit(X, y, epochs=1000, verbose=0) # 不知結果的新的數據實例 Xnew, a = make_regression(n_samples=3, n_features=2, noise=0.1, random_state=1) Xnew = scalarX.transform(Xnew) # 做出預測 ynew = model.predict(Xnew) #打印輸入值和預測的輸出 for i in range(len(Xnew)): print("X=%s, Predicted=%s" % (Xnew[i], ynew[i])) ``` 運行該示例會進行多次預測,然后并排打印輸入和預測以供審閱。 ```py X=[0.29466096 0.30317302], Predicted=[0.17097184] X=[0.39445118 0.79390858], Predicted=[0.7475489] X=[0.02884127 0.6208843 ], Predicted=[0.43370453] ``` 可以使用相同的函數來對單個數據實例進行預測,只要它適當地包裝在列表或者數組的環境中即可。 例如: ```py # 做出回歸預測的實例 from keras.models import Sequential from keras.layers import Dense from sklearn.datasets import make_regression from sklearn.preprocessing import MinMaxScaler from numpy import array # 生成回歸數據集 X, y = make_regression(n_samples=100, n_features=2, noise=0.1, random_state=1) scalarX, scalarY = MinMaxScaler(), MinMaxScaler() scalarX.fit(X) scalarY.fit(y.reshape(100,1)) X = scalarX.transform(X) y = scalarY.transform(y.reshape(100,1)) # 定義并擬合最終模型 model = Sequential() model.add(Dense(4, input_dim=2, activation='relu')) model.add(Dense(4, activation='relu')) model.add(Dense(1, activation='linear')) model.compile(loss='mse', optimizer='adam') model.fit(X, y, epochs=1000, verbose=0) # 不知結果的新的實例 Xnew = array([[0.29466096, 0.30317302]]) #做出預測 ynew = model.predict(Xnew) # 打印輸入和預測的輸出 print("X=%s, Predicted=%s" % (Xnew[0], ynew[0])) ``` 運行該示例進行單個預測并打印數據實例和預測以供審閱。 ```py X=[0.29466096 0.30317302], Predicted=[0.17333156] ``` ## 進一步閱讀 如果您希望深入了解,本節將提供有關該主題的更多資源。 * [如何訓練最終機器學習模型](https://machinelearningmastery.com/train-final-machine-learning-model/) * [保存并加載您的 Keras 深度學習模型](https://machinelearningmastery.com/save-load-keras-deep-learning-models/) * [用 Keras 逐步開發 Python 中的第一個神經網絡](https://machinelearningmastery.com/tutorial-first-neural-network-python-keras/) * [Keras 中長期短期記憶模型的 5 步生命周期](https://machinelearningmastery.com/5-step-life-cycle-long-short-term-memory-models-keras/) * [如何用 Keras 中的長短期記憶模型進行預測](https://machinelearningmastery.com/make-predictions-long-short-term-memory-models-keras/) ## 摘要 在本教程中,您了解了如何使用 Keras Python 庫通過最終的深度學習模型進行分類和回歸預測。 具體來說,你學到了: * 如何最終確定模型以便為預測做好準備。 * 如何對 Keras 中的分類問題進行類別和概率預測。 * 如何在 Keras 中進行回歸預測。 你有任何問題嗎? 在下面的評論中提出您的問題,我會盡力回答。
                  <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>

                              哎呀哎呀视频在线观看