模型的一些通用方法:
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()
得到的结果:
权重lg.coef_ :
[[0.04025424]]
预测值y_predict:
[[8.46666667]
[8.50289548]
[8.42641243]
[8.51899718]
[8.42238701]
[8.46264124]]模型的预测性能得分 :
-0.07283302230722088