1.广义线性模型

以下是回归相关的一系列方法,目标值y是输入变量x的线性组合。用数学表达:是预测值

\hat{y}(w, x) = w_0 + w_1 x_1 + ... + w_p x_p

在这个模块中,我们定义向量 w = (w_1,...,w_p) 为 coef_ ,math:w_0 表示为 intercept_

1.1. 普通最小二乘法

LinearRegression 用系数 :math:w = (w_1,...,w_p) 来拟合一个线性模型, 使得数据集实际观测数据和预测数据(估计值)之间残差平方和最小。数学形式可表达为:

\underset{w}{min\,} {|| X w - y||_2}^2


LinearRegression 模型会调用 fit 方法来拟合X,y(X为输入,y为输出).并且会把拟合的线性模型的系数 w 存储到成员变量 coef_ 

       对于普通最小二乘问题,其系数估计依赖模型各项相互独立。当各项是相关的,设计矩阵(Design Matrix) x 的各列近似线性相关, 那么,设计矩阵会趋向于奇异矩阵,这会导致最小二乘估计对于随机误差非常敏感,会产生很大的方差。这种 多重共线性(multicollinearity) 的情况可能真的会出现,比如未经实验设计收集的数据。

1.2.普通最小二乘复杂度

         这种方法通过对矩阵 X 奇异值分解(SVD)的方式来计算最小二乘的解。如果 X 是一个(n, p)大小的矩阵,那么代价为 O(n p^2),假设 n \geq p.

import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets, linear_model

# Load the diabetes dataset
diabetes = datasets.load_diabetes()


# Use only one feature
diabetes_X = diabetes.data[:, np.newaxis, 2]

# Split the data into training/testing sets
diabetes_X_train = diabetes_X[:-20]
diabetes_X_test = diabetes_X[-20:]

# Split the targets into training/testing sets
diabetes_y_train = diabetes.target[:-20]
diabetes_y_test = diabetes.target[-20:]

# Create linear regression object
regr = linear_model.LinearRegression()

# Train the model using the training sets
regr.fit(diabetes_X_train, diabetes_y_train)

# The coefficients
print('Coefficients: \n', regr.coef_)
# The mean square error
print("Residual sum of squares: %.2f"% np.mean((regr.predict(diabetes_X_test) - diabetes_y_test) ** 2))
# Explained variance score: 1 is perfect prediction
print('Variance score: %.2f' % regr.score(diabetes_X_test,diabetes_y_test))

# Plot outputs
plt.xlabel("diabetes_X_test")
plt.ylabel("diabetes_y_test")
plt.scatter(diabetes_X_test, diabetes_y_test,  color='black')
plt.plot(diabetes_X_test, regr.predict(diabetes_X_test), color='blue',linewidth=3)
plt.show()



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值