Jas*_*ald 4 python linear-regression categorical-data pyspark apache-spark-mllib
我当时正在做Linear Regression建模PySpark,但对重新评估它有疑问。我所拥有的数据有categorical features。我浏览了文档PySpark,示例Linear Regression显示了这一点:
model = LinearRegressionWithSGD.train(parsedData)
Run Code Online (Sandbox Code Playgroud)
它没有显示如何传递categorical featuresto Linear Regression。我之前曾Random Forest在其中首先将这些功能传递给模型,因为提供了一个来指定. 这PySparkencoded categorical featuresRandom Forestparametercategorical featuresLinear Regression文档中没有显示任何此类参数
categorical feature任何人都可以帮助我,为我提供进入Linear Regression建模的方法PySpark MLlib
您需要使用“VectorAssembler”来构建“功能”列。“features”是功能列的默认名称,因此在单变量情况下您可以这样做LinearRegression(featurescol="catvar")。这是整个过程的演练,假设您strVar从 dataFrame开始df。
步骤 1:构建映射到字符串变量的索引。
from pyspark.ml.feature import StringIndexer, OneHotEncoder
from pyspark.ml.feature import VectorAssembler
varIdxer = StringIndexer(inputCol='strVar',outputCol='varIdx').fit(df)
df = varIdxer.transform(df)
Run Code Online (Sandbox Code Playgroud)
步骤 2:使用 a 将分类变量编码为二进制变量序列OneHotEncoder
df = OneHotEncoder(inputCol="varIdx", outputCol="varCat").transform(df)
Run Code Online (Sandbox Code Playgroud)
第 3 步:使用VectorAssembler.
assembler = VectorAssembler(inputCols=["varCat"],outputCol="features")
df = assembler.transform(df)
Run Code Online (Sandbox Code Playgroud)
步骤 4:拟合模型(我只用 LinearRegression 进行过测试)。
lr = LinearRegression(labelCol='y',featuresCol='features')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3766 次 |
| 最近记录: |