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将mdb数据库文件导入postgresql数据库示例
Feb 17 Python
零基础学Python(一)Python环境安装
Aug 20 Python
python过滤字符串中不属于指定集合中字符的类实例
Jun 30 Python
Python Nose框架编写测试用例方法
Oct 26 Python
Windows下Anaconda的安装和简单使用方法
Jan 04 Python
Python/ArcPy遍历指定目录中的MDB文件方法
Oct 27 Python
详解Python3中setuptools、Pip安装教程
Jun 18 Python
基于Django统计博客文章阅读量
Oct 29 Python
python读写Excel表格的实例代码(简单实用)
Dec 19 Python
python爬取王者荣耀全皮肤的简单实现代码
Jan 31 Python
Python学习之时间包使用教程详解
Mar 21 Python
python中 Flask Web 表单的使用方法
May 20 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
浅析iis7.5安装配置php环境
2015/05/10 PHP
jquery.combobox中文api和例子,修复了上面的小bug
2011/03/28 Javascript
web开发人员学习jQuery的6大理由及jQuery的优势介绍
2013/01/03 Javascript
JS滚轮事件onmousewheel使用介绍
2013/11/01 Javascript
JavaScript的常见兼容问题及相关解决方法(chrome/IE/firefox)
2013/12/31 Javascript
js 左右悬浮对联广告特效代码
2014/12/12 Javascript
PageSwitch插件实现100种不同图片切换效果
2015/07/28 Javascript
使用jQuery mobile库检测url绝对地址和相对地址的方法
2015/12/04 Javascript
JavaScript数组去重的两种方法推荐
2016/04/05 Javascript
浅谈JS继承_借用构造函数 & 组合式继承
2016/08/16 Javascript
原生js封装的一些jquery方法(详解)
2016/09/20 Javascript
详解JavaScript中的属性和特性
2016/12/08 Javascript
Vue.js学习笔记之常用模板语法详解
2017/07/25 Javascript
JavaScript正则表达式校验与递归函数实际应用实例解析
2017/08/04 Javascript
JS库之Particles.js中文开发手册及参数详解
2017/09/13 Javascript
jquery在启动页面时,自动加载数据的实例
2018/01/22 jQuery
python实现爬虫下载美女图片
2015/07/14 Python
Python多维/嵌套字典数据无限遍历的实现
2016/11/04 Python
Python和C/C++交互的几种方法总结
2017/05/11 Python
分享vim python缩进等一些配置
2018/07/02 Python
Python爬虫实战之12306抢票开源
2019/01/24 Python
python验证码图片处理(二值化)
2019/11/01 Python
tensorflow实现训练变量checkpoint的保存与读取
2020/02/10 Python
解决keras,val_categorical_accuracy:,0.0000e+00问题
2020/07/02 Python
基于HTML5的WebGL经典3D虚拟机房漫游动画
2017/11/15 HTML / CSS
佛罗里达州印第安河新鲜水果:Hale Groves
2017/02/20 全球购物
护士自我鉴定
2013/10/23 职场文书
庆元旦广播稿
2014/02/10 职场文书
学用政策心得体会
2014/09/10 职场文书
2015年高三班主任工作总结
2015/05/21 职场文书
2016春季幼儿园大班开学寄语
2015/12/03 职场文书
班组长如何制订适合本班组的工作计划?
2019/07/10 职场文书
python执行js代码的方法
2021/05/13 Python
SpringRetry重试框架的具体使用
2021/07/25 Java/Android
浅谈Redis变慢的原因及排查方法
2022/06/21 Redis