Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.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 用Scikit闪耀学习K-Means_Python_Scikit Learn_Blaze - Fatal编程技术网

Python 用Scikit闪耀学习K-Means

Python 用Scikit闪耀学习K-Means,python,scikit-learn,blaze,Python,Scikit Learn,Blaze,我正在尝试将Blaze数据对象与scikit kmeans函数相匹配 from blaze import * from sklearn.cluster import KMeans data_numeric = Data('data.csv') data_cluster = KMeans(n_clusters=5) data_cluster.fit(data_numeric) 数据样本: A B C 1 32 34 5 57 92 89 67 21 它的抛出错误: 我已经能够用熊猫数

我正在尝试将Blaze数据对象与scikit kmeans函数相匹配

from blaze import *
from sklearn.cluster import KMeans
data_numeric = Data('data.csv')
data_cluster = KMeans(n_clusters=5)
data_cluster.fit(data_numeric)
数据样本:

A  B  C
1  32 34
5  57 92
89 67 21
它的抛出错误:


我已经能够用熊猫数据框来做了。有没有办法将blaze对象提供给此函数?

我建议您选择的簇数(K)要比数据集中的训练示例数小得多。当所需的簇数大于或等于训练示例数时,运行K-Means算法是不对的。 当您试图将形状不理想的blaze对象传递给KMeans函数时,会发生此错误。 请检查:

我认为您需要先将pandas数据帧转换为numpy阵列,然后才能安装

from blaze import *
import numpy

from sklearn.cluster import KMeans
data_numeric = numpy.array(data('data.csv'))
data_cluster = KMeans(n_clusters=5)
data_cluster.fit(data_numeric)

sklearn.cluster.KMeans
不支持类型为
blaze.interactive.\u data
的输入数据,这是代码中的数字数据类型


您可以使用
data\u cluster.fit(data\u numeric.peek())
将传输的数据\u numeric与
sklearn.cluster.KMeans
支持的类型
DataFrame
匹配。是的,在匹配之前,您必须将pandas数据帧转换为numpy数组,现在它工作正常了……我想@aberger已经回答了


谢谢大家!

仔细检查要传递到k-means的数组的大小。通常,在传递一维数组时会引发此错误。blaze对象中有多少个样本?我正在向函数传递大约30000行数据,这里仅粘贴了3行样本。您需要使用
data_cluster.fit(data_numeric)
命令中的重塑函数,并将数组重塑为二维数组形式,scikit的K-Means可以接受。转换为数据帧是一个非常昂贵的过程,但似乎没有其他方法可以做到这一点。