普通最小二乘法 LinearRegression

普通最小二乘法  (正规方程组)

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

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

LinearRegression 会调用 fit 方法来拟合数组 X, y,并且将线性模型的系数 w 存储在其成员变量 coef_ 中

from sklearn import linear_model

reg = linear_model.LinearRegression()
reg.fit ([[0, 0], [1, 1], [2, 2]], [0, 1, 2])
print(reg.coef_)  # [0.5 0.5]

LinearRegression(fit_intercept=Truenormalize=Falsecopy_X=Truen_jobs=None)

参数fit_intercept是否计算该模型的截距b。如果设置为False,计算中将不使用截距(例如,数据预期已经居中)。
 normalize当fit_intercept设置为False时,将忽略该参数。若为真,则回归前对回归量X进行归一化处理,取均值减去后除以l2-范数。
copy_X一个布尔值。如果为True,会复制X,否则会覆盖X
n_jobs用于计算的作业数。这只会为n_targets > 1和足够大的问题提供加速。

回值

coef_线性回归问题的估计系数。
 intercept_

b值。

方法fit(Xysample_weight=None)fit 方法来拟合数组 X, y
 get_params(deep=True)就是获得fit_intercept=Truenormalize=Falsecopy_X=Truen_jobs=None
predict(X)利用训练好的参数,来预测新的数据X对应的y
score(Xysample_weight=None)模型的效果
set_params(**params) 
from sklearn import linear_model

reg = linear_model.LinearRegression()
reg.fit ([[0, 0], [1, 1], [2, 2]], [0, 1, 2])
reg.get_params()
print(reg.coef_)
print(reg.intercept_)
print(reg.score([[0, 0], [1, 1], [2, 2]], [0, 1, 2.5]))
print(reg.get_params())
print(reg.set_params(copy_X=False,fit_intercept=False))
print(reg.get_params())

'''
[0.5 0.5]
1.1102230246251565e-16
0.9210526315789473
{'copy_X': True, 'fit_intercept': True, 'n_jobs': 1, 'normalize': False}
LinearRegression(copy_X=False, fit_intercept=False, n_jobs=1, normalize=False)
{'copy_X': False, 'fit_intercept': False, 'n_jobs': 1, 'normalize': False}
'''

 

`sklearn.linearregression` 是一个用于执行线性回归的类,它是 `scikit-learn` 库中的一个模块。`scikit-learn` 是一个非常流行的开源机器学习库,它提供了多种简单易用的工具进行数据分析和数据挖掘。 线性回归是统计学中的一种方法,用来建模因变量 `Y` 和一个或多个自变量 `X` 之间的线性关系。在最简单的情况下,即简单线性回归中,只有一个自变量和一个因变量。线性回归的目标是找到一个线性方程,该方程可以最好地预测因变量的值,基于已知的自变量值。 `sklearn.linearregression` 提供了线性回归模型的实现,包括普通最小二乘法、岭回归(L2 正则化)、Lasso回归(L1 正则化)等多种形式。这些模型可以通过拟合数据集来学习线性关系,并且可以对新的数据进行预测。 以下是一个简单的例子,说明如何使用 `sklearn.linearregression`: ```python from sklearn.linear_model import LinearRegression from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error # 假设有一组数据集,包括特征 X 和目标变量 y X = [[1], [2], [3], [4]] y = [2, 3, 4, 5] # 创建线性回归模型实例 model = LinearRegression() # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 使用训练集数据拟合模型 model.fit(X_train, y_train) # 使用测试集数据进行预测 y_pred = model.predict(X_test) # 计算预测的均方误差 print(mean_squared_error(y_test, y_pred)) ``` 在这个例子中,我们首先导入了必要的模块,然后创建了线性回归模型的实例,并使用训练数据拟合模型。之后,我们使用该模型对测试集进行预测,并计算了预测结果的均方误差。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值