2014-10-08 17 views
1

python-wise中實現predict_proba(X)等價的Scikit-Learn我更喜歡.predict_proba(X)而不是.decision_function(X),因爲它更容易解釋結果。就我所見,後者的功能已經在Spark中實現了(好吧,在版本0.9.2中,例如我必須自己計算點積,否則我得到0或1),但前者尚未實現(還!)。我該怎麼做\如何在Spark中實現那個呢?這裏需要的輸入是什麼以及公式如何?如何在MLlib

回答

0

在Spark/Mlib 1.3版中,似乎預測函數可以通過清除閾值返回概率。 從這個頁面:https://spark.apache.org/docs/1.3.0/api/python/pyspark.mllib.html#module-pyspark.mllib.classification

>>> data = [ 
...  LabeledPoint(0.0, [0.0, 1.0]), 
...  LabeledPoint(1.0, [1.0, 0.0]), 
... ] 
>>> lrm = LogisticRegressionWithSGD.train(sc.parallelize(data)) 
>>> lrm.predict([1.0, 0.0]) 
1 
>>> lrm.predict([0.0, 1.0]) 
0 
>>> lrm.predict(sc.parallelize([[1.0, 0.0], [0.0, 1.0]])).collect() 
[1, 0] 
>>> lrm.clearThreshold() 
>>> lrm.predict([0.0, 1.0]) 
0.123... 

源的預測函數調用說就是: https://spark.apache.org/docs/1.3.0/api/python/_modules/pyspark/mllib/classification.html#LogisticRegressionModel.predict

if self._threshold is None: 
      return prob 
     else: 
      return 1 if prob > self._threshold else 0 

我希望幫助。