sklearn:线性回归(实战LinearRegression)

650 阅读2分钟

1/前言

sklearn中的datasets目录中,有很多已经准备好的数据,这是官方提供的,我们可以随意使用。
比如: boston房价, 糖尿病, 数字, Iris花。
也可以自己准备数据,例如用来训练线性回归模型的数据,可以用函数来生成。

例如,点击进入 boston房价 的数据,可以看到 sample 的总数,属性,以及 label 等信息。

如果是自己生成的数据,按照函数的形式,输入 sample,feature,target 的个数等等。
sklearn.datasets.make_regression(n_samples=100, 
                                  n_features=100, 
                                  n_informative=10, 
                                  n_targets=1, 
                                  bias=0.0, 
                                  effective_rank=None, 
                                  tail_strength=0.5, 
                                  noise=0.0, 
                                  shuffle=True, 
                                  coef=False, 
                                  random_state=None)[source]

2/sklearn实战线性回归

    #导入必要模块
    from sklearn import datasets    # 导入数据模块
    from sklearn.model_selection import train_test_split   #导入切分训练集、测试集模块
    # 从线性模型中导入线性回归,因为linear_model也是一个大类,其中有很多模型
    from sklearn.linear_model import LinearRegression

    #加载数据
    加载 boston房价 的数据,把特征存在 data_x,类别标签存在 data_y:
    boston_data = datasets.load_boston()     # 加载数据
    data_x = boston_data.data    #特征数据
    data_y = boston_data.target  #类别标签
    
    #观察一下数据集
    print(data_x)
    print(data_y)

    #把总的数据集分为训练集和测试集,其中 test_size=0.3,即测试集占总数据的 30%:
    x_train, x_test, y_train, y_test = train_test_split(data_x,data_y,test_size=0.3)
    print(y_train)
    print(y_test)
    可以看到分开后的数据集,顺序也被打乱,这样更有利于学习模型

    #训练模型+预测
    #定义模块方式 LinearRegression(), 
    #用 fit() 方法来训练 training data,这一步就完成了训练的所有步骤, 
    #后面的 model 就已经是训练好的模型,可以直接用来 predict 测试集的数据, 
    #对比用模型预测的值与真实的值,可以看到大概模拟出了数据,但是有误差,是不会完完全全预测正确的。

    model = LinearRegression()    # 类的实例化
    model.fit(x_train, y_train)   # 用训练数据训练模型
    print(model.predict(x_test))  # 预测
    print(y_test)     # 实际

    # 把model.predict(x_test)的预测结果和y_test的正式数据进行对比
    # 这是通过测试数据,检测模型的泛化能力,从而衡量模型的好坏