4.K均值算法--应用
Posted cnw834575008
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了4.K均值算法--应用相关的知识,希望对你有一定的参考价值。
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("图片数据结构: ",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均值算法--应用的主要内容,如果未能解决你的问题,请参考以下文章