python - 使用带有默认条件的 sklearn2pmml 将决策树转换为 PMML
问题描述
我正在使用sklearn2pmml
python 将使用库训练的决策树转换scikit-learn
为 PMML 文件。我有一个数据框,它有 4 列,如下所示
X1 | X2 | A1 | Y
0.2. 0.3 alpha. 0
0.3. 0.1. alpha 0
0.9 0.2. beta 1
等等。这Y
是二进制标签。X1
,X2
是数字输入。A1
是一个字符串列。我已经训练了一个决策树,Y,X1,X2
并且可以将其编写为 PMML 文件。
但是我需要在 PMML 中引入一个默认条件,如果变量 A1 = 'beta' 然后返回 X1 本身作为分数,否则使用 scikit 学习决策树来获得分数
sklearn2PMML
是否可以使用或通过在 PMML 文件中手动创建节点来做到这一点?
这是生成决策树和 pmml 的工作代码
import pandas as pd
import numpy as np
from sklearn.tree import DecisionTreeClassifier
from sklearn2pmml import PMMLPipeline
from sklearn2pmml import sklearn2pmml
df = pd.DataFrame(np.random.randint(0,100,size=(15, 2)), columns=['X1','X2']
df['Y'] = np.random.randint(0,2,size=15)
df['A1'] = 'alpha'
df['A1'][0:50]='beta'
pipeline = PMMLPipeline([("classifier",DecisionTreeClassifier(max_depth=2,random_state=42))
])
pipeline.fit(df[['X1','X2']],df['Y']
sklearn2pmml(pipeline, "SimpleDecisionTree.pmml", with_repr = True)
解决方案
推荐阅读
- c - 在 C 中不使用 strtok 拆分字符数组
- go - SSH 脚本使用 pty 和 io.Copy 通过菜单流式输出
- python - 如何修复列表中的循环迭代
- javascript - 在没有 setInterval 的情况下每“x”秒运行一次代码
- javascript - 数组连接评估为字符串“test”
- mysql - MySQL Join with Date Sum Grouped by StudentNumber 想要返回值,即使行连接结果为 0
- python - 在 Splunk 上过滤访问日志
- image - Vuejs图像加载找不到图像
- html5-history - URL 更改,但组件未使用 react 渲染 - 打字稿
- python - BeautifulSoup webscrape .asp 只搜索列表中的最后一个