目錄
Keras架構使用分析
Keras架構設計思路
案例分析
代碼實作
1、實作分類預測:通過Keras建立模型,最終得到的模型能進行兩種預測,一是判斷出類别,二是給出屬于相應類别機率。
(1)、在Keras中,可以利用predict_class()函數來完成,利用最終的模型預測新資料樣本的類别。但是,這個函數僅适用于Sequential模型,不适于使用功能式API開發的模型。
對三個執行個體預測:
# 建立一個新的分類模型
from keras.models import Sequential
from keras.layers import Dense
from sklearn.datasets.samples_generator import make_blobs
from sklearn.preprocessing import MinMaxScaler
# 生成二分類資料集
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)
# 顯示輸入和輸出
for i in range(len(Xnew)):
print("X=%s, Predicted=%s" % (Xnew[i], ynew[i]))
對一個執行個體預測:需要将它包裝變成一個數組的形式。以便傳給predict_classes()函數
from numpy import array
# 生成一個二分類資料集
# 定義并拟合最終的新模型
# 未知的新執行個體
Xnew = array([[0.89337759, 0.65864154]])
# 顯示輸入輸出
print("X=%s, Predicted=%s" % (Xnew[0], ynew[0]))