python实现简单的单变量线性回归方法


Posted in Python onNovember 08, 2018

线性回归是机器学习中的基础算法之一,属于监督学习中的回归问题,算法的关键在于如何最小化代价函数,通常使用梯度下降或者正规方程(最小二乘法),在这里对算法原理不过多赘述,建议看吴恩达发布在斯坦福大学上的课程进行入门学习。

这里主要使用python的sklearn实现一个简单的单变量线性回归。

sklearn对机器学习方法封装的十分好,基本使用fit,predict,score,来训练,预测,评价模型,

一个简单的事例如下:

from pandas import DataFrame
from pandas import DataFrame
import pandas as pd
import matplotlib.pyplot as plt
from sklearn import datasets,linear_model
 
X=[]
Y=[]
with open("C:\\Users\\www\\ex1data1.txt","r") as f:  #读取txt文件。
 for line in f:
  p_tmp, E_tmp = [float(i) for i in line.split(',')]
  X.append(p_tmp)
  Y.append(E_tmp)
 #'data=np.loadtxt('ex1data1.txt',delimiter=',')
# X=data[0]
# Y=data[1]
data=DataFrame(X,columns={'a'})
data['b']=b
X=DataFrame(X)
 
fig = plt.figure()         
ax1 = fig.add_subplot(1,1,1)
plt.scatter(data['a'],data['b'])   #显示X,Y的散点图
 
def linear_model_main(X,Y,predict_value): #定义一个使用线性回归的函数
 regr=linear_model.LinearRegression()
 regr.fit(X,Y)  #训练模型
 predict_output=regr.predict(predict_value) #预测
 predictions={}        #用一个集合装以下元素
 predictions['intercept']=regr.intercept_  #截距
 predictions['codfficient']=regr.coef_   #斜率(参数)
 predictions['predict_value']=predict_output  #预测值
 return predictions
 
result = linear_model_main(X,Y,1500)    #调用函数
print(result['predict_value'])
 
 
def show_predict(X,Y):
 regr=linear_model.LinearRegression()
 regr.fit(X,Y) 
 plt.scatter(X,Y,color='blue')
 plt.plot(X,regr.predict(X),color='red')
 
show_predict(X,Y)

最后拟合结果如图:

python实现简单的单变量线性回归方法

以上这篇python实现简单的单变量线性回归方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python使用ctypes模块调用windowsapi获取系统版本示例
Apr 17 Python
浅谈Python在pycharm中的调试(debug)
Nov 29 Python
对Python3 pyc 文件的使用详解
Feb 16 Python
不到20行代码用Python做一个智能聊天机器人
Apr 19 Python
Django框架model模型对象验证实现方法分析
Oct 02 Python
python数据预处理 :数据抽样解析
Feb 24 Python
python用TensorFlow做图像识别的实现
Apr 21 Python
浅谈Python中的生成器和迭代器
Jun 19 Python
python读取xml文件方法解析
Aug 04 Python
Python Opencv轮廓常用操作代码实例解析
Sep 01 Python
Python3+SQLAlchemy+Sqlite3实现ORM教程
Feb 16 Python
python本地文件服务器实例教程
May 02 Python
python/sympy求解矩阵方程的方法
Nov 08 #Python
python生成lmdb格式的文件实例
Nov 08 #Python
python实现嵌套列表平铺的两种方法
Nov 08 #Python
python用列表生成式写嵌套循环的方法
Nov 08 #Python
在Python中实现shuffle给列表洗牌
Nov 08 #Python
python实现RabbitMQ的消息队列的示例代码
Nov 08 #Python
对Python 3.5拼接列表的新语法详解
Nov 08 #Python
You might like
PHP JSON 数据解析代码
2010/05/26 PHP
五款常用mysql slow log分析工具的比较分析
2011/05/22 PHP
PHP命令行脚本接收传入参数的三种方式
2014/08/20 PHP
JavaScript confirm选择判断
2008/10/18 Javascript
理解Javascript_09_Function与Object
2010/10/16 Javascript
jquery 实现二级/三级/多级联动菜单的思路及代码
2013/04/08 Javascript
解决jquery1.9不支持browser对象的问题
2013/11/13 Javascript
基于javascript实现彩票随机数生成(升级版)
2020/04/17 Javascript
详解Node.js模块间共享数据库连接的方法
2016/05/24 Javascript
jQuery Mobile动态刷新页面样式的实现方法
2016/05/28 Javascript
JavaScript中Math对象的方法介绍
2017/01/05 Javascript
基于Node的React图片上传组件实现实例代码
2017/05/10 Javascript
webpack写jquery插件的环境配置
2017/12/21 jQuery
JS实现运动缓冲效果的封装函数示例
2018/02/18 Javascript
node的process以及child_process模块学习笔记
2018/03/06 Javascript
深入浅出vue图片路径的实现
2019/09/04 Javascript
Vue最新防抖方案(必看篇)
2019/10/30 Javascript
详解vue 组件
2020/06/11 Javascript
JavaScript缓动动画函数的封装方法
2020/11/25 Javascript
Python爬取Coursera课程资源的详细过程
2014/11/04 Python
Python 实现文件的全备份和差异备份详解
2016/12/27 Python
Python实现动态加载模块、类、函数的方法分析
2017/07/18 Python
关于Django外键赋值问题详解
2017/08/13 Python
python selenium 对浏览器标签页进行关闭和切换的方法
2018/05/21 Python
Python使用folium excel绘制point
2019/01/03 Python
萌新的HTML5 入门指南
2020/11/06 HTML / CSS
艺术专业大学生自我评价
2013/09/22 职场文书
大学生秋游活动方案
2014/02/17 职场文书
产品生产计划书
2014/05/07 职场文书
安全生产月宣传标语
2014/10/06 职场文书
婚礼新人答谢词
2015/01/04 职场文书
微信搭讪开场白
2015/05/28 职场文书
烈士陵园观后感
2015/06/08 职场文书
企业法律事务工作总结
2015/08/11 职场文书
源码解读Spring-Integration执行过程
2021/06/11 Java/Android
用Python仅20行代码编写一个简单的端口扫描器
2022/04/08 Python