一、 先说我对这个题目的理解

直线的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求线性回归斜率的更多相关文章

  1. 机器学习经典算法具体解释及Python实现--线性回归(Linear Regression)算法

    (一)认识回归 回归是统计学中最有力的工具之中的一个. 机器学习监督学习算法分为分类算法和回归算法两种,事实上就是依据类别标签分布类型为离散型.连续性而定义的. 顾名思义.分类算法用于离散型分布预測, ...

  2. 使用python求字符串或文件的MD5

    使用python求字符串或文件的MD5 五月 21st, 2008 #以下可在python3000运行. #字符串md5,用你的字符串代替'字符串'中的内容. import hashlib md5=h ...

  3. python求微分方程组的数值解曲线01

    本人最近在写一篇关于神经网络同步的文章,其一部分模型为: x_i^{\Delta}(t)= -a_i*x_i(t)+ b_i* f(x_i(t))+ \sum\limits_{j \in\{i-1, ...

  4. Python 求点到直线的垂足

    Python 求点到直线的垂足 在已知一个点,和一条已知两个点的直线的情况下 运算公式参考链接:https://www.cnblogs.com/mazhenyu/p/3508735.html def ...

  5. python求100以内素数

    python求100以内素数之和 from math import sqrt # 使用isPrime函数 def isPrime(n): if n <= 1: return False for ...

  6. Python 求两个文本文件以行为单位的交集 并集 差集

    Python 求两个文本文件以行为单位的交集 并集 差集,来代码: s1 = set(open('a.txt','r').readlines()) s2 = set(open('b.txt','r') ...

  7. python求极值点(波峰波谷)

    python求极值点主要用到scipy库. 1. 首先可先选择一个函数或者拟合一个函数,这里选择拟合数据:np.polyfit import pandas as pd import matplotli ...

  8. Python求一个数字列表的元素总和

    Python求一个数字列表的元素总和.练手: 第一种方法,直接sum(list): 1 lst = list(range(1,11)) #创建一个1-10的数字列表 2 total = 0 #初始化总 ...

  9. c#求slope线性回归斜率

    public class mySlope { // public List<double> Values { get; set; } public double SlopeResult { ...

随机推荐

  1. android中执行(定时任务)的方法及6位随机码的产生

    在网上看了很多类似的文章,比较乱,自己总结了一下,在开发中,常见的执行定时任务的方法有以下几种, 很简单的描述,有什么不懂可以留言,下面来介绍一下这几种常见的方法: 1.直接在线程中睡觉的方法,这个比 ...

  2. ios中ASIHTTPRequst的封装

    #import <Foundation/Foundation.h> #import "ASIHTTPRequest.h" #import "ASIDownlo ...

  3. c++ 11 override final

    C++ 11添加了两个继承控制关键字:override和final. override确保在派生类中声明的重载函数跟基类的虚函数有相同的签名.final阻止类的进一步派生和虚函数的进一步重载

  4. mget命令, ftp命令详解

    一:mget命令下载FTP服务器上的多个文件 命令行模式下使用ftp来下载东西还是比较方便的,如果下载一个目录中的多个文件该如何处理呢? 还用每个文件都用get来获得?显然那样很麻烦...... 命令 ...

  5. (转)失败和拒绝,也是一种肯定 找工作时,我四处碰壁这一段经历对自己职业生涯的帮助最大。为什么? "因为这些挫折让我的脸皮变厚了 如果你不是每天被人拒绝,那就说明你的人生目标不够远大 所谓成功,就是不停地经历失败,并且始终保持热情

    (转)失败和拒绝,也是一种肯定 昨天,先是看到一个老外,说了一句很震撼的话. "你个人的项目,应该有四分之一会失败,否则就说明你的冒险精神不够." (Expect and hope ...

  6. 新浪安装weiphp2.0的方法

    请安装此网页的方法来安装: https://coding.net/u/idoubi666/p/weiphp-sae/git

  7. ef SQL Server 版本不支持数据类型“datetime2”

    我遇到这个问题是在用数据库模型的时候.当时我电脑上是sql2008 通过vs2010建立了一个ADO.net数据库模型,之后在项目上线的时候,临时把数据库换成了sql2005,在添加新闻的时候出现了“ ...

  8. 【svn】解析subversion的使用

    目录结构: contents structure [-] 安装客户端 安装服务端 创建仓库 启动仓库 创建客户端与仓库取得联系 使用svn服务 SVN密码管理 SVN的仓库布局和常规命令 分支.合并和 ...

  9. mysql主从复制配置问题

    一,基本步骤 1,创建在主从数据上都创建复制账号,权限选上super, replication slave , replication master(选上这个可以方便从库变成主库): 2,配置主库和备 ...

  10. golang学习笔记 ---数组与切片

    数组: golang数组包含的每个数据称为数组元素(element),数组包含的元素个数被称为数组长度(length). golang数组的长度在定义后不可更改,并且在声明时可以是一个常量或常量表达式 ...