Cet algorithme fonctionne basé sur un principe de proximité de la plage au permanence. Initialement, il a été développé pour un projet personnel, mais plus tard, j'ai découvert qu'il s'agissait d'une forme de méthode de Newton utilisée dans les statistiques pour résoudre les équations de vraisemblance maximale.
pip install scalg
Au 15 septembre 2020, il contient deux méthodes ( score et score_columns ) qui seront décrites et démontrées dans les exemples ci-dessous.
import scalg
Ce sera l'exemple d'ensemble de données utilisé comme source_data avec les exemples avec les index et poids de colonne correspondants.
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]]
La sortie si vous passez dans source_data et poids:
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]]
La sortie si vous passez dans source_data, poids et get_scores = true:
scalg.score(source_data, [1, 0, 0, 1], get_scores=True)
[2.2756757812463335, 1.9553074815952338, 2. 894245191297678, 1.1297208538587848, 3.0]
La sortie si vous passez dans source_data, poids et get_score_lists = 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]]
Cela donne le score de chaque élément de la liste par rapport aux autres éléments, en gardant sa position.
Ici, vous pouvez utiliser les mêmes poids que vous utiliseriez dans scalg.score , ou vous pouvez spécifier les poids de chaque colonne dans l'ordre correspondant. Dans cet exemple, l'utilisation de l'argument de poids [1, 0, 0, 1] ou [0, 1] ne ferait aucune différence.
La sortie si vous passez dans source_data, colonnes et poids:
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]]
Le score a été calculé uniquement sur la base des colonnes 0 et 1.