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实现在无须过多援引的情况下创建字典的方法
Sep 25 Python
11个并不被常用但对开发非常有帮助的Python库
Mar 31 Python
Python黑魔法Descriptor描述符的实例解析
Jun 02 Python
Python3中使用PyMongo的方法详解
Jul 28 Python
python中numpy包使用教程之数组和相关操作详解
Jul 30 Python
Python基于回溯法子集树模板实现图的遍历功能示例
Sep 05 Python
python pyheatmap包绘制热力图
Nov 09 Python
pycharm 将python文件打包为exe格式的方法
Jan 16 Python
Python Django框架url反向解析实现动态生成对应的url链接示例
Oct 18 Python
Python 使用type来定义类的实现
Nov 19 Python
pycharm设置默认的UTF-8编码模式的方法详解
Jun 01 Python
Python .py生成.pyd文件并打包.exe 的注意事项说明
Mar 04 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
海贼王动画变成“真人”后,凯多神还原,雷利太帅了!
2020/04/09 日漫
简单的PHP图片上传程序
2008/03/27 PHP
php获取服务器操作系统相关信息的方法
2016/10/08 PHP
AES加解密在php接口请求过程中的应用示例
2016/10/26 PHP
PHP中CheckBox多选框上传失败的代码写法
2017/02/13 PHP
CL vs ForZe BO5 第二场 2.13
2021/03/10 DOTA
增强的 JavaScript 的 trim 函数的代码
2007/08/13 Javascript
教你如何解密js/vbs/vbscript加密的编码异处理小结
2008/06/25 Javascript
基于jQuery的合并表格中相同文本的相邻单元格的代码
2011/04/06 Javascript
输入密码检测大写是否锁定js实现代码
2012/12/03 Javascript
js获取光标位置和设置文本框光标位置示例代码
2014/01/09 Javascript
JS判断移动端访问设备并加载对应CSS样式
2014/06/13 Javascript
js去除浏览器默认底图的方法
2015/06/08 Javascript
jQuery Ajax 上传文件处理方式介绍(推荐)
2016/06/30 Javascript
jQuery为动态生成的select元素添加事件的方法
2016/08/29 Javascript
对js中回调函数的一些看法
2016/08/29 Javascript
使用snowfall.jquery.js实现爱心满屏飞的效果
2017/01/05 Javascript
JS对象的深度克隆方法示例
2017/03/16 Javascript
ES6新特性八:async函数用法实例详解
2017/04/21 Javascript
js实现股票实时刷新数据案例
2017/05/14 Javascript
JavaScript高阶函数_动力节点Java学院整理
2017/06/28 Javascript
vue中component组件的props使用详解
2017/09/04 Javascript
详解webpack+express多页站点开发
2017/12/22 Javascript
Angular6 Filter实现页面搜索的示例代码
2018/12/02 Javascript
[46:09]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第三场
2014/05/26 DOTA
[37:23]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第二局
2016/03/04 DOTA
python多重继承新算法C3介绍
2014/09/28 Python
Python判断文本中消息重复次数的方法
2016/04/27 Python
解决Python3 抓取微信账单信息问题
2019/07/19 Python
Python多进程编程multiprocessing代码实例
2020/03/12 Python
Python 列表反转显示的四种方法
2020/11/16 Python
使用BeautifulSoup4解析XML的方法小结
2020/12/07 Python
银行员工犯错检讨书
2014/09/16 职场文书
企业法人授权委托书范本
2014/09/23 职场文书
英语四级考试作弊检讨书
2014/09/29 职场文书
Python进阶学习之带你探寻Python类的鼻祖-元类
2021/05/08 Python