如何在分组数据集上建立分类模型

时间:2019-06-28 08:13:16

标签: python machine-learning apache-spark-mllib

我有一个数据集,该数据集具有Strip Id的,position和更多属性。我需要建立我的模型以找出gauage_condition(0-不弯曲),1(弯曲/损坏)。

| finish_mill_id | fm_exit-length | fm_exit_temp | position | grade | guage_condition |
|----------------|----------------|--------------|----------|-------|-----------------|
| EY123          | 1220.35        | 2300         | 1        | NY    | 0               |
| EY123          | 1220.35        | 2350         | 2        | NY    | 0               |
| EY123          | 1220.35        | 2357         | 3        | NY    | 0               |
| EY123          | 1220.35        | 2365         | 500      | NY    | 0               |
| EY223          | 1386           | 2312         | 1        | EY    | 1               |
| EY223          | 1387           | 2311         | 3        | EY    | 1               |
| EY223          | 1388.28        | 2364         | 100      | EY    | 1               |
| EY223          | 1390           | 2377         | 500      | EY    | 1               |

位置范围从0到500,我具有所有属性(输入长度​​,温度等),这些属性在每个位置都不同 我使用相同的功能构建了模型

 stringIndexer = StringIndexer(inputCol="grade", outputCol="gradeIndex")
 model = stringIndexer.fit(df)
 indexed = model.transform(df)
 encoder =OneHotEncoder(inputCol="gradeIndex", outputCol="grade_vector")
 encoded_df = encoder.transform(indexed)
 cols=encoded_df.columns
 cols.remove("gauge_condition")
 cols.remove("grade")
 cols.remove("finish_mill_id")
 cols.remove("cold_mill_id") 
 encoded_df.drop("finish_mill_id")
 encoded_df.drop("cold_mill_id")
 encoded_df=assembler.transform(encoded_df)
 encoded_df.select("features").show(truncate=False)
 standardscaler=StandardScaler().setInputCol("features").setOutputCol("Scaled_features")
 encoded_df=standardscaler.fit(encoded_df).transform(encoded_df)

我的模特在这里

gbt = GBTClassifier(labelCol="gauge_condition", 
featuresCol='Scaled_features',maxIter=100)
model=gbt.fit(train)
gbt_predict_train=model.transform(train)
gbt_predict_test=model.transform(test)

但是我想要的是我需要在带状水平上进行预测,但是在这里我可以在每个位置进行预测。我也无法将位置用作一种热门编码,并且我尝试将所有属性旋转并表示为位置的函数,最终出现在2000列中,这毫无意义

如果我尝试通过预测后的快速而肮脏的方式进行分组,该如何进行评估。如果有更好的方法,请提出建议

0 个答案:

没有答案