在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 逻辑回归

逻辑回归用于主要用于二分类问题,与线性回归有些类似

Alt text

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"

 

测试出来的数值指的是测试集中模型判断正确的概率

 

posted on 2018-08-28 19:06  lvgb  阅读(693)  评论(0编辑  收藏  举报

导航