当前位置:   article > 正文

《白话大数据与机器学习》_高斯距离 与 曼哈顿距离相比

高斯距离 与 曼哈顿距离相比


该笔记只摘取重要部分进行记录,像有些章节讲述平均值,加权平均这些就没有记录,括号里面写*是属于略读而过的;标注 * * 的是完全没有读过埋坑;
标注^的是其中有部分内容有着比较详细的过程来不及做笔记的。

第四章

高斯距离 曼哈顿距离

高斯距离是各个维度平方和开方
曼哈顿距离是对于不同维度分别做差之后简单加和

同比和环比

同比:与相邻的同一时期相比,比如 比去年同比增长 多少多少
环比:直接和上一个报告期的相比,比如相比上个月的报告 增长多少多少

高斯分布(正态分布)

在这里插入图片描述

u比较大,整个图像的中轴往右边挪动得比较多;
u比较小,整个 往左边挪动得比较多;
σ比较大,方差比较大,整个坡比较平缓;
σ比较小,方差比较小,整个坡比较陡。

泊松分布

在这里插入图片描述

在这里插入图片描述
泊松分布适合描述单位时间内随机事件发生的次数。
1.事件是小概率事件;
2.事件的每次发生都是独立的不会相互影响
3.事件的概率都是稳定的

只要记住这个公式的使用方法就可以了:
发生一件事情A的发生率是λ(总的发生了λ次),A的子事件B发生的次数是k
此时计算发生k次的概率就可以使用泊松分布来计算

伯努利分布

其实就是0-1分布,最简单的二项分布
在这里插入图片描述


第六章 信息论

信息量

如果每件事件发生的概率是不相等的,那么不能简单地使用事件的个数来衡量单个事件发生的信息量,比如 l o g 2 m log_2 m log2m 。 此时使用另外一种表达方式,如
H ( X i ) = − l o g 2 P H(X_i)= -log_2 P HXi=log2P
其中 P 是事件发生的概率,这种情况下,P越小(也就是事件的可能性越小),这个信息的信息量越大,比如 中国乒乓球 对战 巴西乒乓球队 或者巴西足球 对战 中国足球队,两个场景中前者获胜(暂且称之为事件A)的概率会比较大,这种事情发生就是没有悬念的。那A事件的信息量就是比较小的。

香农公式

C = B ∗ l o g 2 ( 1 + S / N ) C = B*log_2 (1+S/N) C=Blog2(1+S/N)
S/N 是信噪比,信噪比越高信号越好。S是信号功率,N是噪声功率。

信息熵

H ( x ) = − ∑ i = 1 n p ( x i ) l o g 2 p ( x i ) H(x) = - \sum_{i=1}^{n} p(x_i) log_2 p(x_i) H(x)=i=1np(xi)log2p(xi)
其中i = 1 ~ n
在书中总结了一个结论,当且仅当每个事件发生的概率相等时,该场景的信息熵最大。

多维空间

信息冗余有利于提高数据运算;两个正交的维度上的数值不相互影响,比如
{姓名,姓,名,出生年龄} 中姓和名是互相独立的,是正交的,而姓名是依赖于姓和名这两个维度的,称姓名和姓或者名是不正交的。
向量的设计应该采用维度正交的原则。


第八章 回归(分类算法

线性回归

y = ax+b+e
高中物理 测小车的运动速度从而来得到重力加速度的实验,得到结论 v = gt.
在实验中其实是一个不太准确的函数 v = gt+e. 其中e是一个不确定的值,也就是这个值在任何实验点带入的情况下它都是取到不同的值,但是它依然有意义,反映了这个曲线的拟合程度。
通过调整g的值使得e(残差)尽可能小。

过拟合

危害:描述复杂;失去泛化能力;

原因:样本太少;把噪声也训练进模型中。

欠拟合

原因:参数过少;拟合不当(不正确)


第九章 聚类

9.1 K-means 算法

直接上算法原理:
1.从n个向量对象中选取k个作为初始聚类簇中心
2.根据在步骤1中设置的k个向量(中心对象向量),计算每个对象到这k个中心对象各自的距离
3.对于步骤2中的计算,任何一个向量都与这k个向量有一个距离,距离这个向量最近的中心对象向量就是该向量的中心
4.重新计算每个类簇的中心对象向量位置
5.重复3 4 步骤,知道类簇中向量归类变化极少为止,比如只有少于1%的向量还在类簇之间的归类漂移,此时分类基本完成,结束算法。

k-means需要事先指定类簇的数量;需要实现给定初始的类中心(但个人认为后半句不必要,因为是随机选取)。

9.3 孤立点

谈到聚类算法就要讲到孤立点,产生孤立点的原因可能是:1.数据清洗不当;2.孤立点通常有一些和群体里个体差异极大的样本组成。
在银行的信用卡诈骗识别中,通过对大量的信用卡用户信息和消费行为进行向量化建模和聚类,发现聚类中远离大量样本的点——这些点可能就是银行信用卡诈骗的导致的消费行为。

9.4 层次聚类

自顶向下不断细分种群,这期间可以使用简单的k-means;当然这种做法耗时不建议,接下来介绍一种 AgglomerativeClustering 的算法(scikit-learn)
1.初始化:树根是训练样本向量(没太懂),树叶就是每个单独的样本
2.自底向上:设计几个观察点,散布在整个训练样本中,自下而上进行类簇的合并,合并遵循一定的规则

这些规则有:
1.ward策略:让所有类簇的方差最小化(类内的,方差之和)
2.maximum策略:全连接策略,将类簇之间的距离最大值最小画
3.average linkage策略:将簇之间的距离的平均值最小化

使用这些策略事,只需要如下即可,

from sklearn.cluster import AgglomerativeClustering
# X 是数据集
cls = AgglomerativeClustering(linkage = 'ward' , n_clusters = n_clusters).fix(X)
  • 1
  • 2
  • 3
层次聚类的应用

对于一个人爱听的歌曲进行层次化的聚类,对每首歌的各个信息维度进行向量建模,比如{‘音域’,‘调式’,‘节拍’,‘速度’,‘配乐乐器’},对上述信息进行量化,可以尝试挖掘这个用户喜欢的歌曲的大类别,以及其下的小类别,或者研究歌曲流行风格进化细化的趋势等。

9.5 密度聚类

在这里插入图片描述
算法原理:
1.任意选一个没有类别的核心对象作为种子,然后找到所有这个核心对象密度可达的所有样本组成的集合,作为一个聚类簇
2.接着继续选择另外一个没有类别的核心对象去寻找密度可达的样本集合,直到所有的对象都有类别

from sklearn.cluster import DBSCAN
cls = DBSCAN(eps = 2000, min_samples = 1).fix(X)
  • 1
  • 2

eps:设置一个阈值,向外扩展的时候发现这个阈值距离范围内找不到向量,就认为这个类簇已经查找完毕。
min_samples : 告诉算法一个簇最小应该拥有多少个向量,如果这个值设置为3,则算法会认为所有小于3个向量的聚类作为噪声点,将在结果中丢弃。

使用DBSCAN算法可能遇到几种特殊情况,这里只描述一点,某些样本可能到两个核心对象的距离都小于 ϵ \epsilon ϵ ,
但是这两个核心不是密度直达,又不属于同一个聚类簇,那么一般按照先来后到,先进行聚类簇会标记和这个样本为它的类别。也就是说DBSCAN不是完全稳定的算法。

9.6 聚类评估

(1)估计聚类的趋势。这与其说是聚类的评判指标,不如说是能否进行聚类的条件,该数据集最好拥有非随机结构(分布不均匀的情况)。
(2)确定数据集中的簇数。人为地确定聚类簇的数量,需要考量人为动作是否合理。
(3)测量聚类的质量。使用量化的方法来测量聚类的质量。

9.6.1 聚类趋势

如果样本空间本身是随机的,那么使用聚类肯定是有问题的,在这里我们使用霍普金斯统计量。

算法原理:
1.从所有样本向量中随机找到n个向量,称为p向量,每个向量分别是 p 1 , p 2 , p 3 . . . . . , p n p_1,p_2,p_3.....,p_n p1,p2,p3.....,pn,对每一对向量都在样本空间中寻找一个距离其最近的向量,然后求距离(欧式距离),使用 x 1 , x 2 , x 3 . . . . x n x_1,x_2,x_3....x_n x1,x2,x3....xn来表示这个距离。
2.在所有样本容量中,随机寻找n个向量,称为q向量,同样的记为 q 1 , q 2 . . . . q n q_1,q_2....q_n q1,q2....qn ,然后在样本空间中找到一个最近的向量,使用 y 1 , y 2 , y 3 . . . . . y n y_1,y_2,y_3.....y_n y1,y2,y3.....yn来表示这些距离。
3.秋初霍普金斯统计量 H

∑ i = 1 n y i ∑ i = 1 n x i + ∑ i = 1 n y i \frac{\sum_{i=1}^{n} y_i}{\sum_{i=1}^{n} x_i+\sum_{i=1}^{n} y_i} i=1nxi+i=1nyii=1nyi

如果样本空间是一个均匀 的,没有聚类趋势的空间,那么H应该是0.5左右,反之,如果是有聚类趋势的空间,那么H应该趋近于1 。

9.6.2 簇数决定

肘方法:尝试把样本空间划分为1个类,2个类,3个类…n个类 。每个类都有若干个向量,计算这些向量的空间中心点(也就是重心),然后计算每个类簇中每个向量和重心的距离的和。然后把m个类簇各自的距离和相加得到一个函数var(n),n 就是类簇数(最后是从横轴得到应该分成多少个类簇的)。
上面这个函数var(n)使用ML中的term即是SSE S S E = ∑ i = 1 m w i ( y i − y i ^ ) 2 SSE = \sum_{i=1}^{m} w_i (y_i - \hat{y_i})^2 SSE&

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/873495
推荐阅读
相关标签
  

闽ICP备14008679号