A-a*_*-ar 2 python machine-learning logistic-regression apache-spark pyspark
我正在尝试使用简单的数据集运行 Logistic 回归以了解 pyspark 的语法。我有看起来有 11 列的数据,其中前 10 列是特征,最后一列(第 11 列)是标签。我想将这 10 列作为特征传递,将第 11 列作为标签传递。但我只知道作为单列传递使用featuresCol="col_header_name"
我已经使用pandas从csv文件中读取数据但我已将其转换为RDD。这是代码:
from pyspark.ml.classification import LogisticRegression
from pyspark.sql import SQLContext
from pyspark import SparkContext
import pandas as pd
data = pd.read_csv('abc.csv')
sc = SparkContext("local", "App Name")
sql = SQLContext(sc)
spDF = sql.createDataFrame(data)
tri=LogisticRegression(maxIter=10,regParam=0.01,featuresCol="single_column",labelCol="label")
lr_model = tri.fit(spDF)
Run Code Online (Sandbox Code Playgroud)
如果我使用featuresCol=[list_of_header_names]我会出错。我使用了 sk-learn,它的语法非常简单,例如:
reg=LogisticRegression()
reg=reg.fit(Dataframe_of_features,Label_array)
Run Code Online (Sandbox Code Playgroud)
您需要使用 Vector Assembler 将所有列组合成一个特征数组。
from pyspark.ml.linalg import Vectors
from pyspark.ml.feature import VectorAssembler
assembler = VectorAssembler(inputCols=[list_of_header_names],outputCol="features")
spDF = assembler.transform(spDF)
Run Code Online (Sandbox Code Playgroud)
然后,您可以将所有变量的组合数组作为输入传递给逻辑回归。
tri=LogisticRegression(maxIter=10,
regParam=0.01,
featuresCol="features",
labelCol="label")
lr_model = tri.fit(spDF)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2489 次 |
| 最近记录: |