Keras之predict二分类:DL之binary_crossentropy&Relu——DIY二分类数据集实现输入新数据点预测二分类

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_41185868/article/details/84234553

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

猜你喜欢

转载自blog.csdn.net/qq_41185868/article/details/84234553