在python中实现回归
1 什么是线性回归
确定因变量与多个自变量之间的关系,将其拟合成线性关系构建模型,进而预测因变量
2 线性回归原理
最小二乘法OLS(ordinary learst squares)
模型的y与实际值y之间误差的平方最小
梯度下降
I don't know
3 在python中实现线性回归
import sklearn from sklearn import linear_model
#导入机器学习 lm = linear_model.LinearRegression() model = lm.fit(x,y)
#将训练集放入x、y即可训练出模型
x = features
features = [a,b,c,d]
通常x是多个变量的,也可以是由不同特征进行组合成模型,这样模型就可以拥有多个。可以通过对各个模型进行评估来判断究竟那个模型更为合理
为进行评估需要对数据集进行划分为训练集和测试集,在训练集训练模型,测试集评估误差
在评估过程可以将数据集多次划分测试集,通常使用交叉检验,减少随机性,使得数据集中数据都能作为测试集进行评估
from sklearn.model_selection import cross_val_score cross_val_score(lm,x,y,cv = 5,scoring ="neg_mean_absolute_error")
#通常使用他们的平均值衡量
import numpy as np
print(np.mean(cross_val_score(lm,x,y,cv = 5,scoring ="neg_mean_absolute_error"))
- MAE=
,对应的scoring参数为’neg_mean_absolute_error’
- MSE=
/N, 对应的scoring参数为’neg_mean_squared_error’
至此可以通过交叉检验测试不同x组合时各模型的得分,从而选择表现较好的模型进行预测y
model.predict(something)
4 逻辑回归
逻辑回归用于主要用于二分类问题,与线性回归有些类似
y属于[0.5,1)时可以归为是类别一,否则属于类别二
from sklearn.preprocessing import LableEncoder
le = LableEncoder()
le.fit(y)
#将y遍历为可识别的类别
y=le.transform(y)
#转化y
lm = linear_model.LogisticRegression() model = lm.fit(x,y) cross_val_score(lm,x,y,cv=5,scoring="accuracy"
测试出来的数值指的是测试集中模型判断正确的概率