zoukankan      html  css  js  c++  java
  • K均值算法

    自主编写K-means算法 ,以鸢尾花花瓣长度数据做聚类,并用散点图显示。

    代码:

    from sklearn.datasets import load_iris
    import numpy as np
    iris = load_iris()
    data = iris['data']
    data.shape
    data[:,0]
    n = len(data)
    m = data.shape[1]
    k = 3
    dist = np.zeros([n, k+1])
    center = data[:k, :]
    centernew = np.zeros([k, m])

    while True:
    for i in range(n):
    for j in range(k):
    dist[i, j] = np.sqrt(sum((data[i, :] - center[j, :])**2))
    dist[i, k] = np.argmin(dist[i, :k])


    for i in range(k):
    index = dist[:, k] == i
    centernew[i, :] = data[index, :].mean(axis=0)


    if np.all((center == centernew)):
    break
    else:
    center = centernew
    print('样本归类:', dist[:, k])


    运行结果:

    用sklearn.cluster.KMeans,鸢尾花花瓣长度数据做聚类,并用散点图显示.

    代码:

    import matplotlib.pyplot as plt
    from sklearn.cluster import KMeans
    from sklearn.datasets import load_iris

    iris=load_iris()
    data=iris.data[:,1]
    x=data.reshape(-1,1)

    y=KMeans(n_clusters=3)
    y.fit(x)

    y_pre=y.predict(x)

    plt.scatter(x[:,0],x[:,0],c=y_pre,s=50,cmap='rainbow')
    plt.show()

    运行结果:

    鸢尾花完整数据做聚类并用散点图显示.

    代码:

    from sklearn.datasets import load_iris
    import matplotlib.pyplot as plt
    from sklearn.cluster import KMeans
    iris = load_iris()
    data = iris['data']

    model = KMeans(n_clusters=3).fit(data)
    pre = model.predict(data)
    center = model.cluster_centers_

    plt.scatter(data[:,0], data[:,1], c=pre, s=50, cmap='rainbow', marker='p', alpha=0.5)
    plt.show()

     运行结果:

     .想想k均值算法中以用来做什么?

    答:

    k均值算法是聚类算法,最适合用于分类了,像分类图片、文本等,能通过他们的特征,然后把相似的归类到一块,就有类别区分了。

  • 相关阅读:
    .net 文件夹是否存在的判断
    Lock Statement And Thread Synchronization
    如何利用EnteLib Unity Interception Extension 和PIAB实现Transaction
    OSQL 命令行工具
    How to build tab sets whitch headers display at bottom in WPF?
    Monitoring Clipboard Activity in C#
    产品经理讲座的感悟
    图说
    解决技术问题的9点建议
    为啥要整理需求?
  • 原文地址:https://www.cnblogs.com/CMean/p/12715751.html
Copyright © 2011-2022 走看看