本文主要讲一些sklearn中回归模型的使用,如果需要了解相关理论,请查阅: 【线性回归】面向新手的基础知识
线性回归
引入
from sklearn.linear_model import LinearRegression
# 默认参数如下:
LinearRegression(fit_intercept=True,normalize=False,copy_X=True,n_jobs=1)
重要参数
1,fit_intercept
bool类型,默认为True,表示是否计算截距(即 y = wx + b 中的 b ),推荐设置为True。
2,normalize
bool类型,默认为False,表示是否对各个特征进行标准化(默认方法是:减去均值并除以 l 2 l_2 l2 范数),推荐设置为True。如果设置为False,则建议在输入模型之前,手动进行标准化。
标准化的好处:
-
加速收敛
-
提升精度
注意:fit_intercept 设置为 False 时,将忽略此参数。
3,n_jobs
数值型,默认值为None。表示使用多少个处理器进行运算,当模型有多个回归目标( _targets > 1 )时,加速效果比较明显。推荐设置为 -1 ,此时会调用所有处理器。
重要属性
1,coef_
对应 X 各个特征的系数,绝对值越接近1,表示相关性越强。
2,intercept_
intercept_ 表示模型学习到的截距值。
注意:属性后面有下划线 _
重要方法
1,fit(X, y) ,训练模型
2,predict(X),使用模型进行预测
3,score(X, y),返回 R 2 R^2 R2 值 (确定系数) ,越接近1说明拟合的效果越好。
例子
import matplotlib.pyplot as plt
import numpy as np
from sklearn import datasets, linear_model
from sklearn.metrics import mean_squared_error, r2_score
# 载入糖尿病数据集
diabetes_X, diabetes_y = datasets.load_diabetes(return_X_y=True)
# 只从中抽取一个特征
diabetes_X = diabetes_X[:, np.newaxis, 2]
# 划分训练集与测试集
diabetes_X_train = diabetes_X[:-20]
diabetes_y_train = diabetes_y[:-20]
diabetes_X_test = diabetes_X[-20:]
diabetes_y_test = diabetes_y[-20:]