无监督学习(吴恩达)

一、聚类学习(Clustering)

        有监督学习:给定一个含有原始数据x和标签y的数据集进行训练 

         无监督学习,只有输入x的数据集,没有标签或者目标标签y。

 

         聚类学习会将数据集分组成簇(clusters),一组彼此相似的点

K-均值聚类算法(K-Means)

 

         30个未标记的数据集,KMeans算法首先要估计两个簇的中心位置我,随机在图中画出:

 算法分为两步:第一步确定簇的质心,遍历所有样本,30个数据点,算法会判断数据点更接近于哪一个簇的中心点,并且自动分配;第二步,对于红点,所有的红点然后取平均值,将红叉移动到红点的平均位置,蓝色同理。

第一次移到中心点后,发现在蓝色(红色)区域某些点到预先规定的质心处的距离并不是最近,需要在进行KMeans计算 

 经过第二次计算后,得到:

 继续重复:

 当点的颜色和质心位置不变时,算法收敛。

算法实现:(1)随机指定k个质心,n1,n2,n3,,,,,,,,nk.

(2)计算簇中点的中心位置        

        如果随机分配质心时,有n个质心没有被分配到簇中,通常采用消除簇的做法,k=k-n,或者也可以重新随机分配,但最常用的还是第一种

        对于连续的点,也可以使用K-Means算法

        与有监督学习相同,无监督学习中的K-Means算法其实也是一个不断优化函数的过程。 

C(i)代表簇的索引,nk表示质心,x为训练样本

 K-Means算法随机猜测簇质心位置:

        (1)选取的质心位置不能太多,K<M(k=2,m=30)

        (2)随机挑选训练样本

          (3)   选择质心后,通过得到的代价函数来判断使用哪一种

使用簇的数量:

        1.肘部法则:将代价函数视为簇数量的函数,看看是否有弯曲

2. 通过划分的簇数量,判断数量与成本之间的关系来做出衡量

异常检测(Anomaly Detection)

         异常检测算法通过观察正常事件的未标记数据集,从而学会检测异常或者在异常事件发生时能够发出危险信号

        常见的异常检测方法为密度估计的技术,首先为样本x找到一个高概率事件和在数据集中不太可能遇到(概率小)的值。

 正态分布(高斯)

异常检测算法:

猜你喜欢

转载自blog.csdn.net/qq_60609496/article/details/126619254