知行编程网知行编程网  2022-03-06 01:00 知行编程网 隐藏边栏 |   抢沙发  44 
文章评分 0 次,平均分 0.0

这是菜鸟学Python的粉丝第1篇原创投稿

阅读本文大概需要3分钟

下面是小郑同学的投稿

    线性回归是数据挖掘中的基础算法之一,也是重要的算法之一,基本上第一次接触的机器学习算法就是线性回归了。因为相对其他算法而言,我觉得线性回归是相对比较容易的算法,从某种意义上来说,在学习函数的时候已经开始接触线性回归了,只不过那个时候并没有涉及到误差项,其实在中学的时候就有接触了,学习的最小二乘法就是啦~~

 

1

 

简介

1).对于坐标系中给定的点,我们希望用一条线或是一个类似于:f(x)=θ0+θ1*x1+θ2*x2_...θn*xn 方程来拟合这写数据点,这就是我们说的回归了

 

2).这次我们要用的是Python中一个有名的库sklearn,这个库里面集成了大部分常用的机器学习算法,使用起来也相对方便,只需调用相关类和函数,就可以完成一个基本的机器学习模型了

 

3).首先感受下本文要用到的线性回归算法,大致核心的代码如下:

sklearn机器学习心得—线性回归|粉丝投稿1

4).只要简单的几行代码,你就可以建立一个线性回归的模型

  • 这里的from sklearn.linear_model import LinearRegression为导入相关的算法类,视具体情况而导入不同的算法类
  • 第二句是初始化该模型;接着是用fit函数完成训练你的数据,得到一个可以用于预测的模型
  • 最后用predict函数进行预测
 

 

2

 

实例分析1

下面先举一个小例子,在原来的基础上加上了数据集,需要注意的是,X_train可以是一维的,二维的,也可以是多维的

 

sklearn机器学习心得—线性回归|粉丝投稿1

 

即X1,X2,X3,……这里是二维的,所以是一个大的列表中包含一个个小列表,每个小列表包含两个数

 

用fit函数后直接predict新的数据X_test,最后打印出结果。print(linreg.coef_)这句是打印出该模型的参数

 

比如这里对数据拟合之后就是[ 0.5  0.5],写出来就是y=0.5*X1+0.5*X2

 

 

3

 

实例分析2

在这个例子中,用到的数据集来自sklearn中自带的数据集,首先简单看一下数据大致情况:

sklearn机器学习心得—线性回归|粉丝投稿1

 

可以看到该数据集共有442条数据,每一条数据有10个特征值(feature),在这里我们不做任何处理,统统把数据扔进去(哈哈哈,我有点懒)

 

sklearn机器学习心得—线性回归|粉丝投稿1

 

  • 读取sklean 自带的diabete数据集
  • 使用全部特征,区分开x和y
  • 把数据集分为训练集和测试集,其中test_size=0.3,即测试集占数据的30%
  • 使用线性回归
  • 进行训练集 和测试集的匹配,即是训练的过程
  • 打印出相关系数和截距等信息
  • 打印出模型的score值

>>

参数为 [ -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的线性回归基本用法就结束了,但需要注意的是,有些模型你得到后的参数是一个列表,外加列表外单独的一个数,列表外的那个数其实是截距,也就是常数,列表里面的则是系数

 

小郑感悟:


最后,本文是我第一次写此类文章,虽然内容不算多,也是忙活了一个下午(但我想主要还是我菜,心累。。。)首先是感受到提供技术文章的作者确实不易,在此十分感谢能无私提供学习文章的广大作者(译者)们。另外,我也是刚刚接触机器学习不久,过程中难免有疏忽、漏洞和错误的地方,也希望各位大神朋友们能不吝赐教,共同进步!

 

sklearn机器学习心得—线性回归|粉丝投稿1欢迎大家关注 菜鸟学Python",更多好玩有趣的Python原创教程,趣味算法,经验技巧,行业动态,尽在菜鸟学Python,一起来学python吧

历史人气文章

菜鸟学Python入门教程大盘点|7个多月的心血总结

同学,学Python真的不能这样学

全网爬取6500多只基金|看看哪家基金最强

用Python破解微软面试题|24点游戏

2道极好的Python算法题|带你透彻理解装饰器的妙用

一道Google的算法题 |Python巧妙破解

     用Python炒股|10年翻400倍的量化投资策略

用Python来分析股票|发现炒股软件里惊人内幕

 

 长按二维码,关注【菜鸟学python】

 

sklearn机器学习心得—线性回归|粉丝投稿1

 

来源 | 菜鸟学Python

作者 | xinxin

本文章为菜鸟学Python独家原创稿件,未经授权不得转载

 

 

本篇文章来源于: 菜鸟学Python

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享