이 알고리즘은 퍼센트 범위 근접 원칙을 기반으로 작동합니다. 처음에는 개인 프로젝트를 위해 개발되었지만 나중에 나는 그것이 최대 가능성 방정식을 해결하기 위해 통계에 사용되는 Newton의 방법의 한 형태라는 것을 알았습니다.
pip install scalg
2020 년 9 월 15 일 현재 아래 예제에 설명되고 시연 될 두 가지 방법 ( score 및 score_columns )이 포함되어 있습니다.
import scalg
이것은 해당 인덱스 및 열 중량이있는 예제와 함께 Source_data로 사용되는 샘플 데이터 세트입니다.
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]]
Source_Data 및 가중치를 전달하는 경우 출력 :
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]]
출력 Source_data, weights and get_scores를 전달하는 경우 출력 = true :
scalg.score(source_data, [1, 0, 0, 1], get_scores=True)
[2.2756757812463335, 1.9553074815952338, 2. 894245191297678, 1.1297208538587848, 3.0]
출력 Source_data, weights 및 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]]
이것은 다른 요소와 비교하여 목록의 각 요소의 점수를 제공하여 위치를 유지합니다.
여기에서 scalg.score 에서 사용하는 것과 동일한 가중치를 사용하거나 해당 순서로 각 열의 가중치를 지정할 수 있습니다. 이 예에서 가중치 인수 [1, 0, 0, 1] 또는 [0, 1] 사용하는 것은 아무런 차이가 없습니다.
출력 Source_data, 열 및 가중치를 전달하는 경우 :
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]]
점수는 열 0 및 1을 기준으로 만 계산되었습니다.