2014-10-08 16 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 

我希望帮助。