机器学习之聚类和朴素贝叶斯。

聚类是一个无监督机器学习。

小白一个,才疏学浅。写的不好大家见谅。

相似度

在这里插入图片描述
Jaccard相似系数。(Jarrcard Similarity Coefficient)用于比较有限样本集之间的相似性和差异性。Jarrcard系数值越大,样本相似度越高。
在这里插入图片描述余弦距离,余弦相似度

余弦值的范围在[-1, 1]之间,值越接近于1,代表两个向量的方向越接近

越趋近于-1, 他们的方向越相反; 接近于0, 表示两个向量几乎于正交

最常见的应用就是计算文本相似度。将两个文本根据他们的词,建立两个向量,

计算这两个向量的余弦值,就可以知道两个文本在统计学方法中他们的相似度情况。

本质上,N个样本,映射到K个簇中
每个簇至少有一个样本,一般情况下,一个样本只属于一个簇(也有一个样样本属于多个簇的
最基本:
先给定一个初始划分,迭代改变样本和簇的隶属关系,每次都比前一次好。

K-Means聚类

聚类是一种无监督的机器学习任务,它可以自动将数据划分成类cluster。因此聚类分组不需要提前被告知所划分的组应该是什么样子的。因为我们甚至可能都不知道我们再寻找什么,所以聚类是用于知识发现而不是预测。
聚类原则是一个组内的记录,彼此必须非常相似,而与该组之外的记录截然不同。所有聚类做的就是遍历所有,数据然后找到这些相似性。

选择K个初始的簇中心,随机的(拍脑袋给的),或者先验知识给的某一个样本和某一个聚类中心的距离,计算所属聚类的样本均值
代码实现:

"""
Date: 2019--11 16:24
User: yz
Email: 1147570523@qq.com
Desc:
"""
import numpy as np
import matplotlib.pyplot as plt
import sklearn.datasets as ds
import matplotlib.colors
from sklearn.cluster import KMeans

def expand(a, b):
    """
    为了扩展x,y轴的长度
    """
    d = (b - a) * 0.1
    return a-d, b+d

if __name__ == '__main__':
    # 创建400个样本
    N = 400
    # 准备分出4个类别
    centers = 4
    # 创建聚类的数据(按照4个正太分布创建点)【想看看方差一样的,数据量一样的,分类效果好不好】
    data, y = ds.make_blobs(N, n_features=2, centers=centers, random_state=2)
    print(data)
    # 方差和上面不一样,方差越大,数据集越分散;方差越小,数据集越密集【想看看方差不一样,数据量一样,分类效果好不好】
    data2, y2 = ds.make_blobs(N, n_features=2, centers=centers, cluster_std=(1, 2.5, 0.5, 2), random_state=2)
    # 从原来数据中选一部分的数据出来【想看看从每条数据里选不同的样本数量的分类效果好不好】
    data3 = np.vstack((data[y==0][:], data[y==1][:50], data[y==2][:20], data[y==3][:5]))
    # 按道理来说,聚类是不需要y值的,这里的y主要是为了看我们的聚类效果准不准
    y3 = np.array([0] * 100 + [1] * 50 + [2] * 20 + [3] * 5)
    print(y3)
    # k-means++是为了改变初始化的值,所以参数名称是init
    cls = KMeans(n_clusters=5, init='k-means++')
    y_hat = cls.fit_predict(data)
    y2_hat = cls.fit_predict(data2)
    y3_hat = cls.fit_predict(data3)

    # matplotlib.rcParams['font.sans-serif'] = [u'SimHei']
    cm = matplotlib.colors.ListedColormap(list('rgbm'))

    plt.figure(figsize=(9, 10), facecolor='w
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值