[SPARK-10280][MLLIB][PYSPARK][DOCS] Add @since annotation to pyspark.ml.classification

Author: Yu ISHIKAWA <yuu.ishikawa@gmail.com>

Closes #8690 from yu-iskw/SPARK-10280.
This commit is contained in:
Yu ISHIKAWA 2015-11-09 13:16:04 -08:00 committed by Xiangrui Meng
parent 860ea0d386
commit 88a3fdcc78

View file

@ -67,6 +67,8 @@ class LogisticRegression(JavaEstimator, HasFeaturesCol, HasLabelCol, HasPredicti
Traceback (most recent call last): Traceback (most recent call last):
... ...
TypeError: Method setParams forces keyword arguments. TypeError: Method setParams forces keyword arguments.
.. versionadded:: 1.3.0
""" """
# a placeholder to make it appear in the generated doc # a placeholder to make it appear in the generated doc
@ -99,6 +101,7 @@ class LogisticRegression(JavaEstimator, HasFeaturesCol, HasLabelCol, HasPredicti
self._checkThresholdConsistency() self._checkThresholdConsistency()
@keyword_only @keyword_only
@since("1.3.0")
def setParams(self, featuresCol="features", labelCol="label", predictionCol="prediction", def setParams(self, featuresCol="features", labelCol="label", predictionCol="prediction",
maxIter=100, regParam=0.1, elasticNetParam=0.0, tol=1e-6, fitIntercept=True, maxIter=100, regParam=0.1, elasticNetParam=0.0, tol=1e-6, fitIntercept=True,
threshold=0.5, thresholds=None, probabilityCol="probability", threshold=0.5, thresholds=None, probabilityCol="probability",
@ -119,6 +122,7 @@ class LogisticRegression(JavaEstimator, HasFeaturesCol, HasLabelCol, HasPredicti
def _create_model(self, java_model): def _create_model(self, java_model):
return LogisticRegressionModel(java_model) return LogisticRegressionModel(java_model)
@since("1.4.0")
def setThreshold(self, value): def setThreshold(self, value):
""" """
Sets the value of :py:attr:`threshold`. Sets the value of :py:attr:`threshold`.
@ -129,6 +133,7 @@ class LogisticRegression(JavaEstimator, HasFeaturesCol, HasLabelCol, HasPredicti
del self._paramMap[self.thresholds] del self._paramMap[self.thresholds]
return self return self
@since("1.4.0")
def getThreshold(self): def getThreshold(self):
""" """
Gets the value of threshold or its default value. Gets the value of threshold or its default value.
@ -144,6 +149,7 @@ class LogisticRegression(JavaEstimator, HasFeaturesCol, HasLabelCol, HasPredicti
else: else:
return self.getOrDefault(self.threshold) return self.getOrDefault(self.threshold)
@since("1.5.0")
def setThresholds(self, value): def setThresholds(self, value):
""" """
Sets the value of :py:attr:`thresholds`. Sets the value of :py:attr:`thresholds`.
@ -154,6 +160,7 @@ class LogisticRegression(JavaEstimator, HasFeaturesCol, HasLabelCol, HasPredicti
del self._paramMap[self.threshold] del self._paramMap[self.threshold]
return self return self
@since("1.5.0")
def getThresholds(self): def getThresholds(self):
""" """
If :py:attr:`thresholds` is set, return its value. If :py:attr:`thresholds` is set, return its value.
@ -185,9 +192,12 @@ class LogisticRegression(JavaEstimator, HasFeaturesCol, HasLabelCol, HasPredicti
class LogisticRegressionModel(JavaModel): class LogisticRegressionModel(JavaModel):
""" """
Model fitted by LogisticRegression. Model fitted by LogisticRegression.
.. versionadded:: 1.3.0
""" """
@property @property
@since("1.4.0")
def weights(self): def weights(self):
""" """
Model weights. Model weights.
@ -205,6 +215,7 @@ class LogisticRegressionModel(JavaModel):
return self._call_java("coefficients") return self._call_java("coefficients")
@property @property
@since("1.4.0")
def intercept(self): def intercept(self):
""" """
Model intercept. Model intercept.
@ -215,6 +226,8 @@ class LogisticRegressionModel(JavaModel):
class TreeClassifierParams(object): class TreeClassifierParams(object):
""" """
Private class to track supported impurity measures. Private class to track supported impurity measures.
.. versionadded:: 1.4.0
""" """
supportedImpurities = ["entropy", "gini"] supportedImpurities = ["entropy", "gini"]
@ -231,6 +244,7 @@ class TreeClassifierParams(object):
"gain calculation (case-insensitive). Supported options: " + "gain calculation (case-insensitive). Supported options: " +
", ".join(self.supportedImpurities)) ", ".join(self.supportedImpurities))
@since("1.6.0")
def setImpurity(self, value): def setImpurity(self, value):
""" """
Sets the value of :py:attr:`impurity`. Sets the value of :py:attr:`impurity`.
@ -238,6 +252,7 @@ class TreeClassifierParams(object):
self._paramMap[self.impurity] = value self._paramMap[self.impurity] = value
return self return self
@since("1.6.0")
def getImpurity(self): def getImpurity(self):
""" """
Gets the value of impurity or its default value. Gets the value of impurity or its default value.
@ -248,6 +263,8 @@ class TreeClassifierParams(object):
class GBTParams(TreeEnsembleParams): class GBTParams(TreeEnsembleParams):
""" """
Private class to track supported GBT params. Private class to track supported GBT params.
.. versionadded:: 1.4.0
""" """
supportedLossTypes = ["logistic"] supportedLossTypes = ["logistic"]
@ -287,6 +304,8 @@ class DecisionTreeClassifier(JavaEstimator, HasFeaturesCol, HasLabelCol, HasPred
>>> test1 = sqlContext.createDataFrame([(Vectors.sparse(1, [0], [1.0]),)], ["features"]) >>> test1 = sqlContext.createDataFrame([(Vectors.sparse(1, [0], [1.0]),)], ["features"])
>>> model.transform(test1).head().prediction >>> model.transform(test1).head().prediction
1.0 1.0
.. versionadded:: 1.4.0
""" """
@keyword_only @keyword_only
@ -310,6 +329,7 @@ class DecisionTreeClassifier(JavaEstimator, HasFeaturesCol, HasLabelCol, HasPred
self.setParams(**kwargs) self.setParams(**kwargs)
@keyword_only @keyword_only
@since("1.4.0")
def setParams(self, featuresCol="features", labelCol="label", predictionCol="prediction", def setParams(self, featuresCol="features", labelCol="label", predictionCol="prediction",
probabilityCol="probability", rawPredictionCol="rawPrediction", probabilityCol="probability", rawPredictionCol="rawPrediction",
maxDepth=5, maxBins=32, minInstancesPerNode=1, minInfoGain=0.0, maxDepth=5, maxBins=32, minInstancesPerNode=1, minInfoGain=0.0,
@ -333,6 +353,8 @@ class DecisionTreeClassifier(JavaEstimator, HasFeaturesCol, HasLabelCol, HasPred
class DecisionTreeClassificationModel(DecisionTreeModel): class DecisionTreeClassificationModel(DecisionTreeModel):
""" """
Model fitted by DecisionTreeClassifier. Model fitted by DecisionTreeClassifier.
.. versionadded:: 1.4.0
""" """
@ -371,6 +393,8 @@ class RandomForestClassifier(JavaEstimator, HasFeaturesCol, HasLabelCol, HasPred
>>> test1 = sqlContext.createDataFrame([(Vectors.sparse(1, [0], [1.0]),)], ["features"]) >>> test1 = sqlContext.createDataFrame([(Vectors.sparse(1, [0], [1.0]),)], ["features"])
>>> model.transform(test1).head().prediction >>> model.transform(test1).head().prediction
1.0 1.0
.. versionadded:: 1.4.0
""" """
@keyword_only @keyword_only
@ -396,6 +420,7 @@ class RandomForestClassifier(JavaEstimator, HasFeaturesCol, HasLabelCol, HasPred
self.setParams(**kwargs) self.setParams(**kwargs)
@keyword_only @keyword_only
@since("1.4.0")
def setParams(self, featuresCol="features", labelCol="label", predictionCol="prediction", def setParams(self, featuresCol="features", labelCol="label", predictionCol="prediction",
probabilityCol="probability", rawPredictionCol="rawPrediction", probabilityCol="probability", rawPredictionCol="rawPrediction",
maxDepth=5, maxBins=32, minInstancesPerNode=1, minInfoGain=0.0, maxDepth=5, maxBins=32, minInstancesPerNode=1, minInfoGain=0.0,
@ -419,6 +444,8 @@ class RandomForestClassifier(JavaEstimator, HasFeaturesCol, HasLabelCol, HasPred
class RandomForestClassificationModel(TreeEnsembleModels): class RandomForestClassificationModel(TreeEnsembleModels):
""" """
Model fitted by RandomForestClassifier. Model fitted by RandomForestClassifier.
.. versionadded:: 1.4.0
""" """
@ -450,6 +477,8 @@ class GBTClassifier(JavaEstimator, HasFeaturesCol, HasLabelCol, HasPredictionCol
>>> test1 = sqlContext.createDataFrame([(Vectors.sparse(1, [0], [1.0]),)], ["features"]) >>> test1 = sqlContext.createDataFrame([(Vectors.sparse(1, [0], [1.0]),)], ["features"])
>>> model.transform(test1).head().prediction >>> model.transform(test1).head().prediction
1.0 1.0
.. versionadded:: 1.4.0
""" """
# a placeholder to make it appear in the generated doc # a placeholder to make it appear in the generated doc
@ -482,6 +511,7 @@ class GBTClassifier(JavaEstimator, HasFeaturesCol, HasLabelCol, HasPredictionCol
self.setParams(**kwargs) self.setParams(**kwargs)
@keyword_only @keyword_only
@since("1.4.0")
def setParams(self, featuresCol="features", labelCol="label", predictionCol="prediction", def setParams(self, featuresCol="features", labelCol="label", predictionCol="prediction",
maxDepth=5, maxBins=32, minInstancesPerNode=1, minInfoGain=0.0, maxDepth=5, maxBins=32, minInstancesPerNode=1, minInfoGain=0.0,
maxMemoryInMB=256, cacheNodeIds=False, checkpointInterval=10, maxMemoryInMB=256, cacheNodeIds=False, checkpointInterval=10,
@ -499,6 +529,7 @@ class GBTClassifier(JavaEstimator, HasFeaturesCol, HasLabelCol, HasPredictionCol
def _create_model(self, java_model): def _create_model(self, java_model):
return GBTClassificationModel(java_model) return GBTClassificationModel(java_model)
@since("1.4.0")
def setLossType(self, value): def setLossType(self, value):
""" """
Sets the value of :py:attr:`lossType`. Sets the value of :py:attr:`lossType`.
@ -506,6 +537,7 @@ class GBTClassifier(JavaEstimator, HasFeaturesCol, HasLabelCol, HasPredictionCol
self._paramMap[self.lossType] = value self._paramMap[self.lossType] = value
return self return self
@since("1.4.0")
def getLossType(self): def getLossType(self):
""" """
Gets the value of lossType or its default value. Gets the value of lossType or its default value.
@ -516,6 +548,8 @@ class GBTClassifier(JavaEstimator, HasFeaturesCol, HasLabelCol, HasPredictionCol
class GBTClassificationModel(TreeEnsembleModels): class GBTClassificationModel(TreeEnsembleModels):
""" """
Model fitted by GBTClassifier. Model fitted by GBTClassifier.
.. versionadded:: 1.4.0
""" """
@ -555,6 +589,8 @@ class NaiveBayes(JavaEstimator, HasFeaturesCol, HasLabelCol, HasPredictionCol, H
>>> test1 = sc.parallelize([Row(features=Vectors.sparse(2, [0], [1.0]))]).toDF() >>> test1 = sc.parallelize([Row(features=Vectors.sparse(2, [0], [1.0]))]).toDF()
>>> model.transform(test1).head().prediction >>> model.transform(test1).head().prediction
1.0 1.0
.. versionadded:: 1.5.0
""" """
# a placeholder to make it appear in the generated doc # a placeholder to make it appear in the generated doc
@ -587,6 +623,7 @@ class NaiveBayes(JavaEstimator, HasFeaturesCol, HasLabelCol, HasPredictionCol, H
self.setParams(**kwargs) self.setParams(**kwargs)
@keyword_only @keyword_only
@since("1.5.0")
def setParams(self, featuresCol="features", labelCol="label", predictionCol="prediction", def setParams(self, featuresCol="features", labelCol="label", predictionCol="prediction",
probabilityCol="probability", rawPredictionCol="rawPrediction", smoothing=1.0, probabilityCol="probability", rawPredictionCol="rawPrediction", smoothing=1.0,
modelType="multinomial"): modelType="multinomial"):
@ -602,6 +639,7 @@ class NaiveBayes(JavaEstimator, HasFeaturesCol, HasLabelCol, HasPredictionCol, H
def _create_model(self, java_model): def _create_model(self, java_model):
return NaiveBayesModel(java_model) return NaiveBayesModel(java_model)
@since("1.5.0")
def setSmoothing(self, value): def setSmoothing(self, value):
""" """
Sets the value of :py:attr:`smoothing`. Sets the value of :py:attr:`smoothing`.
@ -609,12 +647,14 @@ class NaiveBayes(JavaEstimator, HasFeaturesCol, HasLabelCol, HasPredictionCol, H
self._paramMap[self.smoothing] = value self._paramMap[self.smoothing] = value
return self return self
@since("1.5.0")
def getSmoothing(self): def getSmoothing(self):
""" """
Gets the value of smoothing or its default value. Gets the value of smoothing or its default value.
""" """
return self.getOrDefault(self.smoothing) return self.getOrDefault(self.smoothing)
@since("1.5.0")
def setModelType(self, value): def setModelType(self, value):
""" """
Sets the value of :py:attr:`modelType`. Sets the value of :py:attr:`modelType`.
@ -622,6 +662,7 @@ class NaiveBayes(JavaEstimator, HasFeaturesCol, HasLabelCol, HasPredictionCol, H
self._paramMap[self.modelType] = value self._paramMap[self.modelType] = value
return self return self
@since("1.5.0")
def getModelType(self): def getModelType(self):
""" """
Gets the value of modelType or its default value. Gets the value of modelType or its default value.
@ -632,9 +673,12 @@ class NaiveBayes(JavaEstimator, HasFeaturesCol, HasLabelCol, HasPredictionCol, H
class NaiveBayesModel(JavaModel): class NaiveBayesModel(JavaModel):
""" """
Model fitted by NaiveBayes. Model fitted by NaiveBayes.
.. versionadded:: 1.5.0
""" """
@property @property
@since("1.5.0")
def pi(self): def pi(self):
""" """
log of class priors. log of class priors.
@ -642,6 +686,7 @@ class NaiveBayesModel(JavaModel):
return self._call_java("pi") return self._call_java("pi")
@property @property
@since("1.5.0")
def theta(self): def theta(self):
""" """
log of class conditional probabilities. log of class conditional probabilities.
@ -681,6 +726,8 @@ class MultilayerPerceptronClassifier(JavaEstimator, HasFeaturesCol, HasLabelCol,
|[0.0,0.0]| 0.0| |[0.0,0.0]| 0.0|
+---------+----------+ +---------+----------+
... ...
.. versionadded:: 1.6.0
""" """
# a placeholder to make it appear in the generated doc # a placeholder to make it appear in the generated doc
@ -715,6 +762,7 @@ class MultilayerPerceptronClassifier(JavaEstimator, HasFeaturesCol, HasLabelCol,
self.setParams(**kwargs) self.setParams(**kwargs)
@keyword_only @keyword_only
@since("1.6.0")
def setParams(self, featuresCol="features", labelCol="label", predictionCol="prediction", def setParams(self, featuresCol="features", labelCol="label", predictionCol="prediction",
maxIter=100, tol=1e-4, seed=None, layers=None, blockSize=128): maxIter=100, tol=1e-4, seed=None, layers=None, blockSize=128):
""" """
@ -731,6 +779,7 @@ class MultilayerPerceptronClassifier(JavaEstimator, HasFeaturesCol, HasLabelCol,
def _create_model(self, java_model): def _create_model(self, java_model):
return MultilayerPerceptronClassificationModel(java_model) return MultilayerPerceptronClassificationModel(java_model)
@since("1.6.0")
def setLayers(self, value): def setLayers(self, value):
""" """
Sets the value of :py:attr:`layers`. Sets the value of :py:attr:`layers`.
@ -738,12 +787,14 @@ class MultilayerPerceptronClassifier(JavaEstimator, HasFeaturesCol, HasLabelCol,
self._paramMap[self.layers] = value self._paramMap[self.layers] = value
return self return self
@since("1.6.0")
def getLayers(self): def getLayers(self):
""" """
Gets the value of layers or its default value. Gets the value of layers or its default value.
""" """
return self.getOrDefault(self.layers) return self.getOrDefault(self.layers)
@since("1.6.0")
def setBlockSize(self, value): def setBlockSize(self, value):
""" """
Sets the value of :py:attr:`blockSize`. Sets the value of :py:attr:`blockSize`.
@ -751,6 +802,7 @@ class MultilayerPerceptronClassifier(JavaEstimator, HasFeaturesCol, HasLabelCol,
self._paramMap[self.blockSize] = value self._paramMap[self.blockSize] = value
return self return self
@since("1.6.0")
def getBlockSize(self): def getBlockSize(self):
""" """
Gets the value of blockSize or its default value. Gets the value of blockSize or its default value.
@ -761,9 +813,12 @@ class MultilayerPerceptronClassifier(JavaEstimator, HasFeaturesCol, HasLabelCol,
class MultilayerPerceptronClassificationModel(JavaModel): class MultilayerPerceptronClassificationModel(JavaModel):
""" """
Model fitted by MultilayerPerceptronClassifier. Model fitted by MultilayerPerceptronClassifier.
.. versionadded:: 1.6.0
""" """
@property @property
@since("1.6.0")
def layers(self): def layers(self):
""" """
array of layer sizes including input and output layers. array of layer sizes including input and output layers.
@ -771,6 +826,7 @@ class MultilayerPerceptronClassificationModel(JavaModel):
return self._call_java("javaLayers") return self._call_java("javaLayers")
@property @property
@since("1.6.0")
def weights(self): def weights(self):
""" """
vector of initial weights for the model that consists of the weights of layers. vector of initial weights for the model that consists of the weights of layers.