如何从StringIndexer生成的labelIndexer获取标签实现IndexToString转换?
解决IndexToString关联StringIndexer标签的问题
嘿,这事儿超简单!你已经搭好基础的实例架子了,就差把labelIndexer生成的标签-索引映射关系传给IndexToString就行。具体操作分几步来:
第一步:先拟合StringIndexer得到标签映射模型
labelIndexer只是一个未执行的转换器定义,只有拟合你的数据集后,它才会生成实际的「原始标签-索引」对应关系。代码示例:
# 假设your_dataframe是包含shutdown_reason列的原始数据集 labelIndexerModel = labelIndexer.fit(your_dataframe)
第二步:把标签映射传给IndexToString
你已经初始化了idx_to_string,现在只需要给它绑定labelIndexerModel里保存的原始标签列表就行,有两种方式:
# 方式1:给已初始化的实例补充设置labels idx_to_string.setLabels(labelIndexerModel.labels) # 方式2:初始化时直接指定labels(更简洁) idx_to_string = IndexToString( inputCol="prediction", outputCol="predictedValue", labels=labelIndexerModel.labels )
最后一步:转换预测结果
配置好idx_to_string后,直接用它处理包含prediction列(索引值)的预测数据集即可:
# 假设predicted_df是模型输出的预测结果,包含prediction列 result_df = idx_to_string.transform(predicted_df)
现在result_df里的predictedValue列就是你想要的原始字符串标签啦!
内容的提问来源于stack exchange,提问作者Ajish Kb
相关产品推荐
相关产品推荐

