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实现超简单端口转发的方法
Mar 13 Python
Python爬虫爬验证码实现功能详解
Apr 14 Python
python3将视频流保存为本地视频文件
Jun 20 Python
详解python项目实战:模拟登陆CSDN
Apr 04 Python
python turtle库画一个方格和圆实例
Jun 27 Python
pycharm设置鼠标悬停查看方法设置
Jul 29 Python
Python datetime模块使用方法小结
Jun 18 Python
Python sublime安装及配置过程详解
Jun 29 Python
python 删除excel表格重复行,数据预处理操作
Jul 06 Python
Python Matplotlib简易教程(小白教程)
Jul 28 Python
PyCharm 安装与使用配置教程(windows,mac通用)
May 12 Python
python基础之//、/与%的区别详解
Jun 10 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
利用static实现表格的颜色隔行显示
2006/10/09 PHP
php下用cookie统计用户访问网页次数的代码
2010/05/09 PHP
利用PHP将部分内容用星号替换
2020/04/21 PHP
php获取微信共享收货地址的方法
2017/12/21 PHP
PHP排序算法之希尔排序(Shell Sort)实例分析
2018/04/20 PHP
解决 FireFox 下[使用event很麻烦] 的问题.
2006/08/22 Javascript
js操作CheckBoxList实现全选/反选(在客服端完成)
2013/02/02 Javascript
js弹出窗口之弹出层的小例子
2013/06/17 Javascript
jQuery之折叠面板的深入解析
2013/06/19 Javascript
jQuery 获取、设置HTML或TEXT内容的两种方法
2014/05/23 Javascript
Javascript this 关键字 详解
2014/10/22 Javascript
JavaScript实现SHA-1加密算法的方法
2015/03/11 Javascript
轻量级javascript 框架Backbone使用指南
2015/07/24 Javascript
nodejs实现bigpipe异步加载页面方案
2016/01/26 NodeJs
svg动画之动态描边效果
2017/02/22 Javascript
微信小程序教程系列之新建页面(4)
2017/04/17 Javascript
react-router实现跳转传值的方法示例
2017/05/27 Javascript
react-router中的属性详解
2017/06/01 Javascript
文本溢出插件jquery.dotdotdot.js使用方法详解
2017/06/22 jQuery
详解vue-cli项目中的proxyTable跨域问题小结
2018/02/09 Javascript
基于nodejs的雪碧图制作工具的示例代码
2018/11/05 NodeJs
javascript对HTML字符转义与反转义
2018/12/13 Javascript
实例分析JS中的相等性判断===、 ==和Object.is()
2019/11/17 Javascript
three.js 如何制作魔方
2020/07/31 Javascript
Python中__init__.py文件的作用详解
2016/09/18 Python
插入排序_Python与PHP的实现版(推荐)
2017/05/11 Python
利用Django提供的ModelForm增删改数据的方法
2019/01/06 Python
Python开发网站目录扫描器的实现
2019/02/21 Python
python 实现查找文件并输出满足某一条件的数据项方法
2019/06/12 Python
Django 解决开发自定义抛出异常的问题
2020/05/21 Python
python中的插入排序的简单用法
2021/01/19 Python
欧洲顶级体育电子商务网站:SportsShoes.com
2018/03/27 全球购物
新学期开学寄语
2014/01/18 职场文书
2014年纠风工作总结
2014/12/08 职场文书
学生个人评语大全
2015/01/04 职场文书
详细谈谈MYSQL中的COLLATE是什么
2021/06/11 MySQL