sklearn 回归 算法 最小二乘法

模型的一些通用方法:

lg = LinearRegression()
lg.fit(X,y)
lg.coef_ lg.intercept_
lg.predict(X_new)

  • get_params([deep]):返回模型的参数。

    • deep: 如果为True,则可以返回模型参数的子对象。
  • set_params(**params):设置模型的参数。

    • params:待设置的关键字参数。
  • fit(X,y[,sample_weight]):训练模型。

    • X :训练集样本集合。通常是一个numpy array,每行代表一个样本,每列代表一个特征。
    • y :训练样本的标签集合。它与X 的每一行相对应。
    • sample_weight: 每个样本的权重。它与X 的每一行相对应。
  • predict(x): 利用模型执行预测。返回一个预测结果序列。

    • X:测试集样本集合。通常是一个numpy array,每行代表一个样本,每列代表一个特征。
  • score(X,y[,sample_weight]):对模型进行评估,返回模型的性能评估结果。

    • X:验证集样本集合。通常是一个numpy array,每行代表一个样本,每列代表一个特征。
    • y:验证集样本的标签集合。它与X 的每一行相对应。
    • sample_weight: 每个样本的权重。它与X 的每一行相对应。
    • 对于分类模型,其评估的是accuracy ;对于回归模型,其评估的是R2 。
    • 如果希望有其它的评估指标,则可以执行predict() 方法,然后把预测结果、真实标记作为参数来调用一些打分函数即可。

 LinearRegression

  • LinearRegression是线性回归模型,它的原型为:

  • class sklearn.linear_model.LinearRegression(fit_intercept=True,normalize=False,copy_X=True, n_jobs=1)

    • fit_intercept:一个布尔值,指定是否需要计算截距项,默认存在。
    • normalize:一个布尔值。如果为True,那么训练样本会在训练之前会被归一化,默认关闭。
    • copy_X:一个布尔值。如果为True,则会拷贝X 。
    • n_jobs:一个整数,指定计算并行度。
  • 模型属性:

    • coef_:权重向量。
    • intercept_: 值。
  • 模型方法:

    • fit(X,y[,sample_weight]):训练模型。
    • predict(X):用模型进行预测,返回预测值。
    • score(X,y[,sample_weight]):返回模型的预测性能得分。

代码:

#导入库
import matplotlib.pyplot as plt
import numpy as np
from sklearn.linear_model import LinearRegression
lg = LinearRegression()
#(x,y)的值 把x和y都reshape成列向量
x = np.array([3.6,4.5,2.6,4.9,2.5,3.5]).reshape(-1,1)
y = np.array([9.7,8.1,7.6,8.6,9.0,7.8]).reshape(-1,1)
#训练模型
lg.fit(x,y)
#返回预测的y值
y_predict = lg.predict(x)
#输出权重
print(lg.coef_)
#输出预测的y值 可以看到是一个列表
print(y_predict)
#输出模型的预测性能得分
print(lg.score(y_predict, y))

#画出图像
plt.scatter(x,y,color='red',label= "sample data",linewidth=2)
plt.plot(x,y_predict,color='green',label="fitting line",linewidth=2)
plt.legend(loc='lower right')#设置标签的位置 可以尝试改为upper left
plt.show()

得到的结果:

sklearn 回归 算法 最小二乘法_第1张图片

权重lg.coef_  :

[[0.04025424]]

预测值y_predict:

[[8.46666667]
 [8.50289548]
 [8.42641243]
 [8.51899718]
 [8.42238701]
 [8.46264124]]

模型的预测性能得分 :

-0.07283302230722088

你可能感兴趣的:(Python)