【发布时间】:2019-11-26 15:37:50
【问题描述】:
我正在开展一个项目,我试图在使用简单的 PySpark ML Pipeline 时预测评论是正面还是负面。一切似乎都有效,但是,我认为出了点问题,我只是忽略了它。我的准确度得分为 0.9997,而其他人在此数据集上获得的结果为 0.90(来自Kaggle)。
输入数据由带有“评论”列的 DF 组成,该列包含带有评论的字符串和“标签”列,包含标签。
我正在按如下方式设置我的管道:
# Configure pipeline stages
tok = Tokenizer(inputCol="review", outputCol="words")
htf = HashingTF(inputCol="words", outputCol="tf", numFeatures=200)
idf = IDF(inputCol="tf", outputCol="idf")
va = VectorAssembler(inputCols=["tf","idf", "label"], outputCol="features")
lr = LogisticRegression(maxIter=10, regParam=0.01).setLabelCol("label").setFeaturesCol("features")
# Build the pipeline
stages=[tok, htf, idf, va,lr]
pipeline = Pipeline(stages=stages)
# Fit the pipeline
pipeline_model = pipeline.fit(train)
# Make predictions
df_results = pipeline_model.transform(train)
df_results = df_results.select('review','label','prediction')
test_results = pipeline_model.transform(test)
test_results = test_results.select('review','label','prediction')
为什么会发生这种情况?我在告诉lr标签列和特征列是什么...
【问题讨论】:
标签: python pyspark logistic-regression