Dieser Algorithmus basiert auf einem prozentualen Proximity -Prinzip. Zunächst wurde es für ein persönliches Projekt entwickelt. Später stellte ich jedoch fest, dass es sich um eine Form der in Statistiken verwendeten Newton -Methode handelt, um maximale Wahrscheinlichkeitsgleichungen zu lösen.
pip install scalg
Ab dem 15. September 2020 enthält es zwei Methoden ( score und score_columns ), die in den folgenden Beispielen beschrieben und demonstriert werden.
import scalg
Dies ist der Beispieldatensatz, der als Source_Data verwendet wird, mit den Beispielen mit den entsprechenden Indizes und Spaltengewichten.
Columns -> 0 1 2 3
Weights -> 1 0 0 1
1[[2016 ,21999 ,62000 ,181],
Sets -> 2 [2013 ,21540 ,89000 ,223],
3 [2015 ,18900 ,100000 ,223],
4 [2013 ,24200 ,115527 ,223],
5 [2016 ,24990 ,47300 ,223]]
Die Ausgabe, wenn Sie in Source_Data und Gewichten übergeben:
scalg.score(source_data, [1, 0, 0, 1])
[[2016, 21999, 62000, 181, 2.2756757812463335],
[2013, 21540, 89000, 223, 1.9553074815952338],
[2015, 18900, 100000, 223, 2.894245191297678],
[2013, 24200, 115527, 223, 1.1297208538587848],
[2016, 24990, 47300, 223, 3.0]]
Die Ausgabe, wenn Sie in Source_Data, Gewichten und get_scores = true: true:
scalg.score(source_data, [1, 0, 0, 1], get_scores=True)
[2.2756757812463335, 1.9553074815952338, 2. 894245191297678, 1.1297208538587848, 3.0]
Die Ausgabe, wenn Sie in Source_Data, Gewichten und get_score_lists = true: true:
scalg.score(source_data, [1, 0, 0, 1], get_score_lists=True)
[[1.0 ,0.0, 0.6666666666666666 ,0.0 ,1.0]
[0.49113300492610834 ,0.5665024630541872 ,1.0, 0.12972085385878485 ,0.0]
[0.7845427763202251 ,0.38880501854104677 ,0.22757852463101114 ,0.0]
[0.0 ,1.0 ,1.0 ,1.0]]
Dies gibt die Punktzahl jedes Elements in der Liste im Vergleich zu anderen Elementen aus und hält die Position.
Hier können Sie dieselben Gewichte verwenden, die Sie in scalg.score verwenden würden, oder Sie können die Gewichte jeder Spalte in der entsprechenden Reihenfolge angeben. In diesem Beispiel würde das Argument der Gewichte [1, 0, 0, 1] oder [0, 1] keinen Unterschied machen.
Die Ausgabe, wenn Sie in Source_Data, Spalten und Gewichten übergeben:
scalg.score_columns(source_data, [0, 1], [1, 0, 0, 1])
Scored columns Scores for corresponding columns
0| 1| |
[[2016 ,21999 ,62000 ,181 ,1.4911330049261085],
[2013 ,21540 ,89000 ,223 ,0.5665024630541872],
[2015 ,18900 ,100000 ,223 ,1.6666666666666665],
[2013 ,24200 ,115527 ,223 ,0.12972085385878485],
[2016 ,24990 ,47300 ,223 ,1.0]]
Die Punktzahl wurde nur basierend auf den Spalten 0 und 1 berechnet.