안녕하세요이 분류를 수행 할 sklearn 함께 일하고, 나는 레이블의 다음 배포 한 :다음 SVC에 대한 최적의 클래스 가중치 매개 변수는 무엇입니까?
명확하게 눈에 띄는label : 0 frecuency : 119
label : 1 frecuency : 1615
label : 2 frecuency : 197
label : 3 frecuency : 70
label : 4 frecuency : 203
label : 5 frecuency : 137
label : 6 frecuency : 18
label : 7 frecuency : 142
label : 8 frecuency : 15
label : 9 frecuency : 182
label : 10 frecuency : 986
label : 12 frecuency : 73
label : 13 frecuency : 27
label : 14 frecuency : 81
label : 15 frecuency : 168
label : 18 frecuency : 107
label : 21 frecuency : 125
label : 22 frecuency : 172
label : 23 frecuency : 3870
label : 25 frecuency : 2321
label : 26 frecuency : 25
label : 27 frecuency : 314
label : 28 frecuency : 76
label : 29 frecuency : 116
한 가지 내가 불균형 데이터 세트로 작업하고 있다는 것입니다 나는 많은 레이블이 나는 많은 0을 얻고있다
precision recall f1-score support
0 0.00 0.00 0.00 31
1 0.61 0.23 0.34 528
2 0.00 0.00 0.00 70
3 0.67 0.06 0.11 32
4 0.00 0.00 0.00 62
5 0.78 0.82 0.80 39
6 0.00 0.00 0.00 3
7 0.00 0.00 0.00 46
8 0.00 0.00 0.00 5
9 0.00 0.00 0.00 62
10 0.14 0.01 0.02 313
12 0.00 0.00 0.00 30
13 0.31 0.57 0.40 7
14 0.00 0.00 0.00 35
15 0.00 0.00 0.00 56
18 0.00 0.00 0.00 35
21 0.00 0.00 0.00 39
22 0.00 0.00 0.00 66
23 0.41 0.74 0.53 1278
25 0.28 0.39 0.33 758
26 0.50 0.25 0.33 8
27 0.29 0.02 0.03 115
28 1.00 0.61 0.76 23
29 0.00 0.00 0.00 42
avg/total 0.33 0.39 0.32 3683
을하고 SVC는 여러 클래스에서 내가 사용하고있는 하이퍼 파라미터를 학습 할 수 없습니다 다음과 같이 클래스 25,23,1,10, 나는 훈련 후 나쁜 결과를 얻고있다 다음과 같습니다 :
01 237,971,845,922,718,718,093,210나는 다음과 같이 내가 각 클래스에 대한 가중치 하나 개 사전을 지은이 문제를 극복하기 위해 :
weight={}
for i,v in enumerate(uniqLabels):
weight[v]=labels_cluster.count(uniqLabels[i])/len(labels_cluster)
for i,v in weight.items():
print(i,v)
print(weight)
이들은으로 나눈 숫자와 출력, 난 그냥 determinated 라벨의 요소의 수를 복용하고 있습니다 설정 레이블에있는 요소의 총,이 숫자의 합은 1 : 다음과 같이
0 0.010664037996236221
1 0.14472622994892015
2 0.01765391164082803
3 0.006272963527197778
4 0.018191594228873554
5 0.012277085760372793
6 0.0016130477641365713
7 0.012725154583744062
8 0.0013442064701138096
9 0.01630970517071422
10 0.0883591719688144
12 0.0065418048212205395
13 0.002419571646204857
14 0.007258714938614571
15 0.015055112465274667
18 0.009588672820145173
21 0.011201720584281746
22 0.015413567523971682
23 0.34680526928936284
25 0.20799354780894344
26 0.0022403441168563493
27 0.028138722107715744
28 0.006810646115243301
29 0.01039519670221346
가중치의 사전 다시 시도 :
from sklearn import svm
clf2= svm.SVC(kernel='linear',class_weight=weight)
,
내가 가지고 :
precision recall f1-score support
0 0.00 0.00 0.00 31
1 0.90 0.19 0.31 528
2 0.00 0.00 0.00 70
3 0.00 0.00 0.00 32
4 0.00 0.00 0.00 62
5 0.00 0.00 0.00 39
6 0.00 0.00 0.00 3
7 0.00 0.00 0.00 46
8 0.00 0.00 0.00 5
9 0.00 0.00 0.00 62
10 0.00 0.00 0.00 313
12 0.00 0.00 0.00 30
13 0.00 0.00 0.00 7
14 0.00 0.00 0.00 35
15 0.00 0.00 0.00 56
18 0.00 0.00 0.00 35
21 0.00 0.00 0.00 39
22 0.00 0.00 0.00 66
23 0.36 0.99 0.52 1278
25 0.46 0.01 0.02 758
26 0.00 0.00 0.00 8
27 0.00 0.00 0.00 115
28 0.00 0.00 0.00 23
29 0.00 0.00 0.00 42
avg/total 0.35 0.37 0.23 3683
내가 정말 자동으로 각 클래스의 무게를 조정하고 SVC에서 그것을 표현하는 제안을 주셔서 감사합니다 좋은 결과를 얻고 있지 않다 때문에, 나는 돈이 너무 모든 불균형 문제를 다루는 많은 expierience이 제안은 잘 받았습니다.
예 나는 당신의 의견에 동의한다. 나의 접근 방식과 반대 다. 데이터의 실제 상황을 그 숫자로 반영하고 싶었는데, 이제는 그 숫자를 사용하여 그 반대를 달성하는 새로운 규칙을 구성해야한다고 생각한다. 그러나이 수를 고려하면 - – neo33