当前位置:   article > 正文

java调用python数据分析模型_pmml:java调用Python训练的模型之xgboost

java调用python数据分析

使用sklearn2pmml 保存Python的模型

第一步:Python端安装sklearn2pmml,这里安装的是PMML最新版本,4.4 ,这里的4.4和java的1.5.x.jar对应

pip install sklearn2pmml

第二步:Python端修改代码

pipeline = PMMLPipeline([('classifier', clf)])

pipeline.fit(X_train, Y_train)

sklearn2pmml(pipeline, 'output/XGboost1.pmml', with_repr=True, debug=True)from xgboost.sklearn import XGBClassifier

from sklearn.metrics import accuracy_score

from sklearn.metrics import recall_score

from sklearn.metrics import precision_score

from sklearn.metrics import f1_score

from sklearn.metrics import confusion_matrix

from sklearn2pmml import PMMLPipeline, sklearn2pmml

def trian_xgboost(df, fwmodel):

'''

训练模型,并测试结果

:param arr: 数据

:param samplemore: 是否往多了采样

:param fwmodel: 模型的保存路径

:return:

'''

y = df['lable'].values

df.drop(['lable'], axis=1, inplace=True)

X = df.values

print(df.columns)

print('=============xgboost=============')

X_train, X_test, Y_train, Y_test = train_test_split(X, y, test_size=0.25, random_state=0)

clf = XGBClassifier(

silent=0, # 设置成1则没有运行信息输出,最好是设置为0.是否在运行升级时打印消息。

# nthread=4,# cpu 线程数 默认最大

learning_rate=0.07, # 如同学习率

min_child_weight=3,

# 这个参数默认是 1,是每个叶子里面 h 的和至少是多少,对正负样本不均衡时的 0-1 分类而言

# ,假设 h 在 0.01 附近,min_child_weight 为 1 意味着叶子节点中最少需要包含 100 个样本。

# 这个参数非常影响结果,控制叶子节点中二阶导的和的最小值,该参数值越小,越容易 overfitting。

max_depth=12, # 构建树的深度,越大越容易过拟合

gamma=0, # 树的叶子节点上作进一步分区所需的最小损失减少,越大越保守,一般0.1、0.2这样子。

subsample&

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/930022
推荐阅读
相关标签
  

闽ICP备14008679号