Este algoritmo funciona basado en un principio de proximidad de rango porcentual. Inicialmente se desarrolló para un proyecto personal, sin embargo, más tarde descubrí que es una forma del método de Newton utilizado en las estadísticas para resolver las ecuaciones de máxima probabilidad.
pip install scalg
A partir del 15 de septiembre de 2020, contiene dos métodos ( score y score_columns ) que se describirán y demostrarán en los ejemplos a continuación.
import scalg
Este será el conjunto de datos de muestra utilizado como fuente_data con los ejemplos con los índices y pesos de columna correspondientes.
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 salida si pasa en fuente_data y pesos:
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 salida si pasa en Source_Data, Peso y 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 salida si pasa en Source_Data, Pooss y 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]]
Esto da la puntuación de cada elemento en la lista en comparación con otros elementos, manteniendo su posición.
Aquí puede usar los mismos pesos que usaría en scalg.score , o puede especificar los pesos de cada columna en el orden correspondiente. En este ejemplo, usar el argumento de pesas [1, 0, 0, 1] o [0, 1] no haría diferencia.
La salida si pasa en fuente_data, columnas y pesos:
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]]
La puntuación se calculó solo en función de las columnas 0 y 1.