回归
来源:互联网 发布:win7镜像 知乎 编辑:程序博客网 时间:2024/04/29 06:33
回归的概念
回归就是根据输入的数据写出一个目标值的公式,这个公式可以较好对输入的数据进行拟合,这个公式叫做回归方程,而公式中的涉及到的系数成为回归系数,求解这些系数的过程称为回归。简单来讲就是通过曲线对数据进行拟合。
Example
y = a*x1 + b*x2 + c*x3 + d
始终公式就是一个回归方程,其中a,b,c,d为回归系数,根据输入的数据x1,x2,x3 求解上述回归系数。
求解过程中主要是要根据上述回归方程的输出值(预测值)和数据的真实值作比较,通过减少两者的误差来求解回归方程的系数。
原理及过程
求出一个回归方程本质上就是求解这个回归方程的系数,这些系数确定了,回归方程也就确定了,所以所有的工作将在求解和优化这些回归系数上,条件只允许我们通过输入的数据集来获得这些系数。为了确定回归方程及计算回归系数,常有的方法是最小化回归方程的输出值(预测值)和输入数据对应的真实值之间的误差,常用于计算预测值和真实值之间的误差的方式是平方误差:
用矩阵表示可以写成右边的形式:,对w求导数
得到,令其等于零,求得系数w,
当求出w的之后,就可以用其对新的数据进行预测分析
Code
def simpleRegression(X,Y): xMat=mat(X) yMat = mat(Y).T xTx = xMat.T*xMat if(np.linalg.det(xTx) == 0.0): print "输入数据构成的矩阵XMat不可逆" return w = xTx.I * (xMat.T*yMat) return w
基于scikit-learn实现简单的线性回归
import matplotlib.pyplot as pltfrom sklearn import linear_model,datasetsimport numpy as nptrainData=diabetes_x[:-20]testData= diabetes_x[-20:]trainLabels= diabetes.target[:-20]testLabels= diabetes.target[-20:]#通过模块linear_model中的LinearRegressiong#构造函数初始化一个新的模型lrModel = linear_model.LinearRegression()#调用fit()函数,在输入数据上训练模型lrModel.fit(trainData,trainLabels)#获取模型训练后的得到的回归系数weightsweights = lrModel.coef_print "coefficients--weights: " , lrModel.coef_#利用上述回归系数进行预测predict= lrModel.predict(testData)#输出预测值与真实值得平方差print np.mean((predict-testLabels)**2)print lrModel.score(testData,testLabels)
0 0
- 回归
- 回归
- 回归
- 回归
- 回归
- 回归
- 回归
- 回归
- 回归
- 回归
- 回归!
- 回归
- 回归
- 回归
- 回归
- 回归,,,,,,,
- 回归
- 回归
- 【C/C++】命令行参数
- c语言学习----数据类型
- POJ 3411 DFS
- tornodo使用(一)
- Xutils和Xutils3的基本使用(转)
- 回归
- CSS box-flex属性,然后弹性盒子模型简介
- 在query上实现有销售店铺的计数
- 如何在任意界面按某个预设定的硬体按键进入某个Activity
- addview
- 2016腾讯笔试题,删除字符串中的字符,使得剩下的字符串是回文串,如何删除使得回文串最长
- 搭建nginx+tomcat+Java的负载均衡环境
- Glide库
- 正则表达式