用于置信度估计和新颖性检测的密度森林库
density_forest的Python项目详细描述
密度森林
该图书馆是在2018年春季学期的EPFL硕士项目中开发的。
github存储库:https://github.com/CyrilWendl/SIE-Master
使用DensityForest
类:
拟合密度森林
假设你有你的训练数据和测试数据,在[N, D]
维度中有N
数据点:
fromdensity_forest.density_forestimportDensityForestclf_df=DensityForest(**params)# create new class instance, put hyperparameters hereclf_df.fit(X_train)# fit to a training setconf=clf_df.decision_function(X_test)# get confidence values for test setoutliers=clf_df.predict(X_test)# predict whether a point is an outlier (-1 for outliers 1, for inliers)
超参数记录在docstring中。要找到最佳超参数,请考虑下面的部分。
查找超参数
要找到最佳超参数,请使用helpers.cross_validator
中的ParameterSearch
,它允许cv和超参数搜索。
fromhelpers.cross_validatorimportParameterSearch# define hyperparameters to testtuned_params=[{'max_depth':[2,3,4],'n_trees':[10,20]}]# optionally add non-default arguments as single-element arraysdefault_params=[{'verbose':0,...}]# other default parameters # do parameter searchps=ParameterSearch(DensityForest,tuned_parameters,X_train,X_train_all,y_true_tr,f_scorer,n_iter=2,verbosity=0,n_jobs=1,default_params=default_params)ps.fit()# get model with the best parameters, as aboveclf_df=DensityForest(**ps.best_params,**default_params)# create new class instance with best hyperparameters...# continue as above
检查docstrings以获取ParameterSearch
类的更详细文档。
文件结构
代码
所有用于密度林的库、用于语义分段和基线的辅助库。
density_forest/
决策树、随机林、密度树和密度林实施包
create_data.py
:生成带标签和未带标签数据的函数decision_tree.py
:决策树节点的数据结构decision_tree_create.py
:生成决策树的函数decision_tree_traverse.py
:遍历决策树和预测标签的函数density_forest.py
:创建密度林的函数density_tree.py
:密度树节点的数据结构density_tree_create.py
:生成密度树的函数density_tree_traverse.py
:用于降低密度树并检索其群集参数的函数helper.py
:各种帮助函数random_forests.py
:创建随机林的函数
helpers/
:
用于语义分段的通用帮助程序库
data_augment.py
:应用于图像和地面真相的自定义数据增强方法data_loader.py
:苏黎世数据集的pytorch数据加载器helpers.py
:用于导入、裁剪、填充图像和其他相关图像传输的函数parameter_search.py
:寻找密度森林、oc-svm和gmm最优超参数的函数(如上所述)plots.py
:用于标记和未标记二维和三维绘图的通用绘图机函数,用于T-SNE和PCA绘图
baselines/
:
置信估计基线的辅助函数msr、margin、熵和mc dropout
keras_helpers/
keras的助手函数
helpers.py
:获取激活callbacks.py
:每个历元后要计算的回调unet.py
:苏黎世数据集网络培训的unet模型
可视化
density_forest/
:
基本决策树和密度树的可视化
Decision Forest.ipynb
:随机生成的标记数据上的决策树和随机林Density Forest.ipynb
:随机生成的未标记数据上的密度树
主管:
- 瓦赫宁根大学迪夫图亚教授
- 瓦赫宁根大学迭戈·马科斯·冈萨雷斯
- Fran_ois Golay教授,EPFL
西里尔·温德尔,2018年