2012-12-12 1 views
2

내가 sklearn의 분류 보고서를 사용하고 있는데이 출력입니다 : 때를하지만평균 정밀도를 잘 표시되지 않는 (scikit)

  precision recall f1-score support 

     1  0.5525 0.8118 0.6575  71194 
     2  0.8782 0.1371 0.2372  13877 
     3  0.5343 0.6083 0.5689  61591 
     4  0.7953 0.3230 0.4594  13187 
     5  0.6621 0.6701 0.6661  57530 
     6  1.0000 0.0008 0.0017  2391 
     7  0.6655 0.2095 0.3187  30223 

평균/총 0.6221 0.5852 0.5566 249,993

수동으로하면 옳지 않다는 것을 알 수 있습니다. As can be seen here

이유가 무엇입니까?

다른 알고리즘에 대한 다른 모든 보고서와 함께 올바른 결과를 얻습니다. 나는 그것이 정밀도와 관련이 있다고 의심한다.

답변

4

이것은 불균형 한 클래스들에 의한 것 같아. 나는 전체가 클래스에 대한 평균이 아니라 모든 예제에 대한 전체라고 생각한다. 따라서 클래스의 크기가 다른 경우 동일한 결과를 얻으려면 가중 평균을 취해야합니다.

+0

다중 클래스 데이터에서'sklearn.metrics' 함수를 사용하여 precision/recall/f1-score를 계산할 때 평균 전략 (micro/macro/weighted)을 선택할 수 있습니다. 자세한 내용은 해당 함수의 [docstrings] (http://scikit-learn.org/stable/modules/classes.html#module-sklearn.metrics)을 참조하십시오. – ogrisel