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 24 Python
Python Web框架Flask中使用新浪SAE云存储实例
Feb 08 Python
Pandas探索之高性能函数eval和query解析
Oct 28 Python
python 处理dataframe中的时间字段方法
Apr 10 Python
Python subprocess库的使用详解
Oct 26 Python
对Python实现简单的API接口实例讲解
Dec 10 Python
Python OpenCV 使用滑动条来调整函数参数的方法
Jul 08 Python
Python实现朴素贝叶斯的学习与分类过程解析
Aug 24 Python
关于Python中的向量相加和numpy中的向量相加效率对比
Aug 26 Python
如何获取Python简单for循环索引
Nov 21 Python
Python基于字典实现switch case函数调用
Jul 22 Python
OpenCV全景图像拼接的实现示例
Jun 05 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
从零开始学YII2框架(三)扩展插件yii2-gird
2014/08/20 PHP
简单说说PHP优化那些事(经验分享)
2014/11/27 PHP
CodeIgniter配置之autoload.php自动加载用法分析
2016/01/20 PHP
PHP配置ZendOpcache插件加速
2019/02/14 PHP
excel操作之Add Data to a Spreadsheet Cell
2007/06/12 Javascript
jquery 检测元素是否存在的实例代码
2013/11/19 Javascript
css3元素简单的闪烁效果实现(html5 jquery)
2013/12/28 Javascript
浅析jQuery(function(){})与(function(){})(jQuery)之间的区别
2014/01/09 Javascript
JavaScript实现表格点击排序的方法
2015/05/11 Javascript
JAVA四种基本排序方法实例总结
2015/07/24 Javascript
ArtEditor富文本编辑器增加表单提交功能
2016/04/18 Javascript
bootstrap组件之按钮式下拉菜单小结
2017/01/19 Javascript
ionic2 tabs 图标自定义实例
2017/03/08 Javascript
详解vue-router 路由元信息
2017/09/13 Javascript
详解ES7 Decorator 入门解析
2019/02/18 Javascript
vue slot与传参实例代码讲解
2019/04/28 Javascript
js如何实现元素曝光上报
2019/08/07 Javascript
Javascript如何实现双指控制图片功能
2020/02/25 Javascript
[44:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第二局
2016/03/03 DOTA
Flask入门教程实例:搭建一个静态博客
2015/03/27 Python
详解Django缓存处理中Vary头部的使用
2015/07/24 Python
pandas中Timestamp类用法详解
2017/12/11 Python
详解Python连接MySQL数据库的多种方式
2019/04/16 Python
Python编程快速上手——选择性拷贝操作案例分析
2020/02/28 Python
python中id函数运行方式
2020/07/03 Python
为奢侈时尚带来了慈善元素:Olivela
2018/09/29 全球购物
Hotels.com英国:全球领先的酒店住宿提供商
2019/01/24 全球购物
VLAN和VPN有什么区别?分别实现在OSI的第几层?
2014/12/23 面试题
师范大学音乐表演专业求职信
2013/10/23 职场文书
学校运动会开幕演讲稿
2014/01/04 职场文书
2014迎新年晚会策划方案
2014/02/23 职场文书
代理协议书
2014/04/22 职场文书
2014高考励志标语
2014/06/05 职场文书
六查六看自查报告
2014/10/14 职场文书
2016年社区创先争优活动总结
2016/04/05 职场文书
Go语言基础函数基本用法及示例详解
2021/11/17 Golang