from sklearn.linear_model import LinearRegression
#导入LinearRegression模块(普通最小二乘线性回归)
#LinearRegression 拟合线性模型,系数 w = (w1, …, wp) 最小化观察目标之间的残差平方和 数据集
#以及线性近似预测的目标。
LinearRegression
( * , fit_intercept = True , normalize = False , copy_X = True , n_jobs = None , positive = False )
LinearRegression有五个参数
1、fit_intercept bool,默认值=True,是否计算此模型的截距。 如果设置 为 False,计算中不使用截距 (即数据应居中)
2、normalize bool,默认值 = False ,当 fit_intercept 设置为 False 时,将忽略此参数。
如果为 True,回归变量 X 将在回归之前通过减去均值,并除以 l2 范数进行归一化。
如果希望标准化,请在使用 normalize=False 对估算器调用 fit 之前使用 StandardScaler。
3、copy_X bool, 默认=True,如果为True,X 将被复制; 否则,它可能会被覆盖。
4、n_jobs int, 默认=None,用来设定CPU运行情况,n_jobs=-1便是使用全部的CPU。一般不需要自己设定,选默认值。
5、positive bool, 默认=False,设置为 True 时,强制系数为正。 仅密集阵列支持此选项。
一些参数:
fit(X, y[, sample_weight]):拟合线性模型。
get_params([深的]):获取此估计器的参数。
predict(X):使用线性模型进行预测。
score(X, y, sample_weight=None):返回决定系数的预测。
最好的得分是1.0,而且有可能会得到负值
set_params(**参数):设置这个估计器的参数。
fit(X, y, sample_weight=None):拟合线性模型。
X:训练数据 y:目标数据 sample_weight=None:每个样本的单独权重
get_params
( deep = True )
获取此估计器的参数。如果为 True,将返回此估计器的参数和 包含作为估计器的子对象。
predict
( X )
X :数组形状测试样品。
score
( X , y , sample_weight = None )
X :数组形状测试样品。 y:目标数据 sample_weight :样本权重。
返回决定系数R^2的预测
set_params
( ** 参数 )
import numpy as np
from sklearn.linear_model import LinearRegression
x = np.array([[1, 1], [1, 2], [2, 2], [2, 3]])
# print(x)
# >>>[[1 1]
# [1 2]
# [2 2]
# [2 3]]
y = np.dot(x, np.array([1, 2])) + 3 # y = 1 * x_0 + 2 * x_1 + 3
# print(y)
# [ 6 8 9 11]
reg = LinearRegression().fit(x, y)
# print(reg)
# LinearRegression()
reg.score(x, y)
# print(reg.score(x, y))
# 1.0
# reg.predict(np.array([[3, 5]]))
print(reg.predict(np.array([[1, 2]])))
print(reg.predict(np.array([[3, 5]])))
print(reg.predict(np.array([[1, 1],[1, 2],[3, 5]])))
# >>>1.0
# [8.]
# [16.]
# [ 6. 8. 16.]
官方文档:
https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html#sklearn.linear_model.LinearRegression.predict