优达(Udacity)-机器学习基础-异常值

回归中的异常值

选出下面的最好的线性回归(考虑到异常值,并假设线性回归将最小平方误差减到最低)
优达(Udacity)-机器学习基础-异常值_第1张图片

答案:
优达(Udacity)-机器学习基础-异常值_第2张图片

这一条线会获得最小的平方误差,可以看到异常值对预测的影响是很大的。

产生异常的原因

优达(Udacity)-机器学习基础-异常值_第3张图片

  • 第三种情况是不会考虑的
  • 前两种情况是应该被忽略的异常值
  • 最后一点是应该被重视的异常值(如金融诈骗)

选择异常值

优达(Udacity)-机器学习基础-异常值_第4张图片

第二行第一个存在争议= =其实我认为他不属于异常值
但是老师说,这里可能是双重错误——标签分类也错了

异常值检测-删除算法

  1. 训练

  2. 异常值检测——删除算法

  3. 训练 删除约10%的异常数据 再次训练

(可能需要重复2、3步骤多次)

  • 删除前:

优达(Udacity)-机器学习基础-异常值_第5张图片

  • 删除后:

优达(Udacity)-机器学习基础-异常值_第6张图片

异常值删除策略小结

优达(Udacity)-机器学习基础-异常值_第7张图片

这里还是要注意有的地方是要保留异常值,去除正常的数据的。

异常值迷你项目

用到的代码知识点

  • 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

你可能感兴趣的:(机器学习)