回归中的异常值
选出下面的最好的线性回归(考虑到异常值,并假设线性回归将最小平方误差减到最低)
答案:
这一条线会获得最小的平方误差,可以看到异常值对预测的影响是很大的。
产生异常的原因
- 第三种情况是不会考虑的
- 前两种情况是应该被忽略的异常值
- 最后一点是应该被重视的异常值(如金融诈骗)
选择异常值
第二行第一个存在争议= =其实我认为他不属于异常值
但是老师说,这里可能是双重错误——标签分类也错了
异常值检测-删除算法
训练
异常值检测——删除算法
训练 删除约10%的异常数据 再次训练
(可能需要重复2、3步骤多次)
- 删除前:
- 删除后:
异常值删除策略小结
这里还是要注意有的地方是要保留异常值,去除正常的数据的。
异常值迷你项目
用到的代码知识点
- numpy.reshape()
可以改变数组的结构
比如:把一维的数组转换为二维的数组
import numpy as np
a=np.array([1,2,3,4,5,6,7,8])
d=a.reshape((2,4))
#转换为三维的数组
f=a.reshape((2,2,2))
通过reshape生成的新数组和原始数组公用一个内存,也就是说,假如更改一个数组的元素,另一个数组也将发生改变。
形状变化的原则是数组元素不能发生改变,比如这样写就是错误的,因为数组元素发生了变化。
numpy.array()
numpy官方文档链接:
https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.array.html