模型原型
class sklearn.linear_model.LinearRegression(fit_intercept=True,normalisze=False,
copy_X=True,n_jobs=1)
参数
- fit_intercept:是否计算b值
- normalisze:回归前是否归一化
- copy_X:是否复制X
- n_jobs:任务并行时指定的CPU数量(-1表示使用所有可用的CPU)
属性
- coef_f:权重向量
- intercept_:b值
方法
- fit(X,y[,sample_weight]):训练模型
- predict(X):返回预测值
- score(X,y[,sample_weight]):返回预测性能得分
导入库
import matplotlib.pyplot as plt
import numpy as np
from sklearn import datasets,linear_model,discriminant_analysis,cross_validation
加载数据
def load_data():
diabetes=datasets.load_diabetes()
return cross_validation.train_test_split(diabetes.data,diabetes.target,
test_size=0.25,random_state=0)
使用LinearRegression
def test_LinearRegression(*data):
X_train,X_test,y_train,y_test=data
regr=linear_model.LinearRegression()
regr.fit(X_train,y_train)
print('Coefficients:%s,\nintercept %.2f'%(regr.coef_,regr.intercept_))
print('Residual sum of squares:%.2f'%np.mean((regr.predict(X_test)-y_test)**2))
print('Score:%.2f'%regr.score(X_test,y_test))
调用函数
X_train,X_test,y_train,y_test=load_data()
test_LinearRegression(X_train,X_test,y_train,y_test)