BP分类预测

本文探讨了反向传播(BP)算法在深度学习中的作用,特别是其在分类预测任务中的应用。通过讲解BP算法的基本原理,解释了如何使用Python实现BP网络,并展示了在实际数据集上的实验结果,分析了BP算法的优缺点及其在机器学习领域的地位。
摘要由CSDN通过智能技术生成
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()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

机器小番茄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值