1.KNN算法
#coding:utf-8
from sklearn.neighbors import KNeighborsClassifier
import numpy as np
from sklearn.metrics import confusion_matrix # 导入计算混淆矩阵的包
import pandas as pd
X_train=pd.read_excel('D:\\xtrain.xlsx', header=None)
Y_train=pd.read_excel('D:\\ytrain.xlsx', header=None)
X_test=pd.read_excel('D:\\xtest.xlsx', header=None)
Y_test =pd.read_excel('D:\\ytest.xlsx', header=None)
knn = KNeighborsClassifier(n_neighbors=5) # 获取KNN对象
knn.fit(X_train, Y_train) # 训练模型
# 评估模型
y_pre = knn.predict(X_test)
score = knn.score(X_test, Y_test) # 调用打分函数
print("test set predictions:\n{}".format(Y_test))
print("test set score:{:.2f}".format(score))
if score > 0.9:
x_new = np.array([[5, 2.9, 1, 0.3]])
print("x_new.shape:{}".format(x_new.shape))
prediction = knn.predict(x_new) # 预测
print("prediction:{}".format(prediction))
else:
print("used train or test data is not available !")
X=Y_test
Y=y_pre
C1= confusion_matrix(X,Y) #True_label 真实标签 shape=(n,1);T_predict1 预测标签 shape=(n,1)
print(C1)
2、朴素贝叶斯
from sklearn import naive_bayes
import pandas as pd
from sklearn.metrics import confusion_matrix # 导入计算混淆矩阵的包
X_train=pd.read_excel('D:\\xtrain.xlsx', header=None)
Y_train=pd.read_excel('D:\\ytrain.xlsx', header=None)
X_test=pd.read_excel('D:\\xtest.xlsx', header=None)
Y_test =pd.read_excel('D:\\ytest.xlsx', header=None)
#定义模型
nb = naive_bayes.GaussianNB()
nb.fit(X_train,Y_train)
nb.get_params()
#预测模型得分
sorce = nb.score(X_test,Y_test)
print("此模型得分为%s"%sorce)
# 预测数据,预测特征值
print(nb.predict(X_test))
# 打印真实特征值
print(Y_test)
X=Y_test
Y=nb.predict(X_test)
C1= confusion_matrix(X,Y) #True_label 真实标签 shape=(n,1);T_predict1 预测标签 shape=(n,1)
print(C1)
3、bp神经网络
from sklearn.model_selection import train_test_split
from sklearn.neural_network import MLPClassifier
import pandas as pd
from sklearn.metrics import confusion_matrix # 导入计算混淆矩阵的包
X_train=pd.read_excel('D:\\xtrain.xlsx', header=None)
Y_train=pd.read_excel('D:\\ytrain.xlsx', header=None)
X_test=pd.read_excel('D:\\a.xlsx', header=None)
Y_test =pd.read_excel('D:\\b.xlsx', header=None)
#定义模型
bp = MLPClassifier(max_iter=10000)
bp.fit(X_train,Y_train)
bp.get_params()
#预测模型得分
sorce = bp.score(X_test,Y_test)
print("此模型得分为%s"%sorce)
# 预测数据,预测特征值
print(bp.predict(X_test))
# 打印真实特征值
#print(Y_test)
X=Y_test
Y=bp.predict(X_test)
C1= confusion_matrix(X,Y) #True_label 真实标签 shape=(n,1);T_predict1 预测标签 shape=(n,1)
print(C1)