Sklearn线性回归

原理

线性回归是最为简单而经典的回归模型,用了最小二乘法的思想,用一个n-1维的超平面拟合n维数据

数学形式

\[y(w,x)=w_0+w_1x_1+w_2x_2+…+w_nx_n
\]

其中称\(w=(w_1,w_2,w_3,...w_n)\)为系数矩阵(coef_),称\(w_0\)为截距(intercept_)

基本步骤

  • 准备数据集
  • 使用线性回归
  • 训练模型
  • 使用训练后的模型预测
  • 模型评估

下面以二维数据举例

例子

#coding=utf-8

import pandas as pd
from sklearn import linear_model
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split def main():
#数据预处理
ad = pd.read_csv('./Advertising.csv',index_col=0)
#为了方便,只取一列作为研究
X = ad[['TV']] #注意此时X的数据类型是dataFrame,如果只有一个括号,类型为Series会报错
Y = ad[['Sales']]
#这里采用交叉验证法划分数据集
X_train, X_test, Y_train, Y_test =train_test_split(X, Y) #创建回归模型对象
lr = linear_model.LinearRegression()
lr.fit(X_train.values.reshape(-1, 1), Y_train.values.reshape(-1, 1))
#显示训练结果
print lr.intercept_,lr.coef_
print lr.score(X_test, Y_test) #用R^2评估
plt.plot(X,lr.predict(X))
plt.scatter(X,Y)
plt.show() if __name__ == '__main__':
main() '''
输出结果
[ 7.21071682] [[ 0.0460963]]
0.713025893451
'''

关于模型评估

这里采用的是\(R^2\)拟合优度检验,是一个属于0~1的值,\(R^2\)越大表示拟合程度越好

Sklearn线性回归的更多相关文章

  1. sklearn线性回归实现房价预测模型

    目录 题目要求 单特征线性回归 方案一 方案二 多特征线性回归 两份数据 ex1data1.txt ex1data2.txt 题目要求 建立房价预测模型:利用ex1data1.txt(单特征)和ex1 ...

  2. sklearn 线性回归

    # import numpy as np import pandas as pd from pandas import Series,DataFrame import matplotlib.pyplo ...

  3. 『科学计算』通过代码理解线性回归&Logistic回归模型

    sklearn线性回归模型 import numpy as np import matplotlib.pyplot as plt from sklearn import linear_model de ...

  4. Scikit-Learn 机器学习笔记 -- 线性回归、逻辑回归、softma

      import numpy as np from matplotlib import pyplot as plt # 创建线性回归数据集 def create_dataset(): X = 2 * ...

  5. skearn自学路径

    sklearn学习总结(超全面) 关于sklearn,监督学习几种模型的对比 sklearn之样本生成make_classification,make_circles和make_moons pytho ...

  6. Sklearn库例子2:分类——线性回归分类(Line Regression )例子

    线性回归:通过拟合线性模型的回归系数W =(w_1,…,w_p)来减少数据中观察到的结果和实际结果之间的残差平方和,并通过线性逼近进行预测. 从数学上讲,它解决了下面这个形式的问题:      Lin ...

  7. sklearn库 线性回归库 LinearRegression

    import numpy as np import sklearn.datasets #加载原数据 from sklearn.model_selection import train_test_spl ...

  8. 使用sklearn机器学习库实现线性回归

    import numpy as np  # 导入科学技术框架import matplotlib.pyplot as plt  # 导入画图工具from sklearn.linear_model imp ...

  9. sklearn学习笔记之简单线性回归

    简单线性回归 线性回归是数据挖掘中的基础算法之一,从某种意义上来说,在学习函数的时候已经开始接触线性回归了,只不过那时候并没有涉及到误差项.线性回归的思想其实就是解一组方程,得到回归函数,不过在出现误 ...

随机推荐

  1. IDEA 出现错误:找不到或无法加载主类

    idea本身缓存问题 解决:清理缓存重启IDEAfile-->invalidate Cache/restart 之后再重新build. 还不行的话,设置一下file-->project s ...

  2. github协作开发遇到的问题

    1.十一来了,帝都不好买票,30号就调休一天回去了,项目还没搞完,紧张的不行,就自己和同事搞了一个github协作开发,由于是功能和公司项目不是很沾边,但是是自己的主要工作,就和同事协调了一下,搭建了 ...

  3. 一脸懵逼搭建Zookeeper分布式集群

    1:首先将http://zookeeper.apache.org/ 下载好的zookeeper-3.4.5.tar.gz上传到三台虚拟机上,之前博客搭建好的(安装Zookeeper之前记得安装好你的j ...

  4. springboot logback 相关使用

    参考: https://www.cnblogs.com/EasonJim/p/9159195.html https://blog.csdn.net/tianyaleixiaowu/article/de ...

  5. webstorm ps

    2018WebStorm注册码   2018-10-10 2018年08月22日 17:36:58 阳光明媚的味道 阅读数:6325   8月21日 http://webstorm.autoseasy ...

  6. POJ 3713 Transferring Sylla【Tarjan求割点】

    题意:给出一个无向图,判断是否任意两点间都存在至少3条互相独立的路,独立指公共顶点只有起点和终点.算法:枚举每个点,删去后用Tarjan判断图中是否存在割点,如果存在则该图不满足三连通性.Tarjan ...

  7. 配置文件——节点<machineKey>的作用,强随机生成

    <machineKey>这个节允许你设置用于加密数据和创建数字签名的服务器特定的密钥.ASP.NET自动使用它来保护表单验证Cookie,你也可以将它用于受保护的视图状态数据.同时,这个密 ...

  8. 使用spark集成kudu做DDL

    spark对kudu表的创建 定义kudu的表需要分成5个步骤: 1:提供表名 2:提供schema 3:提供主键 4:定义重要选项:例如:定义分区的schema 5:调用create Table a ...

  9. 伪分布式hbase2.6.5和hbase1.1.2的配置

    1.注意hadoop和hbase的版本兼容问题 目前测试用:hadoop 2.6.5  Hbase 1.1.2 2.创建hadoop用户 Sudo useradd –m hadoop –s /bin/ ...

  10. Linux LVM动态扩容

    引用自:  https://blog.csdn.net/u012439646/article/details/73380197   xfs_growfs /dev/centos/root  一.首先安 ...