7個のリストから重み係数つきの多数決を行って、その結果から1個のリストを作成したいと考えています。
a = [ 1 0 2 2 2 1 1 0 2 4 3 3 5 3 5 4 6 5 6 7 6 8 7 8 6 8 6 11 11 9 10 11 11 11 9 11] b = [ 1 0 2 2 2 1 1 0 2 5 4 5 5 5 4 4 4 4 6 4 4 8 4 8 7 8 6 9 11 9 11 9 11 10 9 11] c = [ 1 0 2 2 2 1 1 0 2 5 4 5 3 4 4 4 5 5 6 7 6 8 7 8 6 8 6 9 9 9 10 9 11 10 9 11] d = [ 1 0 2 2 2 1 1 0 2 5 5 5 3 3 5 5 5 3 6 7 6 8 6 8 6 8 6 9 9 10 10 9 10 9 9 11] e = [ 0 2 2 0 1 0 0 2 0 3 5 3 4 4 3 4 3 4 8 8 6 6 7 6 8 6 8 9 9 9 10 10 10 10 9 10] f = [ 1 0 2 2 2 1 1 2 2 5 5 5 3 3 5 5 5 5 6 7 6 8 7 8 6 8 6 9 9 10 10 9 11 10 9 11] g = [ 1 1 2 2 2 1 1 2 2 4 5 5 4 4 5 3 5 5 6 4 4 8 7 8 6 8 6 9 11 9 10 9 11 10 9 11] aの重み係数: w1 = 0.417 bの重み係数: w2 = 0.278 cの重み係数: w3 = 0.444 dの重み係数: w4 = 0.333 eの重み係数: w5 = 0.333 fの重み係数: w6 = 0.361 gの重み係数: w7 = 0.333
それぞれのリストの1〜リストの長さ番目までの要素でそれぞれ重み付き係数を利用して多数決を行いリストを作成することが目的です。
Python
1label_list = [a,b,c,d,e,f,g] 2weight = [w1, w2, w3, w4, w5, w6, w7] 3labels = [] 4N = len(label_list[0]) 5for n in range(N): 6 for i, w in zip(label_list, weight): 7 a, gu, ty, pa, = [], [], [], [] 8 if(i[n] % 3 == 0): 9 gu.append(w) 10 elif(i[n] % 3 == 1): 11 ty.append(w) 12 elif(i[n] % 3 == 2): 13 pa.append(w) 14 15 x = [sum(gu), sum(ty), sum(pa)] 16 x.sort() 17 if(x[0] == sum(gu)):
リストの要素の数字によって、3つのリストを作成して重み係数をラベルによって分けてリストの合計をそれぞれ算出して一番大きい数のリストに応じて、ラベルをつけていこうと考えたのですがコードで表現できなくて困っています。
以上の文章では、意図がわかりづらいと思います。うまく説明できなくてすみません。
もっとうまい方法がありましたら、参考にさせてもらいたいので教えていただきたいです。
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。