sklearn-linear_regression

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()
    '''糖尿病数据集:
        数据集有442个样本
        每个样本有10个特征
        每个特征都是浮点数,数据都在-0.2--0.2之间
        样本的目标在整数25--346之间'''
    return cross_validation.train_test_split(diabetes.data,diabetes.target,test_size = 0.25,random_state = 0)
    #返回值:一个元组,元组依次是:训练样本集、测试样本集、训练样本标签、测试样本标签
'''Linear_Regressionshi sklearn提供的线性回归模型,它的原型为:
class sklearn.LinearRegression(fit_intercept = True,normalize = False,copy_X = True,n_jobs = 1)
参数:
    fit_intercept:布尔值,指定是否需要计算偏置b值,如果为False,那么就不计算b值
    normalize:一个布尔值,如果为True,那么训练样本会在回归之前被归一化
    copy_X:一个布尔值,如果为True,则会复制x,x是训练样本属性
    n_jobs:一个正数,任务并行时指定的cpu数量,如果为-1则使用所有可用的cpu

属性:
    coef_:权重向量
    intercept_:b值
方法:
    fit(X,y[,sample_weight]):训练模型
    predict(X):用模型进行预测,返回预测值
    score(X,y[,sample_weight]):返回预测性能得分
'''
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.intercept %.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))

猜你喜欢

转载自blog.csdn.net/baidu_36161077/article/details/73864241