DBSCAN 및 spark_sklearn을 사용하여 입력 데이터를 클러스터링하려고합니다. 클러스터링 후 각 입력 인스턴스의 레이블을 얻고 싶습니다. 가능한가?DBSCAN 및 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_
)에서 레이블을 얻을 수 있습니다 :
는 http://pythonhosted.org/spark-sklearn에 대한 설명서를 읽고, 나는이 다음 시도했다. spark-sklearn을 사용하여 'labels_'속성을 얻을 수 있다면 괜찮습니다.
위에서 언급 한 ('변환'또는 '예측') 호출이 작동하지 않으면 spark-sklearn을 사용하여 데이터를 피팅 한 후 'labels_'을 얻을 수 있습니까? 어떻게해야합니까? 'labels_'을 얻은 것으로 가정하고, 어떻게 입력 인스턴스를 labels_에 매핑 할 수 있습니까? 그들도 같은 주문을 가지고 있습니까?
않도록 사용하는 소프트웨어는 ... 레이어 위에 stackinglayer 성능을 처치 (및 pyspark 이미 느리다의 명성을 가지고), 당신은 더 이상 모든 기능을하지 않습니다. –