Evernote Export
1、模型的评估与验证简介
机器学习通常是大量传入数据,然后会有一些关于数据的决策、想法和摘要。
2、模型评估
评估模型使用的是各种数据分析的方法,至少需要使用python编程和一些统计学的知识
9、用一个数据描述数据
通常情况下可以使用一个数字来对整个数据集进行描述
10、选择哪个数字
一般情况下,我们使用众数来对整个数据集的大多数来描述
12、众数-负偏斜分布
14、众数的更多信息!
- 众数是否可用于描述任何数据类型,数值型和类别型都可以?
- 数据集中的所有分支都会影响众数,是对还是错?
- 如果有一个总体,我们从中取出了很多样本,找到的每个样本的众数将会相同
- 众数有公式
17、找出均值
与众数不同,平均值将会在全部数值考虑在内,因为我们将其累加起来,然后除以数值的个数
18、找出均值的步骤
求和->找到个数相除
19、迭代过程
20、有用的符号
μ=x=n∑x
21、均值的特性
- 分布中的所有得分都将影响平均值
- 平均值可以用公式来描述,
- 同一个总体中有很多样本会有相似的平均值
- 一个样本的平均值可以用来推论其所在的总体,
- 向数据集中添加一个极值,则平均值会发生改变
22、含异常值的均值
含有异常值的均值将会影响到数据的表达,异常值的数据使得均值不能准确的判断出来
25、中位数的要求
中位数的出现需要将数据进行排序,然后取其中间值
26、含有异常值的中位数
对于含有异常值的数据集, 中位数即使偏离了数据基准也不会受很大的影响
中位数往往更能后反应数据的集中趋势
36、小结-中心测量值
数据类型 | 是否具有简单的等式 | 是否随数据值的变化而改变 | 是否不受组距改变的影响 | 受异常值影响是否巨大 | 在直方图中是否容易体现 |
---|---|---|---|---|---|
Mean | yes | yes | yes | yes | no |
Median | no | no | yes | yes | no |
Mode | no | no | no | yes | yes |
41、量化数据的分布形态
range=max(x)−min(x)
方差(Variance):
σ2=n−11i=1∑n(xi−x)2
标准差(StandardDeviation):
σ=(n−11i=1∑n(xi−x)2)
平均绝对偏差(MeanAbsoluteDeviation):
MAD=n1i=1∑n∣(xi−x)∣
42、值域是否改变
值域有时候会改变,当我们将数值在中间加入大量数据的时候不会发生改变,但是在高于最大值或其他地方的时候,值域就会发生改变。值域在有异常值是增大了差异性。值域不可能准确的代表数据的差异性。
44、砍掉尾巴
一般的处理值域的方式就是砍掉头和尾,然后只考虑中间的数据值
一般习惯上会忽略较低的25%和较高的25%
47、IQR(interquartile range)
四分位差(Q3-Q1)
- 约50%的数据属于IQR
- IQR要受到数据集中每个值的影响
- QR不受异常值的影响
49、什么是异常值
50、定义异常值
异常值定义:小于第一个四分位数-1.5倍的IQR
异常值定义:小于第二个四分位数+1.5倍的IQR
IQR=Q3-Q1
51、箱型图认识
51、均值不一定在IQR中
因为均值受到异常值的影响,但是IQR却不受异常值的影响
52、IQR的不足
IQR和值域无法将所有的数据全部考虑进去
53、衡量差异性的最好的方法
找到数据集的每两个数值的距离和数据集的平均值
55、离均差
Deviation from Mean
xi−x
x=10∑x=52793.60
sample | Deviation from Mean | Absolute Feviations |
---|---|---|
33219 | -19574.6 | 19574.6 |
36259 | -16534.6 | 16534.6 |
38801 | -13992.6 | 13992.6 |
46335 | -6458.6 | 6458.6 |
46840 | -5953.6 | 5953.6 |
47594 | -5199.6 | 5199.6 |
55130 | 2336.4 | 2336.4 |
56863 | 4069.4 | 4069.4 |
78070 | 25276.4 | 25276.4 |
88830 | 36036.4 | 36036.4 |
Average deviation = 0
61、平均绝对偏差的公式
n∑∣(x−xi)∣
62、平方偏差
sample | Deviation from Mean | Squared Deviations |
---|---|---|
33219 | -19574.6 | 383337241 |
36259 | -16534.6 | 273564984 |
38801 | -13992.6 | 195776064 |
46335 | -6458.6 | 41705764 |
46840 | -5953.6 | 35438209 |
47594 | -5199.6 | 27029601 |
55130 | 2336.4 | 5456896 |
56863 | 4069.4 | 16556761 |
78070 | 25276.4 | 638876176 |
88830 | 36036.4 | 1298593296 |
70、标准偏差的求法
- 求平均值
- 求离均差
- 求每个偏差的平方值
- 取平均值后再去平方根值
71、用语言来描述标准偏差
σ=nΣ(xi−x)2
- Square root of average
- (Average squared deviation)Squared
- Sum of squared deviations
- Sum of (absolute deviations squared)
- Square root of ((sum of squared deviations)divided by n)
74、标准差的重要性
标准差可以在统计分析时提供大量的帮助,事实证明,在正态分布中,即数据分布均匀,平均值等于中位数也等于众数,同时这些统计量位于分布的中心
标准差具有重要意义,大约68%的数据与平均值的偏差不超过一个标准差,而95%的数据与平均值的偏差不超过2个标准差
以正态分布举例
65%的数据
x−σ,x+σ
95%的数据
x−2σ,x+2σ
77、贝塞尔校正
通常,抽样会低估了总体中差异性的数量,因为抽样往往是总体居于中间的值,特别是正态分布,多数值居于中间位置,因此我们从正态分布的总体中抽样时,多数值也在此处附近
为了纠正这种现象,我们使用内塞尔校正系数,我们把除以n用除以n-1代替
78、样本标准差
sample standard deviation
s=n−1Σ(xi−x)2≈σ=nΣ(xi−x)2
81、Numpy
Numpy内置了进行数据分析时所要执行的大量的基础任务所需的函数
- 数组的平均差
- 数组的中位数差
- 数组的标准差
82、Pandas
import numpy as np
import pandas as pd
"""
d = {'name':pd.Series(['Braund','Cummings','Heikkinen','Allen'],index=['a','b','c','d']), 'age':pd.Series([22,38,26,35],index=['a','b','c','d']), 'fare':pd.Series([7.25,71.83,8.05],index=['a','b','d']), 'survived':pd.Series([False,True,True,False],index=['a','b','c','d'])}
df = pd.DataFrame(d)
print(df)
"""
d= {
'counties':pd.Series(['Russian Fed.', 'Norway', 'Canada', 'United States', 'Netherlands', 'Germany', 'Switzerland', 'Belarus', 'Austria', 'France', 'Poland', 'China', 'Korea', 'Sweden', 'Czech Republic', 'Slovenia', 'Japan', 'Finland', 'Great Britain', 'Ukraine', 'Slovakia', 'Italy', 'Latvia', 'Australia', 'Croatia', 'Kazakhstan']),
'gold':pd.Series([13, 11, 10, 9, 8, 8, 6, 5, 4, 4, 4, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 0, 0, 0, 0,
0]),
'silver':pd.Series([11, 5, 10, 7, 7, 6, 3, 0, 8, 4, 1, 4, 3, 7, 4, 2, 4, 3, 1, 0, 0, 2, 2, 2, 1,
0]),
'bronze':pd.Series([9, 10, 5, 12, 9, 5, 2, 1, 5, 7, 1, 2, 2, 6, 2, 4, 3, 1, 2, 1, 0, 6, 2, 1, 0,
1]),}
df = pd.DataFrame(d)
print(df)
100、选择合适的指标
在构建机器学习模型时,我们首先要选择性能指标,然后测试模型的表现如何。相关的指标有多个,具体取决于我们要尝试解决的问题。
在可以选择性能指标之前,首先务必要认识到,机器学习研究的是如何学习根据数据进行预测。对于本课程和后续的“监督式机器学习”课程,我们将重点关注那些创建分类或创建预测回归类型的已标记数据。
此外,在测试模型时,也务必要将数据集分解为训练数据和测试数据。如果不区分训练数据集和测试数据集,则在评估模型时会遇到问题,因为它已经看到了所有数据。我们需要的是独立的数据集,以确认模型可以很好地泛化,而不只是泛化到训练样本。在下一课中,我们将探讨模型误差的一些常见来源,并介绍如何正确分解本课程的“数据建模和验证”部分中的数据集。
102、分类指标和回归指标
在分类中,我们想了解模型隔多久正确或不正确地识别新样本一次。而在回归中,我们可能更关注模型的预测值与真正值之间差多少。
在本节课的余下部分,我们会探讨几个性能指标。对于分类,我们会探讨准确率、精确率、召回率和 F 分数。对于回归,我们会探讨平均绝对误差和均方误差。
103、分类指标
对于分类,我们处理的是根据离散数据进行预测的模型。这就是说,此类模型确定新实例是否属于给定的一组类别。在这里,我们测量预测是否准确地将所讨论的实例进行分类。
104、准确率
最基本和最常见的分类指标就是准确率。在这里,准确率被描述为在特定类的所有项中正确分类或标记的项的数量。
举例而言,如果教室里有 15 个男孩和 16 个女孩,人脸识别软件能否正确识别所有男孩和所有女孩?如果此软件能识别 10 个男孩和 8 个女孩,则它识别男孩和女孩的准确率分别为 66% 和 50%:
准确率 = 正确识别的实例的数量/所有实例数量
有关准确率和如何在 sklearn 中使用它的更多信息,请查看此链接 此处。分类指标
对于分类,我们处理的是根据离散数据进行预测的模型。这就是说,此类模型确定新实例是否属于给定的一组类别。在这里,我们测量预测是否准确地将所讨论的实例进行分类。