ML包

ML包概述

该库公开了三个抽象类:转换器、评估器和管道。

转换器

通常通过一个新列附加到DataFrame来转换数据。
当转换器的抽象类派生时,每个新的转换器类需要实现.transform()方法。该方法要求传递一个要被转换的DataFrame,该参数通常是第一个也是唯一的一个强制性参数。
在pyspark.ml.feature中提供了许多转换器

  • Binarizer:根据指定的阈值将连续变量转换为对应的二进制值
  • Bcketizer:与Binarizer类似,该方法根据阈值列表(分割的参数),将连续变量转换为多项值(即将连续变量离散化到指定的范围区间)
  • ChiSqSelector:对于分类不表变量(思考分类模型),此功能允许选择预定义数量的特征,以便更好地说明目标的变化
  • countVectorizer:该方法对与标记文本是有用的。这是一个需要用fit,即从数据集中学习这些模式,然后才能使用fit方法返回的CountVetorizerModel对象的.transform方法
  • DCT:离散余弦变换取实数值向量,并返回相同长度的向量,但余弦函数之和在不同频率下振荡。这种转换对于提取数据或数据压缩中的一些基本频率很有用
  • ElementwiseProduct:该方法返回一个向量,其中的元素是传入该方法的向量和另一个传入参数scalingVec向量的乘积
  • HashingTF:一个哈希转换器,输入为标记文本的列表,返回一个带有技术的有预定长度的向量。
  • IDF:该方法计算文档列表的逆向文件频率
  • IndexToString:与StringIndexer方法对应。使用StringIndexerModel对象中的编码将字符串索引反转到原始值
  • MaxAbsScaler:将数据调整到[-1.0, 10.]范围内
  • MinMaxScaler:与MaxAbsScaler相似
  • NGram:此方法的输入为标记文本的列表,返回结果包含一系列n-gram:以两个词、三个词或更多的n个词为一个n-gram。
  • Normalizer:该方法使用p范数将数据缩放为单位范数(默认为L2)
  • OneHotEncode:此方法将分类列编码为二进制向量列
  • PCA:主成分分析数据降维
  • PolynomialExpansion:执行向量的多项式展开
  • QuantileDiscretizer:与Bucketizer方法相似,但不是传递分隔参数,而是传递一个numBuckets参数
  • RegexTokenizer:使用正则表达式的字符串分词器
  • RFormual:可以传递一个公式,它将产生给定表达式的vec列
  • SQLTransformer:与上一类似,可以使用SQL语法
  • StandardScaler:标准化列,使其拥有零均值和等于1的标准差
  • StopWordRemover:从标记文本中删除停用词
  • StringIndexer:假设包含所有单词的列表都在一列,这将产生一个索引向量
  • Tokenizer:该默认分词器将字符串转成小写,然后以空格为分隔符分词
  • VectorAssembler:这是一个非常有用的转换器,它将数字列合并为一列向量
  • VectorIndexer:该方法为泪别列生成索引向量。它以逐列方式工作,从列中选择不同的值,排序并映射中返回值的索引而不是原始值
  • VectorSlicer:作用于特征向量,不管是密集的还是稀疏的:给定一个索引列表,它从特征向量中提取之。
  • Word2Vec:该方法将一个句子作为输出,并将其转换为{string, vector}格式的映射,这种表示在自然语言处理中非常有用

评估器

评估器可以被视为需要评估的统计模型,对观测对象做预测或分类。
如果从抽象的评估器类派生,新模型必须实现.fit()方法,该方法用给出的在DataFrame中找到的数据和某些默认或自定义的参数来拟合模型

分类

ML包提供了七种分类(Classification)模型,范围覆盖了从简单的(如逻辑回归)到更加复杂的

  • LogisticRegression:分类的基准模型。逻辑回归使用一个对数函数来计算属于特定类别的观察对象的概率。Pyspark ML仅支持二分类问题
  • DecisionTreeClassifier:该分类器构建了一个决策树来预测一个观察对象的所属类别。指定maxDepth参数限制树的深度,minInstancePerNode确定需要进一步拆分的树节点的观察对象的最小数量,maxBins参数指定连续变量将分隔的Bin的最大数量,而impurity指定用于测量并计算来自分割的信息的度量
  • GBTClassifier:用于分类的梯度提升决策树模型。该模型属于集合模型家族;集合模型结合多个弱预测模型而形成一个强健的模型。GBTClassifier模型支持二进制标签、连续特征和分类特征
  • RandomForestClassifier:该模型产生多个决策树(决策森林),并使用模式输出的决策树来观察对象进行分类。RandomForestClassifier支持二元标签和多项标签
  • NaiveBayes:基于贝叶斯定理,该模型使用条件概率理论对观测进行分类。Pyspark ML中的NaiveBayes模型支持二元标签和多项标签
  • MultilayerPerceptoronClassifier(多层感知器分类器):模仿人类大脑本质的分类器。深深植根于人造神经网络理论,该模型是一个黑盒模型,也就是说,不容易解释模型的内部参数。该模型至少包含三个完全相连的人造神经元层(在创建模型对象时需要指定的参数):输入层(需要和数据集中特征的数量一样)、多个隐藏层(至少一个)以及一个输出层,其神经元数量等于标签中的类别数量。输入层和隐藏成中的所有神经元都有sigmoid激活函数,而输出层神经元的激活函数则为softmax。
  • OneVsRest:将多分类问题简化为二分类问题。在多标签的情况下,模型可以训练成多个二元逻辑回归模型。例如,如果label == 2,模型将构建一个逻辑回归,它将label == 2转换为1(所有剩余的标签值将甚至为0),然后训练二元模型。所有的模型分别积分,具有最高该路的模型获胜
回归

Pyspark ML软件包中有七种可用于回归(Regression)任务的模型。与分类一样,范围从一些基本的回归(如强制线性回归)到更复杂的回归:

  • AFTSurvivalRegression:适合加速失效时间回归模型。它是一个参数化模型,假设其中一个特征的边际效应加速或减缓了预期寿命。它非常适用于具有明确阶段的过程
  • DecisionTreeRegressor:类似于分类模型,明显不同的是其标签是连续的而不是二元(或多项)的
  • GBTRegressor:与DecisionTreeRegressor一样,区别在于标签的数据类型
  • GeneralizedLinearRegression:广义线性回归是具有不同内核功能的线性模型家族。与假设误差项的常态性的线性回归相反,GLM允许标签具有不同的误差项分布:Pyspark ML包的GeneralizedLinearRegression模型支持gaussian、binomial、gamma和poisson家族的误差分布,他们有许多不同的连接功能
  • IsotonicRegression:这种回归拟合一个形式自由、非传递的行到数据中。对于拟合有序的递增的观测数据集是有用的
  • LinearRegressor:最简单的回归模型,它假设了特征与连续标签以及误差项的常态之间的线性关系
  • RandomForestRegressor:与DecisinTreeRegressor或GBTRegressor类似,RandomForestRegressor适合连续的标签,而不是离散标签
聚合

据类是一系列无监督的模型,用于查找数据中的隐含模式。Pyspark ML包提供了四种模型:

  • BisectingKMeans(二分k均值算法):该算法结合了k均值聚类算法和层次聚类算法。最初该算法将所有观察点作为一个簇,然后将数据迭代地分解为k个簇
  • KMeans:k均值算法,将数据分成k个簇,迭代地搜索那些使每个观察点和它所属簇地质点之间距离平方和最小地那些质点
  • GaussianMixture(高斯混合模型):该方法使用未知参数地k个高斯分布来剖析数据集.使用期望最大化算法,通过最大化对数似然函数找到高斯参数
管道

Pyspark ML中管道地概念使用来转换到评估地端到端地过程,这个过程可以对输入地一些原始数据(以DataFrame形式)执行必要地数据加工(转换),最后评估统计模型
一个管道可以被认为是一系列不同阶段组成地。在Pipline对象上执行.fit()方法,所有极端按照stages参数中指定地顺序执行;stages参数是转换器和评估器对象地列表。管道对象地.fit()方法执行每个转换器地.transform()方法和所有评估器地.fit()方法
通常,前一阶段地输出会成为下一阶段地输入:当转换器或评估器抽象类派生时,需要实现.getOutputCol()方法,该方法返回创建对象时指定地outputCol参数地值

spark官方教程:http://spark.apache.org/docs/latest/api/python/pyspark.ml.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值