マルチラベル生成データ数を5000に増やす
issue 1 make-data-5000
1300は少ない
もっと生成できるはず
今の生成方法を見直す
make_multirabel.pyで
generate_multilabel_dataset()を呼ぶ
引数でdfを渡す
このdfは以下のラベルのみ持つ
code: labels
"rain","door_wood_knock", "door_wood_creaks", "glass_breaking", "sneezing", "breathing", "coughing","footsteps", "laughing", "brushing teeth", "snoring", "drinking_sipping", "pouring_water", "toilet_flush"
生成したマルチラベルデータをXに,ラベルをyに格納
save_sample()を呼ぶ
X,yをnpzファイルとして保存
generate_multilabel_dataset()を詳しく見る
targetsを作成
targets = np.tile(np.arange(num_classes), (num_samples // num_classes) + 1)[:num_samples]
num_classes: クラス数(ラベルの数)
サンプル数に対応するクラスの束を作成
シャッフルして生成順番をランダムにする
for文をnum_samplesで回す
targetsからメインのラベルを抽出
それ以外のラベルをランダムに選択
other_df = df[df['target'] != main_class]
other_dfでメインラベル以外のdfを作成
others = other_df.sample(n=k-1, replace=True)
混ぜるラベル数だけランダムな列を選び抽出
メインラベルの行と接合し,create_multilabel_sample()に渡す
create_multilabel_sample()を見る
sampledの扱いがダメそう
replace引数がデフォルトでfalseだから問題ない
falseだと行と列のそれぞれで重複を許さず抽出する
ランダム抽出が正しく行える
ランダム抽出自体は正しく行われている
メインをターゲットから選ぶ
ターゲット以外をランダムに選ぶ
ここを操作すれば不均衡にできる
これは後でやる
メインの音声を一つランダムに選ぶ
一つだけ抽出している
メイン一つと他のラベルの行を接合
関数に渡し,各ラベルごとにランダム抽出
なぜかメインだけ先に抽出済み
課題
全く同一の音声の組は作りたくない
弾く機構が欲しい
サンプル数が足りない
なぜ途中で生成が止まる?
不均衡を操作したい
ラベルを選択する操作を変更すれば良い
解決法
専用のcsvを作成する
データ不均衡度を操作できるようにすれば良い
重複なしで無数のデータを使った,サンプル数nのデータを構築できる
生成してもらった
一応確認しよう
大丈夫そう?
現在学習 + 評価待ち
後でデータの中身見た方が良いかも