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中的super用法详解
May 28 Python
日常整理python执行系统命令的常见方法(全)
Oct 22 Python
深入了解Python数据类型之列表
Jun 24 Python
Python内置函数OCT详解
Nov 09 Python
Anaconda 离线安装 python 包的操作方法
Jun 11 Python
Django添加feeds功能的示例
Aug 07 Python
Python3 获取一大段文本之间两个关键字之间的内容方法
Oct 11 Python
在pycharm中使用git版本管理以及同步github的方法
Jan 16 Python
对PyQt5中树结构的实现方法详解
Jun 17 Python
python3+PyQt5 自定义窗口部件--使用窗口部件样式表的方法
Jun 26 Python
python实现一个简单RPC框架的示例
Oct 28 Python
Pandas实现DataFrame的简单运算、统计与排序
Mar 31 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
DIY实用性框形天线
2021/03/02 无线电
Laravel框架实现model层的增删改查(CURD)操作示例
2018/05/12 PHP
jQuery 选择器理解
2010/03/16 Javascript
js indexOf()定义和用法
2012/10/21 Javascript
JS中setInterval、setTimeout不能传递带参数的函数的解决方案
2013/04/28 Javascript
js鼠标点击图片实现随机变换图片的方法
2015/02/16 Javascript
js+css实现文字散开重组动画特效代码分享
2015/08/21 Javascript
JS实现单击输入框弹出选择框效果完整实例
2015/12/14 Javascript
easyui window refresh 刷新两次的解决方法(推荐)
2016/05/18 Javascript
Angular学习笔记之angular的$filter服务浅析
2016/11/12 Javascript
js与jquery分别实现tab标签页功能的方法
2016/11/18 Javascript
jquery获取下拉框中的循环值
2017/02/08 Javascript
jquery实现数字输入框
2017/02/22 Javascript
javascript内存分配原理实例分析
2017/04/10 Javascript
Nuxt.js实战详解
2018/01/18 Javascript
js动态获取时间的方法分析
2019/08/02 Javascript
原生js实现日期选择插件
2020/05/21 Javascript
在vue中使用Echarts利用watch做动态数据渲染操作
2020/07/20 Javascript
js实现简单扫雷
2020/11/27 Javascript
Vue select 绑定动态变量的实例讲解
2020/10/22 Javascript
python获取标准北京时间的方法
2015/03/24 Python
python通过定义一个类实例作为ftp回调方法
2015/05/04 Python
Python操作Excel插入删除行的方法
2018/12/10 Python
python requests post多层字典的方法
2018/12/27 Python
分享8个非常流行的 Python 可视化工具包
2019/06/05 Python
django 类视图的使用方法详解
2019/07/24 Python
css3编写浏览器背景渐变背景色的方法
2018/03/05 HTML / CSS
美国在线鲜花速递:ProFlowers
2017/01/05 全球购物
Rag & Bone官网:瑞格布恩高级成衣
2018/04/19 全球购物
日常奢侈品,轻松购物:Verishop
2019/08/20 全球购物
大学生职业生涯规划书范文
2014/01/14 职场文书
简历的自我评价
2014/02/03 职场文书
企业理念标语
2014/06/09 职场文书
球队口号
2014/06/18 职场文书
上课随便讲话检讨书
2014/09/12 职场文书
SpringBoot系列之MongoDB Aggregations用法详解
2022/02/12 MongoDB