Keras之DNN:基於Keras(sigmoid+binary_crossentropy+predict_proba)利用DNN實現分類預測概率——DIY二分類資料集&預測新資料點
阿新 • • 發佈:2018-11-19
#Keras之DNN:基於Keras(sigmoid+binary_crossentropy+predict_proba)利用DNN實現分類預測概率——DIY二分類資料集&預測新資料點
輸出結果
實現程式碼
# coding:utf-8 #Keras之DNN:基於Keras(sigmoid+binary_crossentropy+predict_proba)利用DNN實現分類預測概率——DIY二分類資料集&預測新資料點 # 生成二分類資料集 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) #T1、單個預測,新的未知資料例項 Xnew = array([[0.89337759, 0.65864154]]) # 作出預測 ynew = model.predict_proba(Xnew) print(Xnew,ynew) plt.scatter(Xnew[0][0],Xnew[0][1],marker='^',c='',edgecolors='b')#edgecolors是控制圓圈的邊緣顏色,c是控制圓心的顏色,c=''就是空心 plt.title('Keras-DNN—Single: Binary classification——Jason Niu') plt.show() # #T2、多個預測,新的未知資料例項 # Xnew, _ = make_blobs(n_samples=3, centers=2, n_features=2, random_state=1) # Xnew = scalar.transform(Xnew) # print(Xnew) # # 作出預測 # ynew = model.predict_proba(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('Keras-DNN—Multiple: Binary classification——Jason Niu') # plt.show()