美文网首页
新2019计划:机器学习100天—多元线性回归【3】

新2019计划:机器学习100天—多元线性回归【3】

作者: 克里斯托弗的梦想 | 来源:发表于2019-03-09 22:42 被阅读0次

    多元线性回归

    本篇章主要介绍多元线性回归通过一个线性方程来适配观测数据,在两个以上(包括两个)的特征和响应之间构建的一个关系。多元线性回归的实现步骤和简单线性回归很相似,在评价部分有所不同,你可以用它来找出在预测结果上哪个因素影响力最大,以及不同变量是如何相互关联的。

    前提
    想要有一个成功的回归分析,确认这些假定很重要
    1、线性:自变量和因变量的关系应该是线性的
    2、保持误差项的方差齐性(常数方差):误差项的分散必须等同。
    3、多元正态分布:多元回归假定符合正太分布。
    4、缺少多重共线性:假设数据有极少甚至没有多重共线性。当特征不是相互独立时,会引发多重共线性。

    注意
    过多的变量可能会降低模型的精确度,尤其是如果存在一些对结果无关的变量,或者存在对其他变量造成很大影响的变量。这里介绍一些选择合适变量的方法:
    1、向前选择法
    2、向后选择法
    3、向前向后法:即结合了上面说的向前法和向后法,先用向前法筛选一遍,再用向后法筛选一遍,直到最后无论怎么筛选模型变量都不再发生变化,就算结束。

    虚拟变量
    在多元回归模型中,当遇到数据集是非数值数据类型时,使用分类数据是一个非常有效的方法。分类数据,是指反映事物类别的数据,是离散数据,其数值个数有限且值之间无序。比如:按照性别分为男女两类。在一个回归模型中,这些分类值可以用虚变量来表示,变量通常取1或0表示肯定类型或否定类型。

    虚拟变量陷阱
    虚拟变量陷阱是指两个以上变量之间高度相关的情形。简而言之,就是存在一个能够被其他变量预测出的变量。解决虚拟变量陷阱的方法是,类别变量减去一:假如有m个类别,那么在模型构建时取m-1个虚拟变量,减去的那个变量可以看作是参照值。

    # 导入库、导入数据集
    import pandas as pd
    import numpy as np
    
    dataset = pd.read_csv('50_Startups.csv')
    X = dataset.iloc[ : , :-1].values
    Y = dataset.iloc[ : ,  4 ].values
    print(X[:10])
    print(Y)
    
    打印的数据
    from sklearn.preprocessing import LabelEncoder, OneHotEncoder
    # 类别数据数字化
    labelencoder = LabelEncoder()
    X[: , 3] = labelencoder.fit_transform(X[ : , 3])
    # 将数字化的值onehot
    onehotencoder = OneHotEncoder(categorical_features = [3])
    X = onehotencoder.fit_transform(X).toarray()
    # 躲避虚拟变量陷阱
    X = X[: , 1:]
    # 拆分数据集为训练集和测试集
    from sklearn.model_selection import train_test_split
    X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size = 0.2, random_state = 0)
    # 在训练集上训练多元线性回归模型
    from sklearn.linear_model import LinearRegression
    regressor = LinearRegression()
    regressor.fit(X_train, Y_train)
    # 在测试集上预测结果
    y_pred = regressor.predict(X_test)
    

    相关文章

      网友评论

          本文标题:新2019计划:机器学习100天—多元线性回归【3】

          本文链接:https://www.haomeiwen.com/subject/mptypqtx.html