python回归输出函数 python 回归( 二 )


从上面这个例子 , 我们可以看到对特征进行归一化操作的重要性 。
python多元线性回归怎么计算1、什么是多元线性回归模型?
当y值的影响因素不唯一时,采用多元线性回归模型 。
y =y=β0+β1x1+β2x2+...+βnxn
例如商品的销售额可能不电视广告投入,收音机广告投入,报纸广告投入有关系,可以有 sales =β0+β1*TV+β2* radio+β3*newspaper.
2、使用pandas来读取数据
pandas 是一个用于数据探索、数据分析和数据处理的python库
[python] view plain copy
import pandas as pd
[html] view plain copy
pre name="code" class="python"# read csv file directly from a URL and save the results
data = https://www.04ip.com/post/pd.read_csv('/home/lulei/Advertising.csv')
# display the first 5 rows
data.head()
上面代码的运行结果:
TVRadioNewspaperSales
0230.137.869.222.1
144.539.345.110.4
217.245.969.39.3
3151.541.358.518.5
4180.810.858.412.9
上面显示的结果类似一个电子表格 , 这个结构称为Pandas的数据帧(data frame),类型全称:pandas.core.frame.DataFrame.
pandas的两个主要数据结构:Series和DataFrame:
Series类似于一维数组 , 它有一组数据以及一组与之相关的数据标签(即索引)组成 。
DataFrame是一个表格型的数据结构 , 它含有一组有序的列,每列可以是不同的值类型 。DataFrame既有行索引也有列索引 , 它可以被看做由Series组成的字典 。
[python] view plain copy
# display the last 5 rows
data.tail()
只显示结果的末尾5行
TVRadioNewspaperSales
19538.23.713.87.6
19694.24.98.19.7
197177.09.36.412.8
198283.642.066.225.5
199232.18.68.713.4
[html] view plain copy
# check the shape of the DataFrame(rows, colums)
data.shape
查看DataFrame的形状,注意第一列的叫索引,和数据库某个表中的第一列类似 。
(200,4)
3、分析数据
特征:
TV:对于一个给定市场中单一产品,用于电视上的广告费用(以千为单位)
Radio:在广播媒体上投资的广告费用
Newspaper:用于报纸媒体的广告费用
响应:
Sales:对应产品的销量
在这个案例中,我们通过不同的广告投入,预测产品销量 。因为响应变量是一个连续的值,所以这个问题是一个回归问题 。数据集一共有200个观测值 , 每一组观测对应一个市场的情况 。
注意:这里推荐使用的是seaborn包 。网上说这个包的数据可视化效果比较好看 。其实seaborn也应该属于matplotlib的内部包 。只是需要再次的单独安装 。
[python] view plain copy
import seaborn as sns
import matplotlib.pyplot as plt
# visualize the relationship between the features and the response using scatterplots
sns.pairplot(data, x_vars=['TV','Radio','Newspaper'], y_vars='Sales', size=7, aspect=0.8)
plt.show()#注意必须加上这一句,否则无法显示 。
[html] view plain copy
这里选择TV、Radio、Newspaper 作为特征,Sales作为观测值
[html] view plain copy
返回的结果:
seaborn的pairplot函数绘制X的每一维度和对应Y的散点图 。通过设置size和aspect参数来调节显示的大小和比例 。可以从图中看出,TV特征和销量是有比较强的线性关系的,而Radio和Sales线性关系弱一些,Newspaper和Sales线性关系更弱 。通过加入一个参数kind='reg',seaborn可以添加一条最佳拟合直线和95%的置信带 。
[python] view plain copy
sns.pairplot(data, x_vars=['TV','Radio','Newspaper'], y_vars='Sales', size=7, aspect=0.8, kind='reg')
plt.show()
结果显示如下:

推荐阅读