天天看點

DL之Keras:基于Keras架構建立模型實作【預測】功能的簡介、設計思路、案例分析、代碼實作之詳細攻略(經典,建議收藏)(一)

目錄

Keras架構使用分析

Keras架構設計思路

案例分析

代碼實作

DL之Keras:基于Keras架構建立模型實作【預測】功能的簡介、設計思路、案例分析、代碼實作之詳細攻略(經典,建議收藏)(一)

DL之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]))