回归和分类的不同,在于它的目标变量是连续数值型。它也是一种监督学习方法。
思想:最基本的回归是用普通最小二乘法(OLS)计算最佳拟合直线的系数w估计。
最小化平方误差
对w求导等于零,得到w的求解公式
import numpy as np
'''
回归:预测数值型数据
以下的回归方法基本都是全局线性模型(除LWLR),在数据量大且特征多而复杂时应用困难
'''
#-------------- 线性回归(普通最小二乘法,OLS) ------------
def standLinearRegression(x, y):
xMat = np.mat(x)
yMat = np.mat(y).T
xTx = xMat.T * xMat
if np.linalg.det(xTx) == 0.0: # 计算行列式,若为0,不满秩,不可逆
print('singular matrix cannot do inverse')
return
w = xTx.I * (xMat.T * yMat)
return w
#---------------- 局部加权线性回归(LWLR) ---------------------
def localWeightLinearRegression(testPtX, x, y, k=1.0):