简单的线性回归
来源:互联网 发布:2017php基础班 就业班 编辑:程序博客网 时间:2024/05/16 18:38
1、《麦子学院》
说到线性回归,都不陌生就不多讲了
如图所示,这条线如何求出的,线的方程式为
根据这两个公式求出方程带入即可
展示一下用Python的简单应用:
# coding=utf-8import numpy as np#numpy中有自带的求均值meandef fit(x, y): up = 0 down = 0; n = len(x) for i in range(0, n): up += (x[i]-np.mean(x))*(y[i]-np.mean(y)) down += (x[i]-np.mean(x))**2 b1 = up/float(down) b0 = np.mean(y)-b1*float(np.mean(x)) print b0 print b1 return b0, b1def predicet(b0, b1, p): return b1*p+b0x = [0, 1, 2, 3, 4, 5]y = [0, 20, 60, 68, 77, 110]b0, b1 = fit(x,y)p = 3.5print predicet(b0, b1, p)
2、
《机器学习实战》线性回归
1、线性回归的用处
2、线性回归的定义
3、公式定理
4、代码
5、数据
1、线性回归一般用于预测,比如销量预测,制造缺陷预测,商品的社会劳动时间预测商品的价值等等
2、线性回归一般可以用线性回归函数来进行表示,线性回归意味着可以将输入项分别乘以一个常量,再将结果加起来得到输出,例如房价=w0*离市中心距离+w1,需要说明的就是还存在另一种非线性回归,例如船只寿命=w0*出行次数+w1*造价+额外受损。
3、一般的,得到数据后,经过对数据的处理储存在矩阵X中,回归系数存在向量w中,表示为
一个通常的方法找到最小的误差w,这里的误差指的是真实值Y和预测值之间的差值,我们采用平方误差的方法,即:
用矩阵表示可以写作:
,对w求导可得到
令其等于零,解出w如下
^w表示w的一个最佳估计。
注意的一点就是,求矩阵的逆,首先来判断是否存在。
代码:
# coding=utf-8 from numpy import *import numpy as npimport pylab as pl#处理数据def loadDataSet(fileName): numFeat = len(open(fileName).readline().split('\t')) - 1 dataMat = []; labelMat = [] fr = open(fileName) for line in fr.readlines(): lineArr =[] curLine = line.strip().split('\t') for i in range(numFeat): lineArr.append(float(curLine[i])) dataMat.append(lineArr) labelMat.append(float(curLine[-1])) return dataMat,labelMat#求wdef standRegres(xArr,yArr): xMat = mat(xArr); yMat = mat(yArr).T xTx = xMat.T*xMat if linalg.det(xTx) == 0.0: print "This matrix is singular, cannot do inverse" return ws = xTx.I * (xMat.T*yMat) print "ws:",ws return ws def show(ws, xArr, yArr): ws = array(ws) xArr = array(xArr) yArr = array(yArr) x = linspace(0,1) y = ws[0] + ws[1]*x pl.figure(figsize = (6,5)) pl.plot(x, y, label="$y=ax+b$", linewidth=2.0, color = "red", linestyle = "-") pl.plot(xArr[:, 1], yArr, '.', color = 'g') pl.legend() pl.show()def main(): xArr,yArr = loadDataSet(r"C:\Users\l\Desktop\ex0.txt") ws = standRegres(xArr,yArr) show(ws,xArr, yArr) if __name__ == '__main__': main();
数据:
1.000000 0.067732 3.176513
1.000000 0.427810 3.816464
1.000000 0.995731 4.550095
1.000000 0.738336 4.256571
1.000000 0.981083 4.560815
1.000000 0.526171 3.929515
1.000000 0.378887 3.526170
1.000000 0.033859 3.156393
1.000000 0.132791 3.110301
1.000000 0.138306 3.149813
1.000000 0.247809 3.476346
1.000000 0.648270 4.119688
1.000000 0.731209 4.282233
1.000000 0.236833 3.486582
1.000000 0.969788 4.655492
1.000000 0.607492 3.965162
1.000000 0.358622 3.514900
1.000000 0.147846 3.125947
1.000000 0.637820 4.094115
1.000000 0.230372 3.476039
1.000000 0.070237 3.210610
1.000000 0.067154 3.190612
1.000000 0.925577 4.631504
1.000000 0.717733 4.295890
1.000000 0.015371 3.085028
1.000000 0.335070 3.448080
1.000000 0.040486 3.167440
1.000000 0.212575 3.364266
1.000000 0.617218 3.993482
1.000000 0.541196 3.891471
1.000000 0.045353 3.143259
1.000000 0.126762 3.114204
1.000000 0.556486 3.851484
1.000000 0.901144 4.621899
1.000000 0.958476 4.580768
1.000000 0.274561 3.620992
1.000000 0.394396 3.580501
1.000000 0.872480 4.618706
1.000000 0.409932 3.676867
1.000000 0.908969 4.641845
1.000000 0.166819 3.175939
1.000000 0.665016 4.264980
1.000000 0.263727 3.558448
1.000000 0.231214 3.436632
1.000000 0.552928 3.831052
1.000000 0.047744 3.182853
1.000000 0.365746 3.498906
1.000000 0.495002 3.946833
1.000000 0.493466 3.900583
1.000000 0.792101 4.238522
1.000000 0.769660 4.233080
1.000000 0.251821 3.521557
1.000000 0.181951 3.203344
1.000000 0.808177 4.278105
1.000000 0.334116 3.555705
1.000000 0.338630 3.502661
1.000000 0.452584 3.859776
1.000000 0.694770 4.275956
1.000000 0.590902 3.916191
1.000000 0.307928 3.587961
1.000000 0.148364 3.183004
1.000000 0.702180 4.225236
1.000000 0.721544 4.231083
1.000000 0.666886 4.240544
1.000000 0.124931 3.222372
1.000000 0.618286 4.021445
1.000000 0.381086 3.567479
1.000000 0.385643 3.562580
1.000000 0.777175 4.262059
1.000000 0.116089 3.208813
1.000000 0.115487 3.169825
1.000000 0.663510 4.193949
1.000000 0.254884 3.491678
1.000000 0.993888 4.533306
1.000000 0.295434 3.550108
1.000000 0.952523 4.636427
1.000000 0.307047 3.557078
1.000000 0.277261 3.552874
1.000000 0.279101 3.494159
1.000000 0.175724 3.206828
1.000000 0.156383 3.195266
1.000000 0.733165 4.221292
1.000000 0.848142 4.413372
1.000000 0.771184 4.184347
1.000000 0.429492 3.742878
1.000000 0.162176 3.201878
1.000000 0.917064 4.648964
1.000000 0.315044 3.510117
1.000000 0.201473 3.274434
1.000000 0.297038 3.579622
1.000000 0.336647 3.489244
1.000000 0.666109 4.237386
1.000000 0.583888 3.913749
1.000000 0.085031 3.228990
1.000000 0.687006 4.286286
1.000000 0.949655 4.628614
1.000000 0.189912 3.239536
1.000000 0.844027 4.457997
1.000000 0.333288 3.513384
1.000000 0.427035 3.729674
1.000000 0.466369 3.834274
1.000000 0.550659 3.811155
1.000000 0.278213 3.598316
1.000000 0.918769 4.692514
1.000000 0.886555 4.604859
1.000000 0.569488 3.864912
1.000000 0.066379 3.184236
1.000000 0.335751 3.500796
1.000000 0.426863 3.743365
1.000000 0.395746 3.622905
1.000000 0.694221 4.310796
1.000000 0.272760 3.583357
1.000000 0.503495 3.901852
1.000000 0.067119 3.233521
1.000000 0.038326 3.105266
1.000000 0.599122 3.865544
1.000000 0.947054 4.628625
1.000000 0.671279 4.231213
1.000000 0.434811 3.791149
1.000000 0.509381 3.968271
1.000000 0.749442 4.253910
1.000000 0.058014 3.194710
1.000000 0.482978 3.996503
1.000000 0.466776 3.904358
1.000000 0.357767 3.503976
1.000000 0.949123 4.557545
1.000000 0.417320 3.699876
1.000000 0.920461 4.613614
1.000000 0.156433 3.140401
1.000000 0.656662 4.206717
1.000000 0.616418 3.969524
1.000000 0.853428 4.476096
1.000000 0.133295 3.136528
1.000000 0.693007 4.279071
1.000000 0.178449 3.200603
1.000000 0.199526 3.299012
1.000000 0.073224 3.209873
1.000000 0.286515 3.632942
1.000000 0.182026 3.248361
1.000000 0.621523 3.995783
1.000000 0.344584 3.563262
1.000000 0.398556 3.649712
1.000000 0.480369 3.951845
1.000000 0.153350 3.145031
1.000000 0.171846 3.181577
1.000000 0.867082 4.637087
1.000000 0.223855 3.404964
1.000000 0.528301 3.873188
1.000000 0.890192 4.633648
1.000000 0.106352 3.154768
1.000000 0.917886 4.623637
1.000000 0.014855 3.078132
1.000000 0.567682 3.913596
1.000000 0.068854 3.221817
1.000000 0.603535 3.938071
1.000000 0.532050 3.880822
1.000000 0.651362 4.176436
1.000000 0.901225 4.648161
1.000000 0.204337 3.332312
1.000000 0.696081 4.240614
1.000000 0.963924 4.532224
1.000000 0.981390 4.557105
1.000000 0.987911 4.610072
1.000000 0.990947 4.636569
1.000000 0.736021 4.229813
1.000000 0.253574 3.500860
1.000000 0.674722 4.245514
1.000000 0.939368 4.605182
1.000000 0.235419 3.454340
1.000000 0.110521 3.180775
1.000000 0.218023 3.380820
1.000000 0.869778 4.565020
1.000000 0.196830 3.279973
1.000000 0.958178 4.554241
1.000000 0.972673 4.633520
1.000000 0.745797 4.281037
1.000000 0.445674 3.844426
1.000000 0.470557 3.891601
1.000000 0.549236 3.849728
1.000000 0.335691 3.492215
1.000000 0.884739 4.592374
1.000000 0.918916 4.632025
1.000000 0.441815 3.756750
1.000000 0.116598 3.133555
1.000000 0.359274 3.567919
1.000000 0.814811 4.363382
1.000000 0.387125 3.560165
1.000000 0.982243 4.564305
1.000000 0.780880 4.215055
1.000000 0.652565 4.174999
1.000000 0.870030 4.586640
1.000000 0.604755 3.960008
1.000000 0.255212 3.529963
1.000000 0.730546 4.213412
1.000000 0.493829 3.908685
1.000000 0.257017 3.585821
1.000000 0.833735 4.374394
1.000000 0.070095 3.213817
1.000000 0.527070 3.952681
1.000000 0.116163 3.129283
- 简单的线性回归
- 简单的线性回归
- 回归:简单一元线性回归
- 简单线性回归的Python实现
- 感知机、线性回归、逻辑回归的简单对比
- 感知机、线性回归、逻辑回归的简单对比
- 简单线性回归
- 简单线性回归
- 简单线性回归
- R---简单线性回归
- 简单一元线性回归
- 简单线性回归
- 简单线性回归
- 机器学习回归篇-简单线性回归
- (十一)简单线性回归
- 简单线性回归分析【笔记】
- 7.1 简单线性回归算法
- 7.2 简单线性回归应用
- 二:Modbus常用功能码协议详解
- centos7 安装nfs
- python-快速排序思路
- leetcode 404. Sum of Left Leaves
- 三:Modbus poll|Modbus Slave|虚拟串口的使用
- 简单的线性回归
- SeekBar使用
- 博客固定链接修改后404问题
- C++11 chrono入门
- HTTP中GET和POST方法有什么区别
- POJ 2106 Boolean Expressions 笔记
- linux进程管理
- 四:FreeModbus源码详解
- linux进程管理