首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >熊猫+科学工具包-学习K-意思是不能正常工作-将所有数据行作为一个大型多维示例处理。

熊猫+科学工具包-学习K-意思是不能正常工作-将所有数据行作为一个大型多维示例处理。
EN

Stack Overflow用户
提问于 2015-01-23 16:44:50
回答 1查看 7.5K关注 0票数 5

目前,我正在尝试使用存储在我的pandas.dataframe (实际上在其中一列中)中的数据进行k均值聚类。奇怪的是,它不是将每一行视为单独的示例,而是威胁所有行,将其作为一个示例,但在非常高的维度中。例如:

代码语言:javascript
复制
df = pd.read_csv('D:\\Apps\\DataSciense\\Kaggle Challenges\\Titanic\\Source Data\\train.csv', header = 0)

median_ages = np.zeros((2,3))

for i in range(0,2):
    for j in range (0,3):
        median_ages[i, j] =df[(df.Gender == i) &(df.Pclass == j+1)].Age.dropna().median()

df['AgeFill'] = df['Age']

for i in range(0, 2):
    for j in range(0,3):
        df.loc[ (df.Age.isnull()) & (df.Gender == i) & (df.Pclass == j+1), 'AgeFill'] = median_ages[i, j]

然后我就检查它看起来很好:

代码语言:javascript
复制
df.AgeFill

Name: AgeFill, Length: 891, dtype: float64

看上去不错,891 float64号码。我要做的是:

代码语言:javascript
复制
k_means = cluster.KMeans(n_clusters=1, init='random')
k_means.fit(df.AgeFill)

我检查了集群中心:

代码语言:javascript
复制
k_means.cluster_centers_

它会给我一个巨大的数组。

此外:

代码语言:javascript
复制
k_means.labels_

给我:

代码语言:javascript
复制
array([0])

我做错了什么?为什么它认为我有一个891维的例子,而不是891个?

为了更好地说明这一点,如果我尝试两个集群:

代码语言:javascript
复制
k_means = cluster.KMeans(n_clusters=2, init='random')
k_means.fit(df.AgeFill)

追溯(最近一次调用):文件"",第1行,在"D:\Apps\Python\lib\site-packages\sklearn\cluster\k_means_.py",文件k_means.fit(df.AgeFill)第724行中,在fit X= self._check_fit_data(X) File "D:\Apps\Python\lib\site-packages\sklearn\cluster\k_means_.py",第693行中,在_check_fit_data X.shape中(self.n_clusters)( ValueError: n_samples=1应该是>= n_clusters=2

所以你可以看到,它真的认为它只是一个巨大的样本。

但是:

代码语言:javascript
复制
df.AgeFill.shape
(891,)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-23 17:45:02

您正在传递一个一维数组,而scikit需要一个带有示例功能轴的2D数组。这应该可以做到:

代码语言:javascript
复制
k_means.fit(df.AgeFill.reshape(-1, 1))

在此之前:

代码语言:javascript
复制
>>> df.AgeFill.shape
(891,)

之后:

代码语言:javascript
复制
>>> df.AgeFill.reshape(-1, 1).shape
(891, 1)
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28114630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档