iis做的网站手机怎么访问,手机怎么创建链接网址,保定专门做网站,网站模板 英文PySpark MLlib 特征处理详解
PySpark MLlib 提供了丰富的特征处理工具#xff0c;帮助我们进行特征提取、转换和选择。以下是 PySpark MLlib 中常用的特征处理类及其简要介绍。
1. Binarizer
Binarizer 是将连续特征二值化的转换器。
from pyspark.ml.feature import Bina…PySpark MLlib 特征处理详解
PySpark MLlib 提供了丰富的特征处理工具帮助我们进行特征提取、转换和选择。以下是 PySpark MLlib 中常用的特征处理类及其简要介绍。
1. Binarizer
Binarizer 是将连续特征二值化的转换器。
from pyspark.ml.feature import Binarizerbinarizer Binarizer(threshold0.5, inputColfeature, outputColbinarized_feature)
binarizedData binarizer.transform(data)2. BucketedRandomProjectionLSH
BucketedRandomProjectionLSH 是基于欧几里得距离度量的 LSH 类。
from pyspark.ml.feature import BucketedRandomProjectionLSHbrp BucketedRandomProjectionLSH(inputColfeatures, outputColhashes, bucketLength2.0)
model brp.fit(data)
transformedData model.transform(data)3. Bucketizer
Bucketizer 将连续特征映射到特征桶。
from pyspark.ml.feature import Bucketizersplits [-float(inf), 0.0, float(inf)]
bucketizer Bucketizer(splitssplits, inputColfeature, outputColbucketed_feature)
bucketedData bucketizer.transform(data)4. ChiSqSelector
ChiSqSelector 是卡方特征选择器选择预测分类标签的分类特征。
from pyspark.ml.feature import ChiSqSelectorselector ChiSqSelector(numTopFeatures50, featuresColfeatures, labelCollabel, outputColselected_features)
result selector.fit(data).transform(data)5. CountVectorizer
CountVectorizer 从文档集合中提取词汇并生成 CountVectorizerModel。
from pyspark.ml.feature import CountVectorizercv CountVectorizer(inputColtext, outputColfeatures, vocabSize10000, minDF5)
model cv.fit(data)
vectorizedData model.transform(data)6. DCT
DCT 是对实数向量进行一维离散余弦变换的特征转换器。
from pyspark.ml.feature import DCTdct DCT(inverseFalse, inputColfeatures, outputColdct_features)
dctData dct.transform(data)7. ElementwiseProduct
ElementwiseProduct 对每个输入向量与提供的“权重”向量进行 Hadamard 乘积即逐元素乘积。
from pyspark.ml.feature import ElementwiseProduct
from pyspark.ml.linalg import VectorsscalingVec Vectors.dense([0.0, 1.0, 2.0])
transformer ElementwiseProduct(scalingVecscalingVec, inputColfeatures, outputColscaled_features)
scaledData transformer.transform(data)8. FeatureHasher
FeatureHasher 将一组分类或数值特征投影到指定维度的特征向量中。
from pyspark.ml.feature import FeatureHasherhasher FeatureHasher(inputCols[cat1, cat2, num1], outputColfeatures)
hashedData hasher.transform(data)9. HashingTF
HashingTF 使用哈希技巧将词序列映射到它们的词频。
from pyspark.ml.feature import HashingTFhashingTF HashingTF(inputColtext, outputColfeatures, numFeatures10000)
tfData hashingTF.transform(data)10. IDF
IDF 计算文档集合的逆文档频率IDF。
from pyspark.ml.feature import IDFidf IDF(inputColraw_features, outputColfeatures, minDocFreq5)
model idf.fit(tfData)
tfidfData model.transform(tfData)11. Imputer
Imputer 使用列中的均值、中位数或众数来填补缺失值。
from pyspark.ml.feature import Imputerimputer Imputer(inputCols[feature1, feature2], outputCols[imputed_feature1, imputed_feature2])
model imputer.fit(data)
imputedData model.transform(data)12. IndexToString
IndexToString 将索引列映射回相应的字符串值列。
from pyspark.ml.feature import IndexToStringconverter IndexToString(inputColindex, outputColstring, labels[a, b, c])
convertedData converter.transform(data)13. Interaction
Interaction 实现特征交互转换。
from pyspark.ml.feature import Interactioninteraction Interaction(inputCols[col1, col2], outputColinteracted_col)
interactedData interaction.transform(data)14. MaxAbsScaler
MaxAbsScaler 通过除以每个特征的最大绝对值来单独缩放每个特征到范围 [-1, 1]。
from pyspark.ml.feature import MaxAbsScalerscaler MaxAbsScaler(inputColfeatures, outputColscaled_features)
model scaler.fit(data)
scaledData model.transform(data)15. MinHashLSH
MinHashLSH 是基于 Jaccard 距离的 LSH 类。
from pyspark.ml.feature import MinHashLSHmh MinHashLSH(inputColfeatures, outputColhashes, numHashTables3)
model mh.fit(data)
transformedData model.transform(data)16. MinMaxScaler
MinMaxScaler 使用列摘要统计数据将每个特征单独线性缩放到 [min, max] 范围内也称为最小-最大归一化或重缩放。
from pyspark.ml.feature import MinMaxScalerscaler MinMaxScaler(inputColfeatures, outputColscaled_features)
model scaler.fit(data)
scaledData model.transform(data)17. NGram
NGram 是一个特征转换器它将输入的字符串数组转换为 n-grams 数组。
from pyspark.ml.feature import NGramngram NGram(n2, inputColwords, outputColngrams)
ngramData ngram.transform(data)18. Normalizer
Normalizer 使用给定的 p-范数将向量规范化为单位范数。
from pyspark.ml.feature import Normalizernormalizer Normalizer(p1.0, inputColfeatures, outputColnorm_features)
normData normalizer.transform(data)19. OneHotEncoder
OneHotEncoder 将分类索引列映射到二进制向量列。
from pyspark.ml.feature import OneHotEncoderencoder OneHotEncoder(inputColindex, outputColonehot)
encodedData encoder.transform(data)20. PCA
PCA 训练一个模型将向量投影到前 k 个主成分的低维空间中。
from pyspark.ml.feature import PCApca PCA(k3, inputColfeatures, outputColpca_features)
model pca.fit(data)
pcaData model.transform(data)21. PolynomialExpansion
PolynomialExpansion 在多项式空间中进行特征扩展。
from pyspark.ml.feature import PolynomialExpansionpolyExpansion PolynomialExpansion(degree2, inputColfeatures, outputColpoly_features)
polyData polyExpansion.transform(data)22. QuantileDiscretizer
QuantileDiscretizer 将连续特征列离散化为分类特征列。
from pyspark.ml.feature import QuantileDiscretizerdiscretizer QuantileDiscretizer(numBuckets3, inputColfeature, outputColbucketed_feature)
bucketedData discretizer.fit(data).transform(data)23. RobustScaler
RobustScaler 移除中位数并根据四分位范围缩放数据。
from pyspark.ml.feature import RobustScalerscaler RobustScaler(inputColfeatures, outputColscaled_features)
model scaler.fit(data)
scaledData model.transform(data)24. RegexTokenizer
RegexTokenizer 是一个基于正则表达式的分词器可以使用提供的正则表达式模式默认为分隔模式提取标记或反复匹配正则表达式如果 gaps 为 false。
from pyspark.ml.feature import RegexTokenizertokenizer RegexTokenizer(inputColtext, outputColwords, pattern\\W)
tokenizedData tokenizer.transform(data)25. RFormula
RFormula 实现了对数据集进行拟合所需的转换使用 R 模型公式。
from pyspark.ml.feature import RFormulaformula RFormula(formulay ~ x1 x2, featuresColfeatures, labelCollabel)
formulaData formula.fit(data).transform(data)26. SQLTransformer
SQLTransformer 实现了由 SQL 语句定义的转换。
from pyspark.ml.feature import SQLTransformersqlTrans SQLTransformer(statementSELECT *, (col1 col2) AS new_col FROM __THIS__)
transformedData sqlTrans.transform(data)27. StandardScaler
StandardScaler 使用训练集中的样本列摘要统计数据通过去均值和按单位方差缩放来标准化特征。
from pyspark.ml.feature import StandardScalerscaler StandardScaler(inputColfeatures, outputColscaled_features, withMeanTrue, withStdTrue)
model scaler.fit(data)
scaledData model.transform(data)28. StopWordsRemover
StopWordsRemover 是一个特征转换器用于从输入中过滤停用词。
from pyspark.ml.feature import StopWordsRemoverremover StopWordsRemover(inputColraw, outputColfiltered)
filteredData remover.transform(data)29. StringIndexer
StringIndexer 是一个标签索引器将字符串标签列映射到标签索引列。
from pyspark.ml.feature import StringIndexerindexer StringIndexer(inputColcategory, outputColcategoryIndex)
indexedData indexer.fit(data).transform(data)30. Tokenizer
Tokenizer 是一个分词器将输入字符串转换为小写然后按空格拆分。
from pyspark.ml.feature import Tokenizertokenizer Tokenizer(inputColtext, outputColwords)
tokenizedData tokenizer.transform(data)31. UnivariateFeatureSelector
UnivariateFeatureSelector 基于单变量统计测试选择特征。
from pyspark.ml.feature import UnivariateFeatureSelectorselector UnivariateFeatureSelector(featuresColfeatures, labelCollabel, selectionModenumTopFeatures, selectionThreshold50)
selectedData selector.fit(data).transform(data)32. VarianceThresholdSelector
VarianceThresholdSelector 删除所有低方差特征的特征选择器。
from pyspark.ml.feature import VarianceThresholdSelectorselector VarianceThresholdSelector(featuresColfeatures, varianceThreshold0.1, outputColselected_features)
selectedData selector.fit(data).transform(data)33. VectorAssembler
VectorAssembler 是一个特征转换器将多个列合并为一个向量列。
from pyspark.ml.feature import VectorAssemblerassembler VectorAssembler(inputCols[col1, col2, col3], outputColfeatures)
assembledData assembler.transform(data)34. VectorIndexer
VectorIndexer 是用于对数据集中 Vector 的分类特征列进行索引的类。
from pyspark.ml.feature import VectorIndexerindexer VectorIndexer(inputColfeatures, outputColindexed_features, maxCategories10)
indexerModel indexer.fit(data)
indexedData indexerModel.transform(data)35. VectorSizeHint
VectorSizeHint 是一个特征转换器向向量列的元数据添加大小信息。
from pyspark.ml.feature import VectorSizeHintsizeHint VectorSizeHint(inputColfeatures, size3)
hintedData sizeHint.transform(data)36. VectorSlicer
VectorSlicer 是一个类接收一个特征向量并输出一个新的特征向量其中包含原始特征的子数组。
from pyspark.ml.feature import VectorSlicerslicer VectorSlicer(inputColfeatures, outputColsliced_features, indices[1, 2])
slicedData slicer.transform(data)37. Word2Vec
Word2Vec 训练一个 Map(String, Vector) 的模型即将字词映射到向量。
from pyspark.ml.feature import Word2Vecword2Vec Word2Vec(inputColtext, outputColresult, vectorSize3, minCount0)
model word2Vec.fit(data)
resultData model.transform(data)以下是 PySpark MLlib 中部分特征处理方法的详细介绍包括它们所基于的公式、适用的场景以及一些具体的应用案例。
1. Binarizer
公式 Binarizer ( x ) { 1 if x threshold 0 otherwise \text{Binarizer}(x) \begin{cases} 1 \text{if } x \text{threshold} \\ 0 \text{otherwise} \end{cases} Binarizer(x){10if xthresholdotherwise
适用场景 用于将连续特征转换为二值特征常用于分类问题中将数值特征转换为二进制特征。
案例
from pyspark.ml.feature import Binarizerdata spark.createDataFrame([(0.1,), (0.8,), (0.5,)], [feature])
binarizer Binarizer(threshold0.5, inputColfeature, outputColbinarized_feature)
binarizedData binarizer.transform(data)
binarizedData.show()2. Bucketizer
公式 将连续特征分成离散的桶例如使用指定的分割点将特征值分段 Bucketizer ( x ) { 0 if x ≤ splits [ 1 ] 1 if splits [ 1 ] x ≤ splits [ 2 ] ⋮ ⋮ N − 1 if x splits [ N − 1 ] \text{Bucketizer}(x) \begin{cases} 0 \text{if } x \leq \text{splits}[1] \\ 1 \text{if } \text{splits}[1] x \leq \text{splits}[2] \\ \vdots \vdots \\ N-1 \text{if } x \text{splits}[N-1] \end{cases} Bucketizer(x)⎩ ⎨ ⎧01⋮N−1if x≤splits[1]if splits[1]x≤splits[2]⋮if xsplits[N−1]
适用场景 用于将连续特征转换为离散的分桶特征常用于决策树等算法中。
案例
from pyspark.ml.feature import Bucketizerdata spark.createDataFrame([(0.1,), (0.8,), (0.5,)], [feature])
splits [-float(inf), 0.5, float(inf)]
bucketizer Bucketizer(splitssplits, inputColfeature, outputColbucketed_feature)
bucketedData bucketizer.transform(data)
bucketedData.show()3. ChiSqSelector
公式 根据卡方检验的统计量选择特征 χ 2 ∑ ( O i − E i ) 2 E i \chi^2 \sum \frac{(O_i - E_i)^2}{E_i} χ2∑Ei(Oi−Ei)2 其中 (O_i) 是观察频数(E_i) 是期望频数。
适用场景 用于特征选择特别是用于分类问题中的分类特征选择。
案例
from pyspark.ml.feature import ChiSqSelector
from pyspark.ml.linalg import Vectorsdata spark.createDataFrame([(Vectors.dense([0.0, 0.5, 0.5]), 1.0),(Vectors.dense([0.1, 0.8, 0.2]), 0.0),(Vectors.dense([0.2, 0.9, 0.1]), 0.0)
], [features, label])selector ChiSqSelector(numTopFeatures2, featuresColfeatures, labelCollabel, outputColselected_features)
result selector.fit(data).transform(data)
result.show()4. CountVectorizer
公式 计算词汇表并生成词频向量 CountVectorizer ( D ) [ TF ( t 1 , D ) , TF ( t 2 , D ) , … , TF ( t n , D ) ] \text{CountVectorizer}(D) [ \text{TF}(t_1, D), \text{TF}(t_2, D), \ldots, \text{TF}(t_n, D) ] CountVectorizer(D)[TF(t1,D),TF(t2,D),…,TF(tn,D)] 其中 (\text{TF}(t_i, D)) 是词 (t_i) 在文档 (D) 中的词频。
适用场景 用于文本数据的词频特征提取常用于自然语言处理和文本分类任务。
案例
from pyspark.ml.feature import CountVectorizerdata spark.createDataFrame([(0, a b c.split( )), (1, a b b c a.split( ))], [id, words])
cv CountVectorizer(inputColwords, outputColfeatures, vocabSize3, minDF1)
model cv.fit(data)
vectorizedData model.transform(data)
vectorizedData.show()5. DCT
公式 离散余弦变换 (DCT) X k ∑ n 0 N − 1 x n cos [ π N ( n 1 2 ) k ] X_k \sum_{n0}^{N-1} x_n \cos \left[ \frac{\pi}{N} \left( n \frac{1}{2} \right) k \right] Xkn0∑N−1xncos[Nπ(n21)k]
适用场景 用于信号处理中的特征转换如图像处理和压缩。
案例
from pyspark.ml.feature import DCT
from pyspark.ml.linalg import Vectorsdata spark.createDataFrame([(Vectors.dense([0.0, 1.0, -2.0, 3.0]),)], [features])
dct DCT(inverseFalse, inputColfeatures, outputColdct_features)
dctData dct.transform(data)
dctData.show()6. Imputer
公式 缺失值填充使用均值、中位数或众数填充 Imputer ( x ) { x if x ≠ NaN mean/median/mode ( X ) if x NaN \text{Imputer}(x) \begin{cases} x \text{if } x \neq \text{NaN} \\ \text{mean/median/mode}(X) \text{if } x \text{NaN} \end{cases} Imputer(x){xmean/median/mode(X)if xNaNif xNaN
适用场景 用于处理数据集中的缺失值。
案例
from pyspark.ml.feature import Imputerdata spark.createDataFrame([(1.0, float(nan)), (2.0, 3.0), (float(nan), 4.0)], [a, b])
imputer Imputer(inputCols[a, b], outputCols[imputed_a, imputed_b])
model imputer.fit(data)
imputedData model.transform(data)
imputedData.show()7. OneHotEncoder
公式 将分类特征转换为独热编码向量 OneHotEncoder ( x ) [ 0 , … , 1 , … , 0 ] \text{OneHotEncoder}(x) [0, \ldots, 1, \ldots, 0] OneHotEncoder(x)[0,…,1,…,0] 其中1出现在类别索引位置。
适用场景 用于将分类特征转换为机器学习算法可以直接使用的数值特征。
案例
from pyspark.ml.feature import OneHotEncoder, StringIndexerdata spark.createDataFrame([(a,), (b,), (a,)], [category])
indexer StringIndexer(inputColcategory, outputColcategoryIndex)
indexed indexer.fit(data).transform(data)
encoder OneHotEncoder(inputColcategoryIndex, outputColcategoryVec)
encoded encoder.fit(indexed).transform(indexed)
encoded.show()8. PCA
公式 主成分分析 (PCA) X T P T \mathbf{X} \mathbf{T} \mathbf{P}^T XTPT 其中 (\mathbf{T}) 是得分矩阵(\mathbf{P}) 是载荷矩阵。
适用场景 用于降维提取主要特征减少数据集的维度。
案例
from pyspark.ml.feature import PCA
from pyspark.ml.linalg import Vectorsdata spark.createDataFrame([(Vectors.dense([1.0, 0.0, 0.0]),), (Vectors.dense([0.0, 1.0, 0.0]),), (Vectors.dense([0.0, 0.0, 1.0]),)], [features])
pca PCA(k2, inputColfeatures, outputColpca_features)
model pca.fit(data)
pcaData model.transform(data)
pcaData.show()9. StandardScaler
公式 标准化特征去均值并按标准差缩放 StandardScaler ( x ) x − mean ( x ) std ( x ) \text{StandardScaler}(x) \frac{x - \text{mean}(x)}{\text{std}(x)} StandardScaler(x)std(x)x−mean(x)
适用场景 用于特征标准化使不同特征具有相同的尺度适用于大多数机器学习算法。
案例
from pyspark.ml.feature import StandardScaler
from pyspark.ml.linalg import Vectorsdata spark.createDataFrame([(Vectors.dense([1.0, 0.1, -1.0]),), (Vectors.dense([2.0, 1.1, 1.0]),), (Vectors.dense([4.0, 10.1, 2.0]),)], [features])
scaler StandardScaler(inputColfeatures, outputColscaled_features, withMeanTrue, withStdTrue)
model scaler.fit(data)
scaledData model.transform(data)
scaledData.show()## 总结PySpark MLlib 中的特征处理工具丰富且功能强大可以帮助我们在数据预处理阶段完成各种特征工程任务。这些工具覆盖了特征的二值化、离散化、标准化、归一化、编码、转换、选择和生成等多个方面是数据科学家和工程师进行机器学习模型训练的重要帮手。通过合理使用这些工具可以极大提升模型的性能和效果。
文章转载自: http://www.morning.gswfs.cn.gov.cn.gswfs.cn http://www.morning.lmjkn.cn.gov.cn.lmjkn.cn http://www.morning.frtt.cn.gov.cn.frtt.cn http://www.morning.nkwgy.cn.gov.cn.nkwgy.cn http://www.morning.hqqpy.cn.gov.cn.hqqpy.cn http://www.morning.xbmwm.cn.gov.cn.xbmwm.cn http://www.morning.wnbqy.cn.gov.cn.wnbqy.cn http://www.morning.ljbch.cn.gov.cn.ljbch.cn http://www.morning.nfpkx.cn.gov.cn.nfpkx.cn http://www.morning.qtkdn.cn.gov.cn.qtkdn.cn http://www.morning.dktyc.cn.gov.cn.dktyc.cn http://www.morning.lhzqn.cn.gov.cn.lhzqn.cn http://www.morning.kyfnh.cn.gov.cn.kyfnh.cn http://www.morning.lftpl.cn.gov.cn.lftpl.cn http://www.morning.qzfjl.cn.gov.cn.qzfjl.cn http://www.morning.rcjqgy.com.gov.cn.rcjqgy.com http://www.morning.rhlhk.cn.gov.cn.rhlhk.cn http://www.morning.xnhnl.cn.gov.cn.xnhnl.cn http://www.morning.xqgtd.cn.gov.cn.xqgtd.cn http://www.morning.fbmrz.cn.gov.cn.fbmrz.cn http://www.morning.kjmws.cn.gov.cn.kjmws.cn http://www.morning.rdxp.cn.gov.cn.rdxp.cn http://www.morning.jtmql.cn.gov.cn.jtmql.cn http://www.morning.bpmtz.cn.gov.cn.bpmtz.cn http://www.morning.bnylg.cn.gov.cn.bnylg.cn http://www.morning.xsfny.cn.gov.cn.xsfny.cn http://www.morning.kpyyf.cn.gov.cn.kpyyf.cn http://www.morning.hytr.cn.gov.cn.hytr.cn http://www.morning.dmlsk.cn.gov.cn.dmlsk.cn http://www.morning.fbmrz.cn.gov.cn.fbmrz.cn http://www.morning.brwnd.cn.gov.cn.brwnd.cn http://www.morning.cpqwb.cn.gov.cn.cpqwb.cn http://www.morning.mtbsd.cn.gov.cn.mtbsd.cn http://www.morning.frxsl.cn.gov.cn.frxsl.cn http://www.morning.xbyyd.cn.gov.cn.xbyyd.cn http://www.morning.wjlnz.cn.gov.cn.wjlnz.cn http://www.morning.nflpk.cn.gov.cn.nflpk.cn http://www.morning.cfrz.cn.gov.cn.cfrz.cn http://www.morning.ybyln.cn.gov.cn.ybyln.cn http://www.morning.qczpf.cn.gov.cn.qczpf.cn http://www.morning.fqtdz.cn.gov.cn.fqtdz.cn http://www.morning.nngq.cn.gov.cn.nngq.cn http://www.morning.fbmjl.cn.gov.cn.fbmjl.cn http://www.morning.klzdy.cn.gov.cn.klzdy.cn http://www.morning.jpkk.cn.gov.cn.jpkk.cn http://www.morning.nysjb.cn.gov.cn.nysjb.cn http://www.morning.xprq.cn.gov.cn.xprq.cn http://www.morning.qtxwb.cn.gov.cn.qtxwb.cn http://www.morning.rkzk.cn.gov.cn.rkzk.cn http://www.morning.mhcft.cn.gov.cn.mhcft.cn http://www.morning.fllx.cn.gov.cn.fllx.cn http://www.morning.jwpcj.cn.gov.cn.jwpcj.cn http://www.morning.bangaw.cn.gov.cn.bangaw.cn http://www.morning.wwjft.cn.gov.cn.wwjft.cn http://www.morning.lwtld.cn.gov.cn.lwtld.cn http://www.morning.nwgkk.cn.gov.cn.nwgkk.cn http://www.morning.lwrks.cn.gov.cn.lwrks.cn http://www.morning.cjcry.cn.gov.cn.cjcry.cn http://www.morning.glpxx.cn.gov.cn.glpxx.cn http://www.morning.ltxgk.cn.gov.cn.ltxgk.cn http://www.morning.rklgm.cn.gov.cn.rklgm.cn http://www.morning.ntzfl.cn.gov.cn.ntzfl.cn http://www.morning.qzpqp.cn.gov.cn.qzpqp.cn http://www.morning.wxfjx.cn.gov.cn.wxfjx.cn http://www.morning.lmknf.cn.gov.cn.lmknf.cn http://www.morning.zympx.cn.gov.cn.zympx.cn http://www.morning.tqrbl.cn.gov.cn.tqrbl.cn http://www.morning.txltb.cn.gov.cn.txltb.cn http://www.morning.pznhn.cn.gov.cn.pznhn.cn http://www.morning.fdrwk.cn.gov.cn.fdrwk.cn http://www.morning.qytyt.cn.gov.cn.qytyt.cn http://www.morning.qgtfl.cn.gov.cn.qgtfl.cn http://www.morning.xiaobaixinyong.cn.gov.cn.xiaobaixinyong.cn http://www.morning.wspjn.cn.gov.cn.wspjn.cn http://www.morning.npxht.cn.gov.cn.npxht.cn http://www.morning.kzpxc.cn.gov.cn.kzpxc.cn http://www.morning.ngcsh.cn.gov.cn.ngcsh.cn http://www.morning.fsjcn.cn.gov.cn.fsjcn.cn http://www.morning.ymtbr.cn.gov.cn.ymtbr.cn http://www.morning.dqxnd.cn.gov.cn.dqxnd.cn