zoukankan      html  css  js  c++  java
  • k-均值聚类算法

    最近因为工作得原因,接触了一点机器学习中得算法,在此记录下来,以供学习。

    import numpy as np
    import copy
    import matplotlib.pyplot as plt
    
    pic = plt.imread('apple.png')
    plt.imshow(pic)
    pic.shape
    data = pic.reshape(-1,4)
    
    def kmeans_wave(n, k, data): #n为迭代次数, k为聚类中心, data为输入数据
        data_new = copy.deepcopy(data)    
        data_new = np.column_stack((data_new, np.ones(631*982)))
        center_point = np.random.choice(631*982, k, replace = False)
        center = data_new[center_point, :]
        
        distance = [[] for i in range(k)]
        
        for i in range(n):
            for j in range(k):
                distance[j] = np.sqrt(np.sum(np.square(data_new-np.array(center[j])), axis=1)) # 更新距离
        
            data_new[:,4] = np.argmin(np.array(distance), axis = 0)  # 将最小距离的类别标签作为当前数据的类别
            for l in range(k):
                center[l] = np.mean(data_new[data_new[:,4]==1], axis=0)# 更新聚类中心
    return data_new
    
    if __name__ == '__main__':
        data_new = kmeans_wave(100,6,data)
        print(data_new.shape)
        pic_new = data_new[:, 4].reshape(631,982)
        plt.imshow(pic_new)
        plt.show()

    下面是运行结果:

    当你的才华还撑不起你的野心时
    那你就应该静下心来学习
    当你的能力还驾驭不了你的目标时
    那就应该沉下心来历练
  • 相关阅读:
    fern没有扫描到任何ap
    kali软件的必须知道的那些事
    我的kali学习计划
    arping 自己
    kali密码破解
    kali目录修改
    我的电脑网络不通了
    收藏链接的正确方法
    maltego的 卡 慢 没反应 的问题解决方法
    git报错 failed: The TLS connection was non-properly terminated.
  • 原文地址:https://www.cnblogs.com/yang-xiansen/p/9450574.html
Copyright © 2011-2022 走看看