基于Sklearn的双特征Logistic回归训练准确率代码审核请求
Sklearn逻辑回归代码审核与优化建议
代码合理性分析
你的代码整体逻辑通顺:正确导入了Sklearn的逻辑回归模块,完成了数据拼接、模型训练、预测以及准确率计算的核心流程,手动统计错误数再计算准确率的逻辑本身也没问题,最终能输出正确的训练准确率结果。
可优化的细节点
- 缺失numpy导入:代码中使用了
np.vstack但未导入numpy库,运行时会报错,需要在开头添加import numpy as np - 标签维度处理:Sklearn的
fit方法更适配1维数组形式的标签,你的Y_skl是10000×1的二维数组,可能触发警告,建议用Y_skl = Y.flatten()转为1维数组 - 准确率计算可简化:无需手动循环计数,Sklearn内置了
accuracy_score函数,能直接计算准确率,更高效简洁 - 变量
N未定义:代码中使用了range(N)但未定义N,可以用len(Y_skl)或者X_skl.shape[0]来获取样本数量
优化后的代码
# 导入所需库 import numpy as np from sklearn.linear_model import LogisticRegression from sklearn.metrics import accuracy_score # 数据准备与模型训练 X_skl = np.vstack((df1, df2)) # 10000 x 2 特征数组 Y_skl = Y.flatten() # 转换为1维标签数组 log_reg = LogisticRegression() log_reg.fit(X_skl, Y_skl) Y_skl_hat = log_reg.predict(X_skl) # 计算并输出准确率 accuracy = accuracy_score(Y_skl, Y_skl_hat) * 100 print("准确率(%):") print(accuracy)
输出结果:
准确率(%):
99.48
内容的提问来源于stack exchange,提问作者jk0704
相关产品推荐
相关产品推荐

