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分割和拼接字符串
Nov 01 Python
Python实现建立SSH连接的方法
Jun 03 Python
一篇文章入门Python生态系统(Python新手入门指导)
Dec 11 Python
python中enumerate函数遍历元素用法分析
Mar 11 Python
Python正则抓取新闻标题和链接的方法示例
Apr 24 Python
Python中Scrapy爬虫图片处理详解
Nov 29 Python
python ChainMap 合并字典的实现步骤
Jun 11 Python
Python实现的微信红包提醒功能示例
Aug 22 Python
pyinstaller还原python代码过程图解
Jan 08 Python
解决springboot yml配置 logging.level 报错问题
Feb 21 Python
Python基于stuck实现scoket文件传输
Apr 02 Python
一文弄懂Pytorch的DataLoader, DataSet, Sampler之间的关系
Jul 03 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实现异步调用方法研究与分享
2011/10/27 PHP
php使用array_rand()函数从数组中随机选择一个或多个元素
2014/04/28 PHP
PHP基于yii框架实现生成ICO图标
2015/11/13 PHP
php实现的mysqldb读写分离操作类示例
2017/02/07 PHP
JavaScript 指导方针
2007/04/05 Javascript
use jscript List Installed Software
2007/06/11 Javascript
document.getElementById获取控件对象为空的解决方法
2013/11/20 Javascript
JavaScript中用toString()方法返回时间为字符串
2015/06/12 Javascript
理解 JavaScript Scoping & Hoisting(二)
2015/11/18 Javascript
详解nodejs 文本操作模块-fs模块(三)
2016/12/22 NodeJs
react系列从零开始_简单谈谈react
2017/07/06 Javascript
vue2 中二级路由高亮问题及配置方法
2019/06/10 Javascript
如何在面试中手写出javascript节流和防抖函数
2020/10/22 Javascript
javascript实现搜索筛选功能实例代码
2020/11/12 Javascript
Vue如何跨组件传递Slot的实现
2020/12/14 Vue.js
Python 文件重命名工具代码
2009/07/26 Python
使用Python编写简单网络爬虫抓取视频下载资源
2014/11/04 Python
常见的python正则用法实例讲解
2016/06/21 Python
Python图形绘制操作之正弦曲线实现方法分析
2017/12/25 Python
python中单例常用的几种实现方法总结
2018/10/13 Python
python实现朴素贝叶斯算法
2018/11/19 Python
python实现小世界网络生成
2019/11/21 Python
用sleep间隔进行python反爬虫的实例讲解
2020/11/30 Python
基于html5 canvas做批改作业的小插件
2020/05/20 HTML / CSS
建筑工程技术应届生自荐信
2013/09/27 职场文书
教师个人的自我评价分享
2014/01/02 职场文书
农村改厕实施方案
2014/03/22 职场文书
司法建议书范文
2014/05/13 职场文书
2014县政府领导班子对照检查材料思想汇报
2014/09/25 职场文书
在宿舍喝酒的检讨书
2014/09/28 职场文书
房屋产权共有协议书范本
2014/11/03 职场文书
2015年个人自我剖析材料
2014/12/29 职场文书
四十年同学聚会致辞
2015/07/28 职场文书
2016年劳模先进事迹材料
2016/02/25 职场文书
为什么在foreach循环中JAVA集合不能添加或删除元素
2021/06/11 Java/Android
Spring this调用当前类方法无法拦截的示例代码
2022/03/20 Java/Android