编者按:本文节选自方巍著《Python数据挖掘与机器学习实战》一书中的部分章节。
3.4 用Python实现多元线性回归
当结果值的影响因素有多个时,可以采用多元线性回归模型。例如,商品的销售额可能与电视广告投入、收音机广告投入和报纸广告投入有关系,可以有:
$Sales=eta_0+eta_1TV+eta_2Radio+eta_3Newspaperquadquadquadquadquadquad(3-7)$
3.4.1 使用pandas读取数据
pandas是一个用于数据探索、数据分析和数据处理的Python库。
import pandas as pd #获取数据 data = pd.read_csv('/home/lulei/Advertising.csv') # 显示前5 项数据 data.head()
这里的Advertising.csv是来自,大家可以自行下载。
上面代码的运行结果如下:
TV Radio Newspaper Sales 0 230.1 37.8 69.2 22.1 1 44.5 39.3 45.1 10.4 2 17.2 45.9 69.3 9.3 3 151.5 41.3 58.5 18.5 4 180.8 10.8 58.4 12.9
上面显示的结果类似一个电子表格,这个结构称为pandas的数据帧(data frame),类型全称是pandas.core.frame.DataFrame。
pandas的两个主要数据结构是Series和DataFrame;Series类似于一维数组,它由一组数据及一组与之相关的数据标签(即索引)组成;DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型。DataFrame既有行索引也有列索引,它可以被看做由Series组成的字典。
# 显示最后5 项数据 data.tail()
以上代码的作用是只显示结果的末尾5行,结果如下:
TV Radio Newspaper Sales 195 38.2 3.7 13.8 7.6 196 94.2 4.9 8.1 9.7 197 177.0 9.3 6.4 12.8 198 283.6 42.0 66.2 25.5 199 232.1 8.6 8.7 13.4
查看DataFrame的维度:
data.shape
注意第一列叫索引,和数据库某个表中的第一列类似。结果如下:
(200,4)
3.4.2 分析数据
分析数据的特征:
TV:在电视上投资的广告费用(以千万元为单位);
Radio:在广播媒体上投资的广告费用;
Newspaper:用于报纸媒体的广告费用;
响应:连续的值;
Sales:对应产品的销量。
在这个案例中,通过不同的广告投入,预测产品销量。因为响应变量是一个连续的值,所以这个问题是一个回归问题。数据集一共有200个观测值,每一组观测对应一个市场的情况。
注意:这里推荐使用的是seaborn包。这个包的数据可视化效果比较