ML-机器学习实践

目录

 

超参数选择

Gride Search

Random Search

相关库

几种参数估计的区别与联系:MLE、MAP、贝叶斯TODO

余弦相似度(cos距离)与欧式距离的区别和联系

1)区别

2)联系

 归一化 标准化 

混淆矩阵、模型度量指标:准确率、精确率、召回率、F1值

关联规则挖掘的3个度量指标:支持度、置信度、提升度


超参数选择


Gride Search

  • 网格搜索
  • 在高维空间中对一定区域进行遍历

Random Search

  • 在高维空间中随机选择若干超参数

相关库

几种参数估计的区别与联系:MLE、MAP、贝叶斯TODO


聊一聊机器学习的MLE和MAP:最大似然估计和最大后验估计

余弦相似度(cos距离)与欧式距离的区别和联系


  • 欧式距离和余弦相似度都能度量2个向量之间的相似度
  • 放到向量空间中看,欧式距离衡量两点之间的直线距离,而余弦相似度计算的是两个向量之间的夹角
  • 没有归一化时,欧式距离的范围是 [0, +∞],而余弦相似度的范围是[-1,1];余弦距离是计算相似度,而欧式距离计算的是相同程度(对应值的相同程度)
  • 归一化的情况下,可以将空间想象成一个超球面(三维),向量余弦值等价与两点的球面距离,欧式距离就是球面上两点的直线距离,本质是一样的

余弦相似与欧氏距离有什么区别和联系-github-挺详细的

欧氏距离和余弦相似度的区别是什么? 

1)区别

假设 2人对三部电影的评分分别是 A = [3, 3, 3] 和 B = [5, 5, 5]

那么2人的欧式距离是 根号12 = 3.46, A、B的余弦相似度是1(方向完全一致)。

余弦值的范围是[-1, 1], 越接近于1,说明2个向量的方向越相近

欧式距离和余弦相似度都能度量2个向量之间的相似度,但是欧式距离从2点之间的距离去考量,余弦相似从2个向量之间的夹角去考量。 从上例可以发出,2人对三部电影的评价趋势是一致的,但是欧式距离并不能反映出这一点,余弦相似则能够很好地反应。余弦相似可以很好地规避指标刻度的差异,最常见的应用是计算 文本的相似度 。

2)联系

从下图的公式可以看出,归一化后计算的欧式距离是关于余弦相似的单调函数,可以认为归一化后,余弦相似与欧式距离效果是一致的(欧式距离越小等价于余弦相似度越大)。

因此可以将 求余弦相似转为求欧式距离 ,余弦相似的计算复杂度过高,转为求欧式距离后,可以借助KDTree(KNN算法用到)或者BallTree(对高维向量友好)来降低复杂度。

4.cosine.png

 归一化 标准化 


归一化(Normalization)标准化(Standardization)指代四种feature scaling(特征缩放)方法:

1、Rescaling(min-max normalization)

最小-最大归一化,也被称为最大-最小缩放,对原始数据进行线性变换把数据映射到[0,1]之间。

x^{'} = \frac{x-min(x))}{max(x)-min(x))}

其中minmin是样本中最小值,maxmax是样本中最大值,注意在数据流场景下最大值与最小值是变化的。另外,最大值与最小值非常容易受异常点影响,所以这种方法鲁棒性较差,只适合传统精确小数据场景。

如果存在离群点,会影响规范化,若在规范化之后添加新的数据,当新数据落在原数据区间之外,会导致“越界”错误

2、mean normalization(均值归一化)(没查到这个)

x^{'} = \frac{x-average(x))}{max(x)-min(x)}

3、standardization(标准化)

常用的方法是z-score标准化,经过处理后的数据均值为0,标准差为1,处理方法是:

x^{'} = \frac{x-\bar{x}}{\sigma}

其中μ是样本的均值,σ是样本的标准差,它们可以通过现有样本进行估计。在已有样本足够多的情况下比较稳定,适合现代嘈杂大数据场景。(z-score规范化)

对离群点不敏感

4、scaling to unit length(缩放到单位长度)

x^{'} = \frac{x}{\left \| x \right \|}

在几何学中,向量的大小等于有向线段的长度。我们用双竖线来表示向量的大小(例如,‖u‖表示u的大小)

对于任意非零向量v,都能计算出一个和v方向相同的单位向量n,这个过程被称作为向量的“标准化”,要标准化向量,将向量除以它的大小(模)即可。

n = \frac{v}{\left \| v \right \|}

标准化归一化的好处--详解

向量运算(向量基本概念,挺有用)

混淆矩阵、模型度量指标:准确率、精确率、召回率、F1值


分词中的评价标准:

 

混淆矩阵

  • True Positve(TP):将正类预测为正类的数量
  • True Negtive(TN):将负类预测成负类的数量
  • False Positve(FP):将负类预测成正类 --> 误报
  • False Negtive(FN):将正类预测为负类 --> 误报 

confusion_matrix.png

准确率(accuracy)

ACC = \frac{TP+TN}{TP+TN+FP+FN}

精确率(precision)

P = \frac{TP}{TP+FP}

准确率 精确率 的区别

在正负样本不平衡的情况下,准确率这个评价指标有很大的缺陷。比如在互联网广告里面,点击的数量是很少的,一般只有千分之几,如果用acc,即使全部预测成负类(不点击)acc 也有 99% 以上,没有意义。

召回率(recall,sensitivity,true positive rate,查全率)

R = \frac{TP}{TP+FN}

F1值——精确率和召回率的调和均值

F1 = \frac{2\times P \times R }{P+R}        F1 = \frac{2TP}{2TP+FP+FN}

只有点那个精确率和召回率都很高时,F1值才会高

如何处理数据中的缺失值


可以分为2种情况:

1、缺失值较多

  • 直接舍弃该列特征,否则可能会带来较大的噪声,从而对结果造成不良影响

2、缺失值较少

  • 当缺失值较少(<10%)时,可以考虑对缺失值进行填充,以下是几种常用的填充策略:
    • 用一个异常值填充(比如0),将缺失值作为一个特征处理
    • 用均值|条件均值填充

      如果数据是不平衡的,那么应该使用条件均值填充

      所谓条件均值,指的是与缺失值所属标签相同的所有数据的均值

  • 用相邻数据填充
    # 用前一个数据填充
    data.fillna(method='pad')
    # 用后一个数据填充
    data.fillna(method='bfill') 

     

  • 插值

    data.interpolate()

 

关联规则挖掘的3个度量指标:支持度、置信度、提升度

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值