我有一个数据集,2行7列,有不同的家庭用电量测量值,每个测量值都有一个日期。
我将数据集放入pandas数据框中,选择除了date列之外的所有列,然后执行交叉验证拆分。
import pandas as pd
from sklearn.cross_validation import train_test_split
data = pd.read_csv('household_power_consumption.txt', delimiter=';')
power_consumption = data.iloc[0:, 2:9].dropna()
pc_toarray = power_consumption.values
hpc_fit, hpc_fit1 = train_test_split(pc_toarray, train_size=.01)
power_consumption.head()
采用K-均值分类,PCA降维显示。
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
import numpy as np
from sklearn.decomposition import PCA
hpc = PCA(n_components=2).fit_transform(hpc_fit)
k_means = KMeans()
k_means.fit(hpc)
x_min, x_max = hpc[:, 0].min() - 5, hpc[:, 0].max() - 1
y_min, y_max = hpc[:, 1].min(), hpc[:, 1].max() + 5
xx, yy = np.meshgrid(np.arange(x_min, x_max, .02), np.arange(y_min, y_max, .02))
Z = k_means.predict(np.c_[xx.ravel(), yy.ravel()])
Z = Z.reshape(xx.shape)
plt.figure(1)
plt.clf()
plt.imshow(Z, interpolation='nearest',
extent=(xx.min(), xx.max(), yy.min(), yy.max()),
cmap=plt.cm.Paired,
aspect='auto', origin='lower')
plt.plot(hpc[:, 0], hpc[:, 1], 'k.', markersize=4)
centroids = k_means.cluster_centers_
inert = k_means.inertia_
plt.scatter(centroids[:, 0], centroids[:, 1],
marker='x', s=169, linewidths=3,
color='w', zorder=8)
plt.xlim(x_min, x_max)
plt.ylim(y_min, y_max)
plt.xticks(())
plt.yticks(())
plt.show()
现在我想知道哪些行属于给定的类,哪些日期属于给定的类。
我对这个领域还很陌生,我正在尝试阅读大量的代码,这是我看到的几个例子的汇编。
我的目标是对数据进行分类,然后得到属于一个类的日期。
谢谢你
KMeans().predict(X)..docs here
预测X中每个样本所属的最近聚类。
在矢量量化文献中,聚类中心被称为码本,预测返回的每个值是码本中最接近的码的索引。
我对你提交的代码的问题是
它返回数据集中的两个随机行数组,有效地破坏了数据集的顺序,使从KMeans分类返回的标签很难与数据集中的连续日期相关联。
下面是一个例子:
相关问题 更多 >
编程相关推荐