4.K均值算法--应用

2021-02-12 11:16

阅读:506

标签:red   from   sys   ima   构建   otl   label   font   class   

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

from sklearn.cluster import KMeans

import matplotlib.image as img

import matplotlib.pyplot as plt

import sys

import numpy as np

 

image=img.imread("./大黄蜂.jpeg")     #读取一张图片

print("压缩前图片大小:",image.size)

print("压缩前图片占用内存大小:",sys.getsizeof(image))

print("图片数据结构: \n",image)

plt.imshow(image)

plt.show()

 

img=image[::3,::3]  #降低分辨率,3个值取一个值

x=img.reshape(-1,3) #将像素颜色整合成一个数组

n_clusters=64 #64种颜色

model=KMeans(n_clusters)

labels=model.fit_predict(x)

colors = model.cluster_centers_  #聚类中心

 

image2 = colors[labels].reshape(img.shape) #聚类中收替代原像素颜色,还原为二维

print("压缩后图片大小:", image2.size)

print("压缩后的图片占用内存大小:", sys.getsizeof(image2))

plt.imshow(image2.astype(np.uint8))

plt.show()

 

图片

 技术图片

 

 

图片大小,占内存大小,图片数据结构

 技术图片

 

压缩图片

 技术图片

 

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

 技术图片

 

 

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

from sklearn.model_selection import train_test_split

from sklearn.cluster import KMeans

import pandas as pd

 

data_tr = pd.read_csv(‘201706120049+蔡炳良+预处理.csv‘)       #准备数据

x_data = data_tr.iloc[:, :2]

y_data = data_tr.iloc[:, 4]

print(x_data)

print(y_data)

x_tr,x_te,y_tr,y_te=train_test_split(x_data,y_data,test_size=1,random_state=5)  #准备模型的训练数据和测试数据

 

km_model = KMeans(n_clusters=3)  #模型的构建

km_model.fit(x_tr, y_tr)  #模型的训练

pre = km_model.predict(x_te)  #模型的测试

 

print(km_model.cluster_centers_)

print(k_model.labels_ )

 

数据来自自己爬取的汽车网站的数据

技术图片

 

 

 技术图片

 

技术图片

 

 

 

 

 

 

 

4.K均值算法--应用

标签:red   from   sys   ima   构建   otl   label   font   class   

原文地址:https://www.cnblogs.com/cnw834575008/p/12732361.html


评论


亲,登录后才可以留言!