第4部分:数据分析基础
4.4 使用numpy和pandas分析数据
GapMinder数据分析:
提出5个问题:
1 GDP和就业率有什么关系?
2 GDP和男女性毕业率有什么关系?
3 GDP和预期寿命之间的关系?
4 预期寿命和毕业率之间的关系?
5 预期寿命和就业率之间的关系?
6 美国就业率随着时间发生了什么变化?
7 最近的数据最高和最低的就业率是多少?
8 各国有没有共同的趋势
+= 与 +的区别:
4.4 使用numpy和pandas分析二位数据:
Pandas相比numpy的几点优势:
可以有列名,索引,数据类型没有限制
访问DataFrame数据:
获取一行数据: loc["行名"]、iloc[position]
获取一列数据:pd['列名']或pd[position]
第五部分:模型的评估和验证
1评估指标:
1 评估指标注意事项:区分训练数据和测试数据。
2 分类和回归:
分类涉及到根据未见过的样本进行预测,并确定新实例属于哪个类别。
例如,可以根据蓝色或红色或者方形或圆形来组织对象,以便在看到新对象时根据其特征来组织对象。
在回归中,我们想根据连续数据来进行预测。
例如,我们有包含不同人员的身高、年龄和性别的列表,并想预测他们的体重。
3 分类指标和回归指标:
在分类中,我们想了解模型隔多久正确或不正确地识别新样本一次。我们会探讨准确率、精确率、召回率和 F 分数。
而在回归中,我们可能更关注模型的预测值与真正值之间差多少,我们会探讨平均绝对误差和均方误差。
4 准确率
准确率实际上是所有被正确标示的数据点除以所有的数据点。
7 准确率的缺陷:
7.1在出现偏斜类时出现问题
7.2 期望某人的概率最高的检测
7.3 期望某人概率最低的检测
8 选择最合适的指标:
我们允许误测,但决不允许遗漏
熟悉自己选择指标的缺点及常见错误,并尽量避免。
9 混淆矩阵(confusion matrix):
14 决策树混淆矩阵:
15 准确率(precision)和召回率(Recall)
24 F1分数:
可将 F1 分数理解为精确率和召回率的加权平均值,其中 F1 分数的最佳值为 1、最差值为 0:
F1 = 2 * (精确率 * 召回率) / (精确率 + 召回率)
25 回归指标
26 平均绝对误差:
平均绝对误差的计算方法是,将各个样本的绝对误差汇总,然后根据数据点数量求出平均误差。
通过将模型的所有绝对值加起来,可以避免因预测值比真实值过高或过低而抵销误差,并能获得用于评估模型的整体误差指标。
27 均方误差
28 回归分数函数:
其中之一是R2分数,用来计算真值预测的可决系数。在 scikit-learn 里,这也是回归学习器默认的分数方法。
另一个是可释方差分数
虽然眼下我们不会详细探讨这些指标,一个要记住的重点是:
回归的默认指标是“分数越高越好”;即,越高的分数表明越好的表现。
而当我们用到前面讲的误差指标时,我们要改变这个设定。
F1分数相关资料
平均绝对误差和如何在 sklearn 中使用它的更多信息
均方误差
R2分数,
可释方差分数
2 误差原因:
1 误差原因:
在模型预测中,模型可能出现的误差来自两个主要来源,即:
因模型无法表示基本数据的复杂度而造成的偏差(bias),
或者因模型对训练它所用的有限数据过度敏感而造成的方差(variance)。
2 偏差:
如果模型具有足够的数据,但因不够复杂而无法捕捉基本关系,则会出现偏差。
这样一来,模型一直会系统地错误表示数据,从而导致准确率降低。这种现象叫做欠拟合(underfitting)。
简单来说,如果模型不适当,就会出现偏差。
举个例子:如果对象是按颜色和形状分类的,但模型只能按颜色来区分对象和将对象分类(模型过度简化),因而一直会错误地分类对象。
3 方差:
在训练模型时,通常使用来自较大训练集的有限数量样本。
如果利用随机选择的数据子集反复训练模型,可以预料它的预测结果会因提供给它的具体样本而异。
在这里,方差(variance)用来测量预测结果对于任何给定的测试样本会出现多大的变化。
出现方差是正常的,但方差过高表明模型无法将其预测结果泛化到更多的数据。
对训练集高度敏感也称为过拟合(overfitting),而且通常出现在模型过于复杂或我们没有足够的数据支持它时。
通常,可以利用更多数据进行训练,以降低模型预测结果的方差并提高精度。
如果没有更多的数据可以用于训练,还可以通过限制模型的复杂度来降低方差。
第5部分:预测波士顿房价:
问题1 :在已经安装了python3.x的系统里,怎么使用python2.x?
安装anaconda
conda create -n py2 python=2.7
#
# To activate this environment, use:
# > source activate py2
#
# To deactivate an active environment, use:
# > source deactivate
#
Tornado:
这是python的web框架和异步网络请求库。