我想使用DBSCAN和spark_sklearn對我的輸入數據進行聚類。我想在聚類後獲取每個輸入實例的標籤。可能嗎?使用DBSCAN和spark_sklearn對數據進行聚類
閱讀http://pythonhosted.org/spark-sklearn的文檔,我試過如下:
temp_data = Spark DataFrame containing 'key' and 'features' columns,
where 'features' is a Vector.
ke = KeyedEstimator(sklearnEstimator=DBSCAN(), estimatorType="clusterer")
print ke.getOrDefault("estimatorType") --> "clusterer"
ke.fit_pedict(temp_data) --> ERROR: 'KeyedEstimator' object has no attribute 'fit_predict'
k_model = ke.fit(temp_data)
print k_model.getOrDefault("estimatorType") --> "clusterer"
k_model.fit_pedict(temp_data) --> ERROR: 'KeyedModel' object has no attribute 'fit_predict'
k_model.predict(temp_data) --> ERROR: 'KeyedModel' object has no attribute 'predict'
k_model.transform(temp_data) --> ERROR: estimatorType assumed to be a clusterer, but sklearnEstimator is missing fit_predict()
(NOTE: sklearn.cluster.DBSCAN actually have fit_predict() method)
什麼我一般使用sklearn(無火花),是適合(dbscan_model.fit(temp_data-features)
),並從模型(labels = dbscan_model.labels_
)上設置標籤。如果我可以使用spark-sklearn獲得'labels_'屬性,那也沒關係。
如果上述調用('transform'或'predict')不起作用,是否可以在使用spark-sklearn擬合數據後獲得'labels_'?我怎樣才能做到這一點?假設我們獲得了'labels_',我怎樣才能將輸入實例映射到labels_?他們有相同的訂單嗎?
避免使用繞過軟件的軟件......軟件將軟件包裝在軟件中......堆疊層殺死性能(而且pyspark已經有了緩慢的聲譽),並且你不再擁有所有的功能。 –