机器学习 Day 3 | Multiple Linear Regression

机器学习第三天 多元线性回归

数据集下载地址
https://www.xiehaoo.com/media/record/pinke/2018/08/50_Startups.csv

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

设想
想要有一个成功的回归分析,确认这些假定很重要。

1、线性:自变量和因变量的关系应该是线性的(即特征值和预测值是线性相关的)

2、保持误差项的方差齐性(常数方差):误差项的分散(方差)必须等同

3、多元正态分布:多元回归假定残差符合正态分布。

4、缺少多重共线性:假设数据有极少甚至没有多重共线性。当特征(或自变量)不是相互独立时、会引发多重共线性。

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

虚拟变量陷阱
虚拟变量是指两个以上(包括两个)变量之间高度相关的情形。简而言之,就是存在一个能够被其他变量预测出的变量。我们举一个存在重复类别(变量)的直观例子:假使我们舍弃男性类别,那么,该类别也可以通过女性类别来定义(女性值为0时,表示男性、为1市表示女性),反之亦然。
解决虚拟变量陷阱的方法是,类别变量减去一:假如有m个类别,那么在模型构建时取m-1个虚拟变量,减去的那个变量可以看作是参照值。

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

第一步:数据预处理
1.导入相关库 Pandas、Numpy、Sklearn 、Matplotlib
2.导入csv数据集
3.检查缺失数据
4.划分数据集
5.有必要的话,编辑虚拟变量并注意避免虚拟变量陷阱
6.特征缩放用简单线性回归模型的相关库实现

数据预处理通过前两天的学习已经熟悉了需要哪些步骤,就不单独一列一列分析了

import pandas as pd
import numpy as np
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
from sklearn.cross_validation import train_test_split
from sklearn.linear_model import LinearRegression

dataset = pd.read_csv('/Users/xiehao/Desktop/100-Days-Of-ML-Code-master/datasets/50_Startups.csv')

"""
数据表格

R&D Spend   Administration  Marketing Spend State   Profit
165349.2    136897.8    471784.1    New York    192261.83
162597.7    151377.59   443898.53   California  191792.06
153441.51   101145.55   407934.54   Florida     191050.39
144372.41   118671.85   383199.62   New York    182901.99
142107.34   91391.77    366168.42   Florida     166187.94
131876.9    99814.71    362861.36   New York    156991.12
134615.46   147198.87   127716.82   California  156122.51
130298.13   145530.06   323876.68   Florida     155752.6
120542.52   148718.95   311613.29   New York    152211.77
123334.88   108679.17   304981.62   California  149759.96
101913.08   110594.11   229160.95   Florida     146121.95
100671.96   91790.61    249744.55   California  144259.4
93863.75    127320.38   249839.44   Florida     141585.52
91992.39    135495.07   252664.93   California  134307.35
119943.24   156547.42   256512.92   Florida     132602.65
114523.61   122616.84   261776.23   New York    129917.04
78013.11    121597.55   264346.06   California  126992.93
94657.16    145077.58   282574.31   New York    125370.37
91749.16    114175.79   294919.57   Florida     124266.9
86419.7     153514.11   0           New York    122776.86
76253.86    113867.3    298664.47   California  118474.03
78389.47    153773.43   299737.29   New York    111313.02
73994.56    122782.75   303319.26   Florida     110352.25
67532.53    105751.03   304768.73   Florida     108733.99
77044.01    99281.34    140574.81   New York    108552.04
64664.71    139553.16   137962.62   California  107404.34
75328.87    144135.98   134050.07   Florida     105733.54
72107.6     127864.55   353183.81   New York    105008.31
66051.52    182645.56   118148.2    Florida     103282.38
65605.48    153032.06   107138.38   New York    101004.64
61994.48    115641.28   91131.24    Florida     99937.59
61136.38    152701.92   88218.23    New York    97483.56
63408.86    129219.61   46085.25    California  97427.84
55493.95    103057.49   214634.81   Florida     96778.92
46426.07    157693.92   210797.67   California  96712.8
46014.02    85047.44    205517.64   New York    96479.51
28663.76    127056.21   201126.82   Florida     90708.19
44069.95    51283.14    197029.42   California  89949.14
20229.59    65947.93    185265.1    New York    81229.06
38558.51    82982.09    174999.3    California  81005.76
28754.33    118546.05   172795.67   California  78239.91
27892.92    84710.77    164470.71   Florida     77798.83
23640.93    96189.63    148001.11   California  71498.49
15505.73    127382.3    35534.17    New York    69758.98
22177.74    154806.14   28334.72    California  65200.33
1000.23     124153.04   1903.93     New York    64926.08
1315.46     115816.21   297114.46   Florida     49490.75
0           135426.92   0           California  42559.73
542.05      51743.15    0           New York    35673.41
0           116983.8    45173.06    California  14681.4

"""

X = dataset.iloc[:, :-1].values
Y = dataset.iloc[:, 4].values


labelencoder = LabelEncoder()
X[:, 3] = labelencoder.fit_transform(X[:, 3])
onehotencoder = OneHotEncoder(categorical_features=[3])
X = onehotencoder.fit_transform(X).toarray()

X = X[:, 1:]

X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2, random_state=0)

第二步:在训练集上训练模型
这一步和简单线性回归模型处理方式完全一样。
用sklearn.linear_model库的LinearRegression类,在数据集上训练模型。首先,创建一个LinearRegression的对象regressor,接着用LinearRegression类的fit()方法,用对象regressor在数据集上进行训练。

regressor = LinearRegression()
regressor.fit(X_train, Y_train)

第三步:预测结果
在测试集上进行预测,并观察结果。我们将把输出结果保存在向量Y_pred中。在上一步regressor对象使用predict()方法来预测结果

y_pred = regressor.predict(X_test)
>>print(y_pred)
 [ 103015.20159797  132582.27760815  132447.73845175   71976.09851258
 178537.48221054  116161.24230165   67851.69209676   98791.73374688
 113969.43533012  167921.0656955 ]

感谢原作者 Avik-Jain 以及 zhyongquan的汉化

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容

  • https://developers.google.com/machine-learning/crash-cour...
    iOSDevLog阅读 2,602评论 1 11
  • 本系列主要根据吴恩达老师的课程、李航老师的统计学习方法以及自己平时的学习资料整理!在本文章中,有些地方写的十分简略...
    文哥的学习日记阅读 9,260评论 2 110
  • –记忆沙漏 第二天一早,星启收拾好妹妹的东西,以后 她也是他唯一的依靠了 姑父的车子停在了外头,抬头看天,大概就是...
    哦豁哪阅读 164评论 0 0
  • 具体chromeDriver与Chrome对应版本号请查看这篇文件文章 @雾霾-2016-12-20 12:09:46
    古佛青灯度流年阅读 15,258评论 0 1
  • 格斗式要求双脚始终保持前后左右都有距离,为什么? 在公交上很多爷爷奶奶摔跤了,摔得很厉害,不经意间,开始观察他们的...
    亮子子阅读 235评论 1 5