OutlierDetectionJL / OutlierDetection.jl

Fast, scalable and flexible Outlier Detection with Julia
https://outlierdetectionjl.github.io/OutlierDetection.jl/dev/
MIT License
80 stars 8 forks source link

[DOC] Add MLJ-compliant document strings #30

Open ablaom opened 2 years ago

ablaom commented 2 years ago

We are currently implementing detailed docstrings for all MLJ models, following a standard we have developed. See this issue: https://github.com/alan-turing-institute/MLJ.jl/issues/913

@davnn If it is helpful to you, @josephsdavid, who is helping us this summer as GSoD technical writer can prepare PRs for you to review. David is a working data scientist with outlier detection experience and some Julia knowledge. You will need to let me know soon if you would like this.

davnn commented 2 years ago

That would be great, thanks!

ablaom commented 2 years ago

@josephsdavid There are quite a few. You might want to want to study these a bit before committing to an efficient strategy for generating the strings. I'm guessing most of them are pretty similar, apart from hyperparameters.

julia> using MLJModels; models("Detector")
26-element Vector{NamedTuple{(:name, :package_name, :is_supervised, :abstract_type, :deep_properties, :docstring, :fit_data_scitype, :human_name, :hyperparameter_ranges, :hyperparameter_types, :hyperparameters, :implemented_methods, :inverse_transform_scitype, :is_pure_julia, :is_wrapper, :iteration_parameter, :load_path, :package_license, :package_url, :package_uuid, :predict_scitype, :prediction_type, :reporting_operations, :reports_feature_importances, :supports_class_weights, :supports_online, :supports_training_losses, :supports_weights, :transform_scitype, :input_scitype, :target_scitype, :output_scitype)}}:
 (name = ABODDetector, package_name = OutlierDetectionNeighbors, ... )
 (name = ABODDetector, package_name = OutlierDetectionPython, ... )
 (name = AEDetector, package_name = OutlierDetectionNetworks, ... )
 (name = CBLOFDetector, package_name = OutlierDetectionPython, ... )
 (name = COFDetector, package_name = OutlierDetectionNeighbors, ... )
 (name = COFDetector, package_name = OutlierDetectionPython, ... )
 (name = COPODDetector, package_name = OutlierDetectionPython, ... )
 (name = DNNDetector, package_name = OutlierDetectionNeighbors, ... )
 (name = DSADDetector, package_name = OutlierDetectionNetworks, ... )
 (name = ESADDetector, package_name = OutlierDetectionNetworks, ... )
 (name = HBOSDetector, package_name = OutlierDetectionPython, ... )
 (name = IForestDetector, package_name = OutlierDetectionPython, ... )
 (name = KNNDetector, package_name = OutlierDetectionNeighbors, ... )
 (name = KNNDetector, package_name = OutlierDetectionPython, ... )
 (name = LMDDDetector, package_name = OutlierDetectionPython, ... )
 (name = LOCIDetector, package_name = OutlierDetectionPython, ... )
 (name = LODADetector, package_name = OutlierDetectionPython, ... )
 (name = LOFDetector, package_name = OutlierDetectionNeighbors, ... )
 (name = LOFDetector, package_name = OutlierDetectionPython, ... )
 (name = MCDDetector, package_name = OutlierDetectionPython, ... )
 (name = OCSVMDetector, package_name = OutlierDetectionPython, ... )
 (name = OneClassSVM, package_name = LIBSVM, ... )
 (name = PCADetector, package_name = OutlierDetectionPython, ... )
 (name = RODDetector, package_name = OutlierDetectionPython, ... )
 (name = SODDetector, package_name = OutlierDetectionPython, ... )
 (name = SOSDetector, package_name = OutlierDetectionPython, ... )

I think some are unsupervised, but some are semi-supervised, so keep that in mind.