import pandas as pd
from sklearn.model_selection import train_test_split
from util import *
from sklearn.neural_network import MLPClassifier
#划分数据集
X_train,y_train,X_test,y_test=data_load()
# 初始化model对象
model = MLPClassifier(hidden_layer_sizes=(10, 5), max_iter=500, random_state=42)
# Fit训练
model.fit(X_train,y_train)
# 预测predict
predictions = model.predict(X_test)
#转换为一维
predictions = predictions.flatten()
#计算准确率
accuracy = (predictions == y_test).mean()
print(f"Accuracy: {accuracy}")
#绘制混淆矩阵
plot_confusion(predictions,y_test)
#绘制散点图
drawScatter([y_test, predictions], ['true', 'pred'])
# 记录每轮迭代的准确率
accuracies = []
for i in range(len(model.loss_curve_)):
model_i = MLPClassifier(hidden_layer_sizes=(10, 5), max_iter=i+1, random_state=42)
model_i.fit(X_train, y_train)
predictions_i = model_i.predict(X_test)
accuracy_i = (predictions_i == y_test).mean()
accuracies.append(accuracy_i)
# 绘制每轮迭代的准确率图
plt.figure()
plt.plot(range(1, len(model.loss_curve_)+1), accuracies)
plt.title('每轮迭代的准确率')
plt.xlabel('迭代次数')
plt.ylabel('准确率')
plt.show()
BP分类预测
于 2024-03-14 11:58:56 首次发布
本文探讨了反向传播(BP)算法在深度学习中的作用,特别是其在分类预测任务中的应用。通过讲解BP算法的基本原理,解释了如何使用Python实现BP网络,并展示了在实际数据集上的实验结果,分析了BP算法的优缺点及其在机器学习领域的地位。
摘要由CSDN通过智能技术生成