Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何获得k均值聚类中每个质心的值?_Python 3.x_Pandas_Scikit Learn_K Means - Fatal编程技术网

Python 3.x 如何获得k均值聚类中每个质心的值?

Python 3.x 如何获得k均值聚类中每个质心的值?,python-3.x,pandas,scikit-learn,k-means,Python 3.x,Pandas,Scikit Learn,K Means,我有一个csv文件,如下所示 date mse 2018-02-11 14.34 2018-02-12 7.24 2018-02-13 244.5 2018-02-14 3.5 2018-02-16

我有一个csv文件,如下所示

date                       mse                                                  
2018-02-11                 14.34
2018-02-12                 7.24
2018-02-13                 244.5
2018-02-14                 3.5
2018-02-16                 12.67
2018-02-21                 45.66
2018-02-22                 15.33
2018-02-24                 98.44
2018-02-26                 23.55
2018-02-27                 45.12
2018-02-28                 78.44
2018-03-01                 34.11
2018-03-05                 23.33
2018-03-06                 127.45
...                        ...   
...                       ...
现在我想得到两个簇,这样我就知道哪个簇的值以及它们的平均值

现在它通常需要两个参数或一组值。因为我只关心
mse
值和它周围的一个簇,所以我将另一个参数作为range传递,它的大小与mse值的大小相同。这就是我所做的

from sklearn.cluster import KMeans
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

df = pd.read_csv("generate_csv/all_data_device.csv", parse_dates=["date"])
df = df[df['mse'].values < 15000]
f1 = df['mse'].values
# generate another list of equal size
f2 = list(range(0, len(f1)))
X = np.array(list(zip(f1, f2)))
kmeans = KMeans(n_clusters=2).fit(X)

labels = kmeans.predict(X)

fig = plt.figure()
ax = Axes3D(fig)
ax.scatter(X[:, 0], X[:, 1], c=labels)
ax.scatter(centroids[:, 0], centroids[:, 1], marker='*', c='#050505', s=1000)
plt.title('K Mean Classification (mse < 15000)')
plt.show()

但是我想要每个质心的值。换句话说,因为质心代表每个簇下所有mse值的平均值,我想要每个簇的平均值。我该怎么做呢?

kmeans.cluster\u centers\u.ravel()
-将给你一个质心坐标向量(1D)(每个簇一个坐标[1D])@MaxU我想要质心的mse值,因为质心存储该簇下所有mse值的平均值。我如何才能做到这一点?
kmeans.cluster\u centers\u
/
kmeans.cluster\u centers\u.ravel()如果你需要一些不同的东西,请发布你想要的数据set@MaxU好吧,这就是我错的地方,明白了!你可以将此作为答复,我将接受。
# Centroid coordinates
centroids = kmeans.cluster_centers_
print(centroids)