sklearn-linear_regression

来源:互联网 发布:酷听说软件问题 编辑:程序博客网 时间:2024/06/05 03:43
import matplotlib.pyplot as pltimport numpy as npfrom sklearn import datasets,linear_model,discriminant_analysis,cross_validationdef 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))