Keras之predict二分類:DL之binary_crossentropy&Relu——DIY二分類資料集實現輸入新資料點預測二分類
阿新 • • 發佈:2018-11-19
Keras之predict二分類:DL之binary_crossentropy&Relu——DIY二分類資料集實現輸入新資料點預測二分類
輸出結果
實現程式碼
#Keras之predict二分類:DL之binary_crossentropy&Relu——DIY二分類資料集實現輸入新資料點預測二分類 # 建立一個新的分類模型 from keras.models import Sequential from keras.layers import Dense from sklearn.datasets.samples_generator import make_blobs from sklearn.preprocessing import MinMaxScaler import matplotlib.pyplot as plt import random # 生成二分類資料集 X, y = make_blobs(n_samples=100, centers=2, n_features=2, random_state=1) print(X,y) Xa=[] Xb=[] for i in range(0,len(X)): Xa.append(X[i][0]) Xb.append(X[i][1]) print('a',Xa) print('b',Xb) plt.scatter(Xa,Xb,marker='o',c='',edgecolors='g')#edgecolors是控制圓圈的邊緣顏色,c是控制圓心的顏色,c=''就是空心 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) print(Xnew) # 作出預測 ynew = model.predict_classes(Xnew) # 顯示輸入和輸出 Xnew_x=[] Xnew_y=[] for i in range(len(Xnew)): print("X=%s, Predicted=%s" % (Xnew[i], ynew[i])) Xnew_x.append(Xnew[i][0]) Xnew_y.append(Xnew[i][1]) plt.scatter(Xnew_x,Xnew_y,marker='.',c='',edgecolors='r')#edgecolors是控制圓圈的邊緣顏色,c是控制圓心的顏色,c=''就是空心 plt.title('Binary classification——Binary_crossentropy&Relu——Jason Niu') plt.show()