标准化主成分的KMeans聚类图

我有一个新数据集,其中包含一个数据集的前五个标准化主成分值(PC1至PC5)。现在我想使用这个新数据集创建一个包含3个聚类的KMeans图。数据集的名称是principalDf,显示如下:

      PC1         PC2         PC3         PC4         PC5    4.220974   -2.270272    0.757259   -1.597269    4.238792   13.464907   -3.685775   -2.142520   -0.889321   -0.217543    5.900341   -2.368060    0.093671    0.484737    0.243810   -1.884293    1.370640   -0.221722    3.304978    0.292733    2.631881    1.782549    0.575880   -2.894564   -0.848573

我尝试使用以下代码绘制图表:

model = KMeans(n_clusters = 3)model.fit(principalDf)#get clustersclusters = model.predict(principalDf)print(clusters)#plot based on clusterfor i in range(len(clusters)):    if clusters[i] == 0:        c1 = plt.scatter(principalDf[i, 0], principalDf[i, 1], c='r', marker='+')    elif clusters[i] == 1:        c2 = plt.scatter(principalDf[i, 0], principalDf[i, 1], c='g', marker='o')    elif clusters[i] == -1:        c3 = plt.scatter(principalDf[i, 0], principalDf[i, 1], c='b', marker='*')    elif clusters[i] == 2:        c3 = plt.scatter(principalDf[i, 0], principalDf[i, 1], c='black', marker='-')plt.legend([c1, c2, c3], ['Cluster 1', 'Cluster 2', 'Cluster3'])plt.title('There are 3 cluster in our data but we can only plot in 2 dimensions')plt.show()

但我一直收到以下错误:

---------------------------------------------------------------------------KeyError                                  Traceback (most recent call last)<ipython-input-22-ae7667a531f7> in <module>()      3 for i in range(len(clusters)):      4     if clusters[i] == 0:----> 5         c1 = plt.scatter(principalDf[i, 0], principalDf[i, 1], c='r', marker='+')      6     elif clusters[i] == 1:      7         c2 = plt.scatter(principalDf[i, 0], principalDf[i, 1], c='g', marker='o')C:\Users\user\Anaconda2\lib\site-packages\pandas\core\frame.pyc in __getitem__(self, key)   2686             return self._getitem_multilevel(key)   2687         else:-> 2688             return self._getitem_column(key)   2689    2690     def _getitem_column(self, key):C:\Users\user\Anaconda2\lib\site-packages\pandas\core\frame.pyc in _getitem_column(self, key)   2693         # get column   2694         if self.columns.is_unique:-> 2695             return self._get_item_cache(key)   2696    2697         # duplicate columns & possible reduce dimensionalityC:\Users\user\Anaconda2\lib\site-packages\pandas\core\generic.pyc in _get_item_cache(self, item)   2487         res = cache.get(item)   2488         if res is None:-> 2489             values = self._data.get(item)   2490             res = self._box_item_values(item, values)   2491             cache[item] = resC:\Users\user\Anaconda2\lib\site-packages\pandas\core\internals.pyc in get(self, item, fastpath)   4113    4114             if not isna(item):-> 4115                 loc = self.items.get_loc(item)   4116             else:   4117                 indexer = np.arange(len(self.items))[isna(self.items)]C:\Users\user\Anaconda2\lib\site-packages\pandas\core\indexes\base.pyc in get_loc(self, key, method, tolerance)   3078                 return self._engine.get_loc(key)   3079             except KeyError:-> 3080                 return self._engine.get_loc(self._maybe_cast_indexer(key))   3081    3082         indexer = self.get_indexer([key], method=method, tolerance=tolerance)pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_loc()pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_loc()pandas\_libs\hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item()pandas\_libs\hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item()KeyError: (0, 0)

请帮助我解决这个问题,因为我正在尝试绘制聚类图。


回答:

你不能像这样索引数据框,你应该使用 .iloc。或者:

plt.scatter(x=principalDF["PC1"], y=principalDF["PC2"], c=clusters)

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注