机器学习工具箱
mltb的Python项目详细描述
机器学习工具箱
这是机器学习工具箱。用于重用和扩展的用户性机器学习工具的集合。 工具箱包含以下模块:
- hyperopt-用于保存和重新启动评估的hyperopt工具
- keras-用于各种度量和各种其他keras工具的keras回调
- lightgbm-lightgbm的公制工具函数
- 度量-多个度量实现
- 绘图-绘图和可视化工具
- 工具-各种(I.A.统计)工具
模块:hyperopt
此模块包含一个工具函数,用于保存和重新启动hyperopt计算。
这是通过保存和加载hyperopt.Trials
对象来完成的。
用法如下:
from mltb.hyperopt import fmin
from hyperopt import tpe, hp, STATUS_OK
def objective(x):
return {
'loss': x ** 2,
'status': STATUS_OK,
'other_stuff': {'type': None, 'value': [0, 1, 2]},
}
best, trials = fmin(objective,
space=hp.uniform('x', -10, 10),
algo=tpe.suggest,
max_evals=100,
filename='trials_file')
print('best:', best)
print('number of trials:', len(trials.trials))
首次运行的输出:
No trials file "trials_file" found. Created new trials object.
100%|██████████| 100/100 [00:00<00:00, 338.61it/s, best loss: 0.0007185087453453681]
best: {'x': 0.026805013436769026}
number of trials: 100
第二次运行的输出:
100 evals loaded from trials file "trials_file".
100%|██████████| 100/100 [00:00<00:00, 219.65it/s, best loss: 0.00012259809712488858]
best: {'x': 0.011072402500130158}
number of trials: 200
模块:路缘石
本模块提供ROC-AUC-和F1指标(不包括在Keras中)
以回调的形式。
因为回调将这些值添加到内部logs
字典中,所以
可以使用EarlyStopping
回调
要在这些指标上做得更早。用法如下:
bcm_callback = mltb.keras.BinaryClassifierMetricsCallback(val_data, val_labels)
es_callback = callbacks.EarlyStopping(monitor='roc_auc', patience=5, mode='max')
history = network.fit(train_data, train_labels,
epochs=1000,
batch_size=128,
#do not give validation_data here or validation will be done twice
#validation_data=(val_data, val_labels),
#always provide BinaryClassifierMetricsCallback before the EarlyStopping callback
callbacks=[bcm_callback, es_callback],
)
模块:lightgbm
此模块实现LightGBM中未包含的度量函数。 目前,这是二元和多类问题的F1和精度分数。 用法如下:
bst = lgb.train(param,
train_data,
valid_sets=[validation_data]
early_stopping_rounds=10,
evals_result=evals_result,
feval=mltb.lightgbm.multi_class_f1_score_factory(num_classes, 'macro'),
)