基于python的留一法+多元线性回归2021-05-13
程序员文章站
2022-05-04 16:40:07
...
用python进行简单的多元线性回归预测,这里是用性别、体重两个特征预测性别。新手,仅记录,欢迎指导。
划分数据集用的LOO,直接导的包做的。
import pandas as pd # 导入Python的数据处理库pandas,相当于Python里的excel
import numpy as np # 导入Python的数据处理库numpy
data = pd.read_csv('biyelunwen.csv',encoding='gbk')
# 把data转成一个个的数组,不做这一步直接输data[:,0:2],就会报错
A=np.array(data)
X=A[:,0:2]
y=A[:,2]
# 导入线性回归、LOO模块
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import LeaveOneOut
loo=LeaveOneOut()
lin_reg=LinearRegression()
# loo交叉验证法循环
right=0
for train,test in loo.split(data):
X_train,X_test=X[train],X[test]
y_train,y_test=y[train],y[test]
# 训练和预测
lin_reg.fit(X_train,y_train)
y_test_pred=lin_reg.predict(X_test)
if y_test_pred >0.5:
y_test_pred=1
else:
y_test_pred=0
if y_test_pred==y_test:
right=right+1
else:
right=right+0
acc=right/X.shape[0]
print('准确率={:.2f}%'.format(acc*100))
# 显示斜率
w = lin_reg.coef_
print("自变量x的系数w为: ", np.round(w,4))
#np.round保留小数点设置
# 显示截距
b = lin_reg.intercept_
print("常数项(截距)为: ", np.round(b,4))
最后结果:
准确率=84.00%
自变量x的系数w为: [0.0343 0.0119]
常数项(截距)为: -6.0384
上一篇: python爬取喜马拉雅音频数据
下一篇: 扫描JAR包中文件