这是菜鸟学Python的粉丝第1篇原创投稿
阅读本文大概需要3分钟
下面是小郑同学的投稿
线性回归是数据挖掘中的基础算法之一,也是重要的算法之一,基本上第一次接触的机器学习算法就是线性回归了。因为相对其他算法而言,我觉得线性回归是相对比较容易的算法,从某种意义上来说,在学习函数的时候已经开始接触线性回归了,只不过那个时候并没有涉及到误差项,其实在中学的时候就有接触了,学习的最小二乘法就是啦~~
1,简介
1).对于坐标系中给定的点,我们希望用一条线或是一个类似于:f(x)=θ0+θ1*x1+θ2*x2_...θn*xn 方程来拟合这写数据点,这就是我们说的回归了
2).这次我们要用的是Python中一个有名的库sklearn,这个库里面集成了大部分常用的机器学习算法,使用起来也相对方便,只需调用相关类和函数,就可以完成一个基本的机器学习模型了
3).首先感受下本文要用到的线性回归算法,大致核心的代码如下:
4).只要简单的几行代码,你就可以建立一个线性回归的模型
2,实例分析
下面先举一个小例子,在原来的基础上加上了数据集,需要注意的是,X_train可以是一维的,二维的,也可以是多维的
即X1,X2,X3,……这里是二维的,所以是一个大的列表中包含一个个小列表,每个小列表包含两个数
用fit函数后直接predict新的数据X_test,最后打印出结果。print(linreg.coef_)这句是打印出该模型的参数
比如这里对数据拟合之后就是[ 0.5 0.5],写出来就是y=0.5*X1+0.5*X2
3,实例分析
在这个例子中,用到的数据集来自sklearn中自带的数据集,首先简单看一下数据大致情况:
可以看到该数据集共有442条数据,每一条数据有10个特征值(feature),在这里我们不做任何处理,统统把数据扔进去(哈哈哈,我有点懒)
>>
参数为 [ -17.33584015 -133.4430929 556.52334063 257.93937783 -851.30658803 535.61270222 109.61905444 56.42194824 795.39454829 163.07702816]
0.487947429125
(PS:这里画风突变是用了不同的IDE)
4,小结
其实,对于该例子,或者说是其他算法而言,从代码上来看,大致遵循这样的“套路”:
model = linear_model.LinearRegression() #使用线性回归
model.fit(X_train, y_train) #训练获得一个model
model.predict(X_test) # 预测
model.score(X_test, y_test) # 获取模型的score值
1).换成其他算法只需修改相应的算法类即可
2).另外,对于该例子或者说其他例子而言,完成一个实战 大致上的思路为:
获取相关数据—>特征选择—>模型选择—>训练数据—>评价模型—>预测结果
3).但在本文中主要是想让读者了解如何使用sklearn中的线性回归模型,所以并没有按照一个具体的流程完整的做出来,以后有机会也会写一写其中的一小个步骤。
4).至此,关于sklearn的线性回归基本用法就结束了,但需要注意的是,有些模型你得到后的参数是一个列表,外加列表外单独的一个数,列表外的那个数其实是截距,也就是常数,列表里面的则是系数
小郑感悟:
最后,本文是我第一次写此类文章,虽然内容不算多,也是忙活了一个下午(但我想主要还是我菜,心累。。。)首先是感受到提供技术文章的作者确实不易,在此十分感谢能无私提供学习文章的广大作者(译者)们。另外,我也是刚刚接触机器学习不久,过程中难免有疏忽、漏洞和错误的地方,也希望各位大神朋友们能不吝赐教,共同进步!
长按二维码,关注【菜鸟学python】