多元线性回归

多元线性回归

从简单线性回归中,我们知道了,房价和面积可能有直接关系,除了面积还会有 地理位置,楼层,装修情况,周围商铺,学校。。。。非常多和房价有直接关系的属性。为了寻找这么多关系和房价的关系函数,多元线性回归就横空出世。

每一个属性都是一个x,对应的属性的权重是θ,b为θ0 如图

image

为了方便向量化,我们变成

image

注意:这里的x0恒等于1

image

那么就可以得出两个向量

image

i表示样本位置

image

这里我们为了方便矩阵点乘,将θ进行转置

最终变成

image

我们可以更直观的看一下

多元线性回归_第1张图片
image

矩阵和向量点乘后得到我们要的结果矩阵

image

同样的,我们得到了结果矩阵后也需要对结果矩阵的误差做评定,然后计算或者使用梯度下降来得到最小的θ

image

我们直接对函数进行求导得到正规方程解,也就是最优的θ

image

计算正规方程解源码

X_b = np.hstack([np.ones((len(X_train), 1)), X_train])
theta = np.linalg.inv(X_b.T.dot(X_b)).dot(X_b.T).dot(y_train)

使用scikit-learn的方法

from sklearn.linear_model import LinearRegression

lin_reg = LinearRegression()
lin_reg.fit(X_train, y_train)

lin_reg.coef_  #θ
lin_reg.intercept_  #截距也就是θ0
lin_reg.score(X_test, y_test)

也可以使用KNN模型来解决线性回归的问题

from sklearn.neighbors import KNeighborsRegressor

knn_reg = KNeighborsRegressor()
knn_reg.fit(X_train_standard, y_train)
knn_reg.score(X_test_standard, y_test)

你可能感兴趣的:(多元线性回归)