python求线性回归斜率
一、 先说我对这个题目的理解
直线的x,y方程是这样的:y = kx+b, k就是斜率.
求线性回归斜率, 就是说
有这么一组(x, y)的对应值——样本。如果有四组,就说样本量是4.
根据这些样本,做“线性回归”,最终求出一条直线(即y = kx + b的k值和b值),使得样本里的各个点(x, y) “尽可能的”落到直线(或者直线附近)上。
二、 python解题需要安装的包
实际解题主要用到的python库是pandas. 解题算法是“最小二乘法”,这用到了pandas的ols函数。
我的系统是ubuntu14.04.
实际实验过程如下:
$ sudo pip install numpy
$ sudo pip install pandas
安装pandas的依赖包(使用pandas.ols函数就必须安装这个依赖包):
$ sudo pip install statsmodels
如果发现安装失败,则需要安装系统依赖库先:
在http://www.netlib.org/lapack/ 下载lapack-3.6.0的包,然后:
$ cd lapack-3.6.0
$ mv make.inc.example make.inc
$ sudo apt-get install gfortran
把makefile文件中的:
lib: lapacklib tmglib
改为:
lib: blaslib variants lapacklib tmglib
$ sudo make
$ sudo cp lib*.a /usr/lib
以上依然不行,然而,'可能'只需要下面两个命令:
$ sudo apt-get install libblas-dev liblapack-dev libatlas-base-dev gfortran
$ sudo pip install statsmodels (安装时间有点长...)
过了.
三、 python解题
$ ipython
> import numpy as np
> import pandas as pd
> x = np.array([2,3,4,6])
> xx = pd.DataFrame({"k": x})
> yy = pd.Series([22,33,44,66]) # 口算都知道斜率是11,最终方程是y=11x
> res = pd.ols(y=yy, x=xx)
> res
-------------------------Summary of Regression Analysis-------------------------
Formula: Y ~ <k> + <intercept>
Number of Observations: 4
Number of Degrees of Freedom: 2
R-squared: 1.0000
Adj R-squared: 1.0000
Rmse: 0.0000
F-stat (1, 2): inf, p-value: 0.0000
Degrees of Freedom: model 1, resid 2
-----------------------Summary of Estimated Coefficients------------------------
Variable Coef Std Err t-stat p-value CI 2.5% CI 97.5%
--------------------------------------------------------------------------------
k 11.0000 0.0000 1404889085527666.75 0.0000 11.0000 11.0000
intercept -0.0000 0.0000 -0.68 0.5691 -0.0000 0.0000
---------------------------------End of Summary---------------------------------
可以看出,直线方程就是这样的:y = 11x - 0 (就是最左边的一列值作为k和b)
可以直接读取beta,关注每个系数:
> res.beta
k 1.100000e+01
intercept -2.131628e-14
dtype: float64
> res.beta[0] # <--------- 斜率
(试试把上面样本里x最后一个改为7,即x = np.array([2,3,4,7]))
四、 end
参考资料:
http://www.cnblogs.com/fangwenyu/p/4284523.html
python求线性回归斜率的更多相关文章
- 机器学习经典算法具体解释及Python实现--线性回归(Linear Regression)算法
(一)认识回归 回归是统计学中最有力的工具之中的一个. 机器学习监督学习算法分为分类算法和回归算法两种,事实上就是依据类别标签分布类型为离散型.连续性而定义的. 顾名思义.分类算法用于离散型分布预測, ...
- 使用python求字符串或文件的MD5
使用python求字符串或文件的MD5 五月 21st, 2008 #以下可在python3000运行. #字符串md5,用你的字符串代替'字符串'中的内容. import hashlib md5=h ...
- python求微分方程组的数值解曲线01
本人最近在写一篇关于神经网络同步的文章,其一部分模型为: x_i^{\Delta}(t)= -a_i*x_i(t)+ b_i* f(x_i(t))+ \sum\limits_{j \in\{i-1, ...
- Python 求点到直线的垂足
Python 求点到直线的垂足 在已知一个点,和一条已知两个点的直线的情况下 运算公式参考链接:https://www.cnblogs.com/mazhenyu/p/3508735.html def ...
- python求100以内素数
python求100以内素数之和 from math import sqrt # 使用isPrime函数 def isPrime(n): if n <= 1: return False for ...
- Python 求两个文本文件以行为单位的交集 并集 差集
Python 求两个文本文件以行为单位的交集 并集 差集,来代码: s1 = set(open('a.txt','r').readlines()) s2 = set(open('b.txt','r') ...
- python求极值点(波峰波谷)
python求极值点主要用到scipy库. 1. 首先可先选择一个函数或者拟合一个函数,这里选择拟合数据:np.polyfit import pandas as pd import matplotli ...
- Python求一个数字列表的元素总和
Python求一个数字列表的元素总和.练手: 第一种方法,直接sum(list): 1 lst = list(range(1,11)) #创建一个1-10的数字列表 2 total = 0 #初始化总 ...
- c#求slope线性回归斜率
public class mySlope { // public List<double> Values { get; set; } public double SlopeResult { ...
随机推荐
- VMware Workstation 10.0 简中绿色精简版
VMware Workstation是强大的虚拟机软件,能在一台机器上同时运行二个或更多Windows.DOS.LINUX系统,并进行开发.测试.部署新的应用程序.VMware10.0 延续VMwar ...
- linux创建用户名密码等操作
转自: https://www.linuxidc.com/Linux/2017-06/144916.htm 与大家分享下Linux系统中创建用户.设置密码.修改用户.删除用户的命令,希望对你有所帮助. ...
- linux shell 脚本攻略学习14--head命令详解,tail命令详解
当要查看上千行的大文件时,我们可不会用cat命令把整个文件内容给打印出来,相反,我们可能只需要看文件的一小部分地内容(例如文件的前十行和后十行),我们也有可能需要打印出来前n行或后n行,也有可能打印除 ...
- 树莓派SD卡制作,并成功启动
需要条件: 硬件部分: 1.SD卡一张(树莓派支持的) 2.树莓派3 B + 一个(其他的版本也是可以的,这里默3B+). 1.下载树莓派镜像(NOOBS_v1_9_2.zip) wget http: ...
- Spring Boot中MyBatis的使用
orm框架的本质是简化编程中操作数据库的编码,发展到现在基本上就剩两家了,一个是宣称可以不用写一句SQL的hibernate,一个是可以灵活调试动态sql的mybatis,两者各有特点,在企业级系统开 ...
- IE6,IE7浏览器下 margin 无效的解决方法
今天有时间,所以特意做了一个测试. 复制代码 代码如下: <style type="text/css"> .test-1,.test-2{border:5px soli ...
- C++ 虚函数表浅析
一.背景知识(一些基本概念) 虚函数(Virtual Function):在基类中声明为 virtual 并在一个或多个派生类中被重新定义的成员函数. 纯虚函数(Pure Virtual Functi ...
- cors的实现原理
如何辨认一个请求的源domain? 如何发送和处理cors请求? 优势 和 弱点 cookie 和 伪装 1. http://www.staticapps.org/articles/cross-dom ...
- [转]八幅漫画理解使用JSON Web Token设计单点登录系统
上次在<JSON Web Token - 在Web应用间安全地传递信息>中我提到了JSON Web Token可以用来设计单点登录系统.我尝试用八幅漫画先让大家理解如何设计正常的用户认证系 ...
- ELK日志相关
转: Logstash 讲解与实战应用 原创qw871122016-08-20 16:06:07评论(1)40217人阅读 一.Logstash 介绍 Logstash 是一款强大的数据处理工具,它可 ...