当使用coremltools convert函数转换多类softmax Xgboost模型时,它会导致mlmodel在没有特定范围内给出预测,并且输出值与Xgboost模型的输出不可比较
这是为了创建CoreML模型,该模型可以在iOS应用程序中实现,用于实际传感器数据分类。我在convert函数中尝试了各种可能性
以下是Xgboost型号的设置:
dtrain = xgb.DMatrix(fft_train, label=l_train)
deval = xgb.DMatrix(fft_val, label=l_val)
dtest = xgb.DMatrix(fft_test)
evallist = [(dtrain, 'train'), (deval, 'eval')]
param = {'eta': eta, 'objective': 'multi:softprob', 'num_class': 11, 'eval_metric': 'mlogloss', 'subsample': subsample, 'max_depth': max_depth, 'gamma': gamma}
evals_result = {}
bst = xgb.train(param, dtrain, num_round, evallist, early_stopping_rounds=3, evals_result=evals_result, verbose_eval=10)
以下是转换:
coreml_model = coremltools.converters.xgboost.convert(bst, feature_names = feature_names, target = target, mode = 'classifier', n_classes = 11)
coreml_model.save('Name_of_model.mlmodel')
转换后的CoreML模型的预期结果在0到1的范围内,但实际输出似乎是随机浮动的,负的和正的。实际产出和预期产出之间也没有相关性
目前没有回答
相关问题 更多 >
编程相关推荐