使用 Scikit Learn K-Means 大放异彩
Blaze with Scikit Learn K-Means
我正在尝试使 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
它的抛出错误:
我已经能够使用 Pandas Dataframe 做到这一点。有什么方法可以将 blaze 对象提供给此函数?
我建议您选择的聚类数 (K) 远小于数据集中的训练示例数。当你想要的簇数大于或等于训练样例数时,运行 K-Means 算法是不对的。
当您尝试将形状不理想的 blaze 对象传递给 KMeans 函数时,会发生错误。
请检查 :
https://blaze.readthedocs.io/en/latest/csv.html
我认为您需要先将 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._Data
类型的输入数据,这是您代码中 data_numeric 的类型。
您可以使用 data_cluster.fit(data_numeric.peek())
将传输的 data_numeric 与 sklearn.cluster.KMeans
支持的类型 DataFrame
相匹配。
是的,在你适合之前,你必须需要将你的 pandas 数据帧转换成一个 numpy 数组,现在它工作正常......我想 @aberger 已经回答了。
谢谢!
我正在尝试使 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
它的抛出错误:
我已经能够使用 Pandas Dataframe 做到这一点。有什么方法可以将 blaze 对象提供给此函数?
我建议您选择的聚类数 (K) 远小于数据集中的训练示例数。当你想要的簇数大于或等于训练样例数时,运行 K-Means 算法是不对的。 当您尝试将形状不理想的 blaze 对象传递给 KMeans 函数时,会发生错误。 请检查 : https://blaze.readthedocs.io/en/latest/csv.html
我认为您需要先将 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._Data
类型的输入数据,这是您代码中 data_numeric 的类型。
您可以使用 data_cluster.fit(data_numeric.peek())
将传输的 data_numeric 与 sklearn.cluster.KMeans
支持的类型 DataFrame
相匹配。
是的,在你适合之前,你必须需要将你的 pandas 数据帧转换成一个 numpy 数组,现在它工作正常......我想 @aberger 已经回答了。
谢谢!