OneVsRest

class pyspark.ml.classification. OneVsRest ( * , featuresCol : str = 'features' , labelCol : str = 'label' , predictionCol : str = 'prediction' , rawPredictionCol : str = 'rawPrediction' , classifier : Optional [ pyspark.ml.classification.Classifier [ CM ] ] = None , weightCol : Optional [ str ] = None , parallelism : int = 1 ) [source]

将多类分类简化为二分类。 使用一对一策略进行简化。 对于具有k个类的多类分类,训练k个模型(每个类一个)。 每个示例与所有k个模型进行评分,选择评分最高的模型来标记该示例。

新增于版本 2.0.0。

示例

>>> from pyspark.sql import Row
>>> from pyspark.ml.linalg import Vectors
>>> data_path = "data/mllib/sample_multiclass_classification_data.txt"
>>> df = spark.read.format("libsvm").load(data_path)
>>> lr = LogisticRegression(regParam=0.01)
>>> ovr = OneVsRest(classifier=lr)
>>> ovr.getRawPredictionCol()
'rawPrediction'
>>> ovr.setPredictionCol("newPrediction")
OneVsRest...
>>> model = ovr.fit(df)
>>> model.models[0].coefficients
DenseVector([0.5..., -1.0..., 3.4..., 4.2...])
>>> model.models[1].coefficients
DenseVector([-2.1..., 3.1..., -2.6..., -2.3...])
>>> model.models[2].coefficients
DenseVector([0.3..., -3.4..., 1.0..., -1.1...])
>>> [x.intercept for x in model.models]
[-2.7..., -2.5..., -1.3...]
>>> test0 = sc.parallelize([Row(features=Vectors.dense(-1.0, 0.0, 1.0, 1.0))]).toDF()
>>> model.transform(test0).head().newPrediction
0.0
>>> test1 = sc.parallelize([Row(features=Vectors.sparse(4, [0], [1.0]))]).toDF()
>>> model.transform(test1).head().newPrediction
2.0
>>> test2 = sc.parallelize([Row(features=Vectors.dense(0.5, 0.4, 0.3, 0.2))]).toDF()
>>> model.transform(test2).head().newPrediction
0.0
>>> model_path = temp_path + "/ovr_model"
>>> model.save(model_path)
>>> model2 = OneVsRestModel.load(model_path)
>>> model2.transform(test0).head().newPrediction
0.0
>>> model.transform(test0).take(1) == model2.transform(test0).take(1)
True
>>> model.transform(test2).columns
['features', 'rawPrediction', 'newPrediction']

方法

clear (参数)

如果参数已明确设置,则从参数映射中清除该参数。

copy ([extra])

创建此实例的一个副本,并带有随机生成的uid和一些额外参数。

explainParam (参数)

解释单个参数并返回其名称、文档以及可选的默认值和用户提供的值的字符串。

explainParams ()

返回所有参数的文档,包括它们可选的默认值和用户提供的值。

extractParamMap ([extra])

提取嵌入的默认参数值和用户提供的值,然后将它们与输入中的额外值合并到一个扁平的参数映射中,如果存在冲突,则使用后者的值,即顺序为:默认参数值 < 用户提供的值 < 额外值。

fit (数据集[, 参数])

使用可选参数将模型拟合到输入数据集。

fitMultiple (数据集, 参数映射)

为输入数据集中的每个参数映射拟合一个模型。

getClassifier ()

获取分类器的值或其默认值。

getFeaturesCol ()

获取featuresCol的值或其默认值。

getLabelCol ()

获取 labelCol 的值或其默认值。

getOrDefault (参数)

获取用户提供的参数映射中的参数值或其默认值。

getParallelism ()

获取并行度或其默认值。

getParam (paramName)

根据名称获取参数。

getPredictionCol ()

获取 predictionCol 的值或其默认值。

getRawPredictionCol ()

获取rawPredictionCol的值或其默认值。

getWeightCol ()

获取 weightCol 的值或其默认值。

hasDefault (参数)

检查参数是否具有默认值。

hasParam (paramName)

测试此实例是否包含具有给定(字符串)名称的参数。

isDefined (参数)

检查参数是否由用户显式设置或具有默认值。

isSet (参数)

检查参数是否被用户显式设置。

load (路径)

从输入路径读取一个ML实例,是 read().load(path) 的快捷方式。

read ()

返回此类的一个 MLReader 实例。

save (路径)

将此 ML 实例保存到给定路径,是 ‘write().save(path)’ 的快捷方式。

set (参数, 值)

在嵌入的参数映射中设置一个参数。

setClassifier (值)

设置 classifier 的值。

setFeaturesCol (值)

设置 featuresCol 的值。

setLabelCol (值)

设置 labelCol 的值。

setParallelism (值)

设置 parallelism 的值。

setParams (*[, 特征列, 标签列, …])

setParams(self, *, featuresCol=”features”, labelCol=”label”, predictionCol=”prediction”, rawPredictionCol=”rawPrediction”, classifier=None, weightCol=None, parallelism=1): 设置OneVsRest的参数。

setPredictionCol (值)

设置 predictionCol 的值。

setRawPredictionCol (值)

设置 rawPredictionCol 的值。

setWeightCol (值)

设置 weightCol 的值。

write ()

返回此ML实例的MLWriter实例。

属性

分类器

featuresCol

labelCol

parallelism

参数

返回按名称排序的所有参数。

predictionCol

rawPredictionCol

weightCol

方法文档

clear ( param : pyspark.ml.param.Param ) → None

如果参数已明确设置,则从参数映射中清除该参数。

copy ( extra : Optional [ ParamMap ] = None ) → OneVsRest [source]

创建此实例的一个副本,并带有随机生成的uid和一些额外参数。这将创建嵌入的paramMap的深拷贝,并将嵌入和额外参数复制过来。

新增于版本 2.0.0。

Returns
OneVsRest

此实例的副本

示例

extra dict, optional

复制到新实例的额外参数

explainParam ( param : Union [ str , pyspark.ml.param.Param ] ) → str

解释单个参数并返回其名称、文档以及可选的默认值和用户提供的值的字符串。

explainParams ( ) → str

返回所有参数的文档,包括它们可选的默认值和用户提供的值。

extractParamMap ( extra : Optional [ ParamMap ] = None ) → ParamMap

提取嵌入的默认参数值和用户提供的值,然后将它们与输入中的额外值合并到一个扁平的参数映射中,如果存在冲突,则使用后者的值,即顺序为:默认参数值 < 用户提供的值 < 额外值。

Parameters
extra dict, optional

额外参数值

Returns
dict

合并的参数映射

fit ( dataset : pyspark.sql.dataframe.DataFrame , params : Union[ParamMap, List[ParamMap], Tuple[ParamMap], None] = None ) → Union [ M , List [ M ] ]

使用可选参数将模型拟合到输入数据集。

新增于版本 1.3.0。

Parameters
dataset pyspark.sql.DataFrame

输入数据集。

params dict or list or tuple, optional

一个可选的参数映射,用于覆盖嵌入的参数。如果给定了一个参数映射的列表/元组,这将调用每个参数映射上的fit方法,并返回一个模型列表。

Returns
Transformer or a list of Transformer

拟合模型

fitMultiple ( dataset : pyspark.sql.dataframe.DataFrame , paramMaps : Sequence [ ParamMap ] ) → Iterator [ Tuple [ int , M ] ]

为输入数据集中的每个参数映射拟合一个模型。

新增于版本 2.3.0。

Parameters
dataset pyspark.sql.DataFrame

输入数据集。

paramMaps collections.abc.Sequence

一系列参数映射。

Returns
_FitMultipleIterator

一个线程安全的可迭代对象,其中包含每个参数映射的一个模型。每次调用 next(modelIterator) 将返回 (index, model) ,其中模型是使用 paramMaps[index] 拟合的。 index 值可能不是连续的。

getClassifier ( ) → pyspark.ml.classification.Classifier

获取分类器的值或其默认值。

新增于版本 2.0.0。

getFeaturesCol ( ) → str

获取featuresCol的值或其默认值。

getLabelCol ( ) → str

获取 labelCol 的值或其默认值。

getOrDefault ( param : Union [ str , pyspark.ml.param.Param [ T ] ] ) → Union [ Any , T ]

获取用户提供的参数映射中的参数值或其默认值。如果两者都未设置,则引发错误。

getParallelism ( ) → int

获取并行度或其默认值。

getParam ( paramName : str ) pyspark.ml.param.Param

根据名称获取参数。

getPredictionCol ( ) → str

获取 predictionCol 的值或其默认值。

getRawPredictionCol ( ) → str

获取rawPredictionCol的值或其默认值。

getWeightCol ( ) → str

获取 weightCol 的值或其默认值。

hasDefault ( param : Union [ str , pyspark.ml.param.Param [ Any ] ] ) → bool

检查参数是否具有默认值。

hasParam ( paramName : str ) → bool

测试此实例是否包含具有给定(字符串)名称的参数。

isDefined ( param : Union [ str , pyspark.ml.param.Param [ Any ] ] ) → bool

检查参数是否由用户显式设置或具有默认值。

isSet ( param : Union [ str , pyspark.ml.param.Param [ Any ] ] ) → bool

检查参数是否被用户显式设置。

classmethod load ( path : str ) → RL

从输入路径读取一个ML实例,是 read().load(path) 的快捷方式。

classmethod read ( ) → pyspark.ml.classification.OneVsRestReader [source]

返回此类的一个 MLReader 实例。

save ( path : str ) → None

将此 ML 实例保存到给定路径,是 ‘write().save(path)’ 的快捷方式。

set ( param : pyspark.ml.param.Param , value : Any ) → None

在嵌入的参数映射中设置一个参数。

setClassifier ( value : pyspark.ml.classification.Classifier [ CM ] ) pyspark.ml.classification.OneVsRest [source]

设置 classifier 的值。

新增于版本 2.0.0。

setFeaturesCol ( value : str ) pyspark.ml.classification.OneVsRest [source]

设置 featuresCol 的值。

setLabelCol ( value : str ) pyspark.ml.classification.OneVsRest [source]

设置 labelCol 的值。

setParallelism ( value : int ) pyspark.ml.classification.OneVsRest [source]

设置 parallelism 的值。

setParams ( * , featuresCol : str = 'features' , labelCol : str = 'label' , predictionCol : str = 'prediction' , rawPredictionCol : str = 'rawPrediction' , classifier : Optional [ pyspark.ml.classification.Classifier [ CM ] ] = None , weightCol : Optional [ str ] = None , parallelism : int = 1 ) pyspark.ml.classification.OneVsRest [source]

setParams(self, *, featuresCol=”features”, labelCol=”label”, predictionCol=”prediction”, rawPredictionCol=”rawPrediction”, classifier=None, weightCol=None, parallelism=1): 设置OneVsRest的参数。

新增于版本 2.0.0。

setPredictionCol ( value : str ) pyspark.ml.classification.OneVsRest [source]

设置 predictionCol 的值。

setRawPredictionCol ( value : str ) pyspark.ml.classification.OneVsRest [source]

设置 rawPredictionCol 的值。

setWeightCol ( value : str ) pyspark.ml.classification.OneVsRest [source]

设置 weightCol 的值。

write ( ) pyspark.ml.util.MLWriter [source]

返回此ML实例的MLWriter实例。

属性文档

classifier = Param(parent='undefined', name='classifier', doc='base binary classifier')
featuresCol = Param(parent='undefined', name='featuresCol', doc='features column name.')
labelCol = Param(parent='undefined', name='labelCol', doc='label column name.')
parallelism = Param(parent='undefined', name='parallelism', doc='the number of threads to use when running parallel algorithms (>= 1).')
params

返回按名称排序的所有参数。默认实现使用 dir() 获取所有类型为 Param 的属性。

predictionCol = Param(parent='undefined', name='predictionCol', doc='prediction column name.')
rawPredictionCol = Param(parent='undefined', name='rawPredictionCol', doc='raw prediction (a.k.a. confidence) column name.')
weightCol = Param(parent='undefined', name='weightCol', doc='weight column name. If this is not set or empty, we treat all instance weights as 1.0.')