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

    1、扑克牌手动演练k均值聚类过程:>30张牌,3类

     

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

    代码:

    from sklearn.datasets import load_iris
    import numpy as np
    import matplotlib.pyplot as plt
    
    #1、数据准备
    iris = load_iris()
    iris.data
    data = iris.data[:,0]
    x = data.reshape(-1,1) #鸢尾花瓣的长度数据
    m = x.shape[1]  #样本属性个数
    n = len(data)    #样本的个数
    k =3         #类中心的个数,即最终分类的类别数
    
    #2、数据初始化
    dist = np.zeros([n,k+1])   #距离矩阵
    center = np.zeros([k,m])   #初始类中心
    new_center = np.zeros([k,m])  #新的类中心
    number = 0
    #选中心
    center = x[:k,:]   #选择前3个样本作为初始类中心
    
    while True:
        #求距离
        for i in range(n):
            for j in range(k):
                dist[i,j] = np.sqrt(sum((x[i,:] - center[j,:])**2))
            # 归类
            dist[i,k] = np.argmin(dist[i,:k])
        #求新类中心
        for i in range(k):
            index = dist[:,k] == i
            new_center[i,:] = np.mean(x[index,:])
    
        #判定结束
        if(np.all(center == new_center)):
            break
        else:
            center = new_center
    
    print('最终的聚类结果:',dist[:,k])
    plt.scatter(x,x,c=dist[:,k],s=50,cmap='rainbow')
    plt.show()

    运行结果:

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

    代码:

    运行结果:

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

    代码:

    运行结果:

    5、想想k均值算法中可以用来做什么?

    (1)利用k均值算法实现图像压缩,运行k均值算法处理图像。

    (2)可以根据不同的特征对多种数据进行分类。

  • 相关阅读:
    调用google地图
    jQuery放大镜效果
    jQuery拖到效果
    jQuery制作相册
    jQuery ui插件用法
    jQuery写fadeTo方法
    jQuery实现动画效果
    jQuery的slideToggle方法
    控经纬度显示地图与卫星
    像百度那样的智能感知效果
  • 原文地址:https://www.cnblogs.com/carmen-/p/12691225.html
Copyright © 2011-2022 走看看