User:AlgoAccountabilityBot/Enwiki Damaging Model Card

Enwiki Damaging Model Card edit

Qualitative Analysis edit

What is the motivation behind creating this model? edit

To prioritize review of potentially damaging edits or vandalism. The model provides a guess at whether or not a given revision is damaging, and provides some probabilities to serve as a measure of its confidence level.

Who created this model? edit

Aaron Halfaker (aaron.halfaker@gmail.com) and Amir Sarabadani (amir.sarabadani@wikimedia.de).

Who currently owns/is responsible for this model? edit

WMF Machine Learning Team (ml@wikimediafoundation.org)

Who are the intended users of this model? edit

English Wikipedia uses the model as a service for facilitating efficient edit reviews. On an individual basis, anyone can submit a properly-formatted API call to ORES for a given revision and get back the result of this model.

What should this model be used for? edit

This model should be used for prioritizing the review and potential reversion of damaging edits and vandalism on English Wikipedia.

What should this model not be used for? edit

This model should not be used as an ultimate arbiter of whether or not an edit ought to be considered damaging. It should not be used for any other English- language wiki besides English Wikipedia, and shouldn't be used for other languages.

What community approval processes has this model gone through? edit

English Wikipedia decided (note: don't know where/when this decision was made, would love to find a link to that discussion) to use this model. Over time, the model has been validated through use in the community. The links below are just an example to show what this product might look like.

Dates of consideration forums edit

What internal or external changes could make this model deprecated or no longer usable? edit

  • Data drift means training data for the model is no longer usable.
  • Doesn't meet desired performance metrics in production.
  • English Wikipedia community decides to not use this model anymore.

How should this model be licensed? edit

Creative Commons Attribution ShareAlike 3.0

If this model is retrained, can we see how it has changed over time? edit

To my knowledge, this model has not been retrained over time — it still uses the original dataset from 2014-2015.

How does this model mitigate data drift? edit

This model does not mitigate data drift.

Which service(s) rely on this model? edit

This model is one of many models that powers ORES, the Wikimedia Foundation's machine machine learning API.

Learn more about ORES here

Which dataset(s) does this model rely on? edit

This model was trained using hand-labeled training data from 2014-2015. More details are available in the makefile of the editquality github repository.

Train dataset is available for download here

Test dataset is available for download here

Quantitative Analysis edit

How did the model perform on training data? edit

counts (n=19230):
		label        n         ~True    ~False
		-------  -----  ---  -------  --------
		True       745  -->      420       325
		False    18485  -->      657     17828
	rates:
		              True    False
		----------  ------  -------
		sample       0.039    0.961
		population   0.034    0.966
	match_rate (micro=0.916, macro=0.5):
		  True    False
		------  -------
		 0.054    0.946
	filter_rate (micro=0.084, macro=0.5):
		  True    False
		------  -------
		 0.946    0.054
	recall (micro=0.951, macro=0.764):
		  True    False
		------  -------
		 0.564    0.964
	!recall (micro=0.577, macro=0.764):
		  True    False
		------  -------
		 0.964    0.564
	precision (micro=0.963, macro=0.672):
		  True    False
		------  -------
		 0.359    0.984
	!precision (micro=0.381, macro=0.672):
		  True    False
		------  -------
		 0.984    0.359
	f1 (micro=0.956, macro=0.707):
		  True    False
		------  -------
		 0.439    0.974
	!f1 (micro=0.457, macro=0.707):
		  True    False
		------  -------
		 0.974    0.439
	accuracy (micro=0.951, macro=0.951):
		  True    False
		------  -------
		 0.951    0.951
	fpr (micro=0.423, macro=0.236):
		  True    False
		------  -------
		 0.036    0.436
	roc_auc (micro=0.922, macro=0.922):
		  True    False
		------  -------
		 0.922    0.922
	pr_auc (micro=0.978, macro=0.723):
		  True    False
		------  -------
		 0.449    0.997

How does the model perform on test/real world data across different geographies, different devices, etc.? edit

AUC Score Overall accuracy Negative sample precision Negative sample recall Negative sample f1-score Negative sample support Positive sample precision Positive sample recall Positive sample f1-score Positive sample support True Positives True Negatives False Positives False Negatives True Positive Rate (Sensitivity) True Negative Rate (Specificity) False Positive Rate False Negative Rate Positive Predictive Value Negative Predictive Value
All data 0.679 0.735 0.823 0.843 0.833 83 0.380 0.347 0.363 23 8 70 13 15 0.347 0.843 0.156 0.652 0.380 0.823
New editors (<1 year) 0.646 0.697 0.8 0.8 0.800 65 0.380 0.380 0.380 21 8 52 13 13 0.380 0.8 0.2 0.619 0.380 0.8
Experienced editors (>=1 year) 0.722 0.9 0.9 1.0 0.947 18 0.0 0.0 0.0 2 0 18 0 2 0.0 1.0 0.0 1.0 nan 0.9
Anonymous editors 0.671 0.691 0.795 0.78 0.787 50 0.421 0.444 0.432 18 8 39 11 10 0.444 0.78 0.22 0.555 0.421 0.795
Named editors 0.606 0.815 0.861 0.939 0.898 33 0.0 0.0 0.0 5 0 31 2 5 0.0 0.939 0.060 1.0 0.0 0.861
Mobile editors 0.828 0.75 0.75 0.818 0.782 11 0.75 0.666 0.705 9 6 9 2 3 0.666 0.818 0.181 0.333 0.75 0.75
Desktop editors 0.602 0.732 0.835 0.847 0.841 72 0.153 0.142 0.148 14 2 61 11 12 0.142 0.847 0.152 0.857 0.153 0.835

Model Information edit

What is the architecture of this model? edit

{
    "type": "GradientBoosting",
    "version": "0.5.1",
    "params": {
        "scale": true,
        "center": true,
        "labels": [
            true,
            false
        ],
        "multilabel": false,
        "population_rates": null,
        "ccp_alpha": 0.0,
        "criterion": "friedman_mse",
        "init": null,
        "learning_rate": 0.01,
        "loss": "deviance",
        "max_depth": 7,
        "max_features": "log2",
        "max_leaf_nodes": null,
        "min_impurity_decrease": 0.0,
        "min_impurity_split": null,
        "min_samples_leaf": 1,
        "min_samples_split": 2,
        "min_weight_fraction_leaf": 0.0,
        "n_estimators": 700,
        "n_iter_no_change": null,
        "presort": "deprecated",
        "random_state": null,
        "subsample": 1.0,
        "tol": 0.0001,
        "validation_fraction": 0.1,
        "verbose": 0,
        "warm_start": false
    }
}

What is the score schema this model returns? edit

{
    "title": "Scikit learn-based classifier score with probability",
    "type": "object",
    "properties": {
        "prediction": {
            "description": "The most likely label predicted by the estimator",
            "type": "boolean"
        },
        "probability": {
            "description": "A mapping of probabilities onto each of the potential output labels",
            "type": "object",
            "properties": {
                "true": {
                    "type": "number"
                },
                "false": {
                    "type": "number"
                }
            }
        }
    }
}