zoukankan      html  css  js  c++  java
  • 4.K均值算法--应用

    1. 应用K-means算法进行图片压缩

    读取一张图片

    观察图片文件大小,占内存大小,图片数据结构,线性化

    用kmeans对图片像素颜色进行聚类

    获取每个像素的颜色类别,每个类别的颜色

    压缩图片生成:以聚类中收替代原像素颜色,还原为二维

    观察压缩图片的文件大小,占内存大小

    2. 观察学习与生活中可以用K均值解决的问题。

    从数据-模型训练-测试-预测完整地完成一个应用案例。

    这个案例会作为课程成果之一,单独进行评分。

    解:

    1.

    from sklearn.cluster import KMeans
    from sklearn.datasets import load_sample_image
    import matplotlib.pyplot as plt
    import sys
    import matplotlib.image as img
    import numpy as np
    plt.rcParams['font.sans-serif'] = ['SimHei']
    # 读取一张照片
    china=load_sample_image("china.jpg")
    # 显示原图片
    plt.imshow(china)
    plt.show()
    print("数据结构:",china)
    print("线性化结构:",china.reshape(-1,3))
    print("图片文件大小:",china.size)
    print("图片占内存大小:",sys.getsizeof(china))
    
    plt.title("原图片")
    plt.imshow(china.astype(np.uint8))
    plt.show()
    img.imsave('D:/china.jpg', china)
    
    
    # 对图片像素颜色进行聚类
    china = china[::3, ::3]
    X = china.reshape(-1, 3)
    print(china.shape, X.shape)
    n_colors = 64
    model = KMeans(n_colors)
    labels = model.fit_predict(X)  # 获取每个像素的颜色类别
    colors = model.cluster_centers_  # 获取每个类别的颜色
    new_china = colors[labels].reshape(china.shape)  # 以聚类中收替代原像素颜色,还原为二维
    print("新图片文件大小:",new_china.size)
    print('新图片占内存大小:', sys.getsizeof(new_china))
    print('新图片的数据结构:', new_china)
    
    plt.title("新图片")
    plt.imshow(new_china.astype(np.uint8))
    plt.show()
    img.imsave('D:/new_china.jpg', new_china)

     

     

     2.

    import pandas as pd
    from sklearn.cluster import KMeans
    data = pd.read_csv('201706120040 柯尚明(已处理).csv')
    del data['Unnamed: 0']
    # K-Mean算法
    # 测试数据准备
    data_x=data['装修']
    datax=data.iloc[:,:5]
    datay=data.iloc[:,6:8]
    data_y=pd.concat([datax,datay],axis=1)
    # 构建模型
    km_model=KMeans(n_clusters=3)    #3类
    print('K-Mean模型构建完成!')
    # 训练模型
    km_model.fit(data_y)
    km_model.cluster_centers_
    km_model.labels_                #查看聚类结果
    print('K-Mean模型训练完成!')

    选择要观察的数据:

     查看结果:

  • 相关阅读:
    申请国家自然科学基金项目的一点体会(周浙昆)
    漫谈影响自然基金申请的因素
    凡是过往,皆为序章—写在2018年国基揭榜之时
    再谈国家基金项目申请中的几个问题
    国家基金申请书中的科学问题与关键问题
    我喜欢这样的国家自然科学基金本子
    Fedora 28 —— install fonts for WPS
    清华11篇撤稿背后:院方早已处理,被曝光才公开结果
    CPU:chip、core 和 processor 的关系
    Fedora 28 —— chm 阅读器
  • 原文地址:https://www.cnblogs.com/keshangming/p/12728900.html
Copyright © 2011-2022 走看看