回答編集履歴
4
fix answer
test
CHANGED
@@ -41,7 +41,7 @@
|
|
41
41
|
plt.figure(figsize = (8, 4), dpi = 100)
|
42
42
|
plt.scatter(reduced[:, 0], reduced[:, 1], c = cls.labels_)
|
43
43
|
for i in range(len(y)):
|
44
|
-
plt.annotate(y[i], xy = (reduced[i][0], reduced[i][1]))
|
44
|
+
plt.annotate(y[i], xy = (reduced[i][0], reduced[i][1]))
|
45
45
|
plt.savefig("output.png", dpi = 100)
|
46
46
|
plt.tight_layout()
|
47
47
|
plt.show()
|
@@ -49,4 +49,4 @@
|
|
49
49
|
|
50
50
|

|
51
51
|
|
52
|
-
2クラスタとなるよう`n_clusters`を指定したものの,`cat`
|
52
|
+
2クラスタとなるよう`n_clusters`を指定したものの,`cat`のうち1つ(画面左端の黄点)が分離されるだけでほとんど同一クラスタと見なされました.
|
3
fix answer
test
CHANGED
@@ -13,7 +13,7 @@
|
|
13
13
|
このサイトでも示されている通り,wavファイルのデータそのものに対してk-Meansを純粋に適用するだけでは,聴覚的(上記サイトでは視覚的)な特徴で分類することにはなりません.多次元配列のindex-wiseな比較がされて分類されることを許容するのなら話は別です.
|
14
14
|
|
15
15
|
### 追記
|
16
|
-
ESC-50を使った`dog`と`cat`のクラスタリング例を次に示します.
|
16
|
+
ESC-50を使った`dog`と`cat`のk-Means法によるクラスタリング例及びt-SNEを利用した可視化を次に示します.
|
17
17
|
|
18
18
|
```Python
|
19
19
|
import os
|
@@ -36,12 +36,12 @@
|
|
36
36
|
y.append(category)
|
37
37
|
|
38
38
|
cls = KMeans(n_clusters = 2).fit(X)
|
39
|
-
reduced = TSNE(n_components=2).fit_transform(X)
|
39
|
+
reduced = TSNE(n_components = 2).fit_transform(X)
|
40
40
|
|
41
41
|
plt.figure(figsize = (8, 4), dpi = 100)
|
42
42
|
plt.scatter(reduced[:, 0], reduced[:, 1], c = cls.labels_)
|
43
43
|
for i in range(len(y)):
|
44
|
-
plt.annotate(y[i], xy=(reduced[i][0], reduced[i][1]))
|
44
|
+
plt.annotate(y[i], xy = (reduced[i][0], reduced[i][1]))
|
45
45
|
plt.savefig("output.png", dpi = 100)
|
46
46
|
plt.tight_layout()
|
47
47
|
plt.show()
|
2
fix answer
test
CHANGED
@@ -11,3 +11,42 @@
|
|
11
11
|
そもそも論,非構造化データをk-Means法で分類することの影響/効果を理解されての質問でしょうか.
|
12
12
|
[RightCode - 【機械学習】ブログのサムネ画像をクラスタリングしてみる!](https://rightcode.co.jp/blog/information-technology/machine-learning-image-clustering)
|
13
13
|
このサイトでも示されている通り,wavファイルのデータそのものに対してk-Meansを純粋に適用するだけでは,聴覚的(上記サイトでは視覚的)な特徴で分類することにはなりません.多次元配列のindex-wiseな比較がされて分類されることを許容するのなら話は別です.
|
14
|
+
|
15
|
+
### 追記
|
16
|
+
ESC-50を使った`dog`と`cat`のクラスタリング例を次に示します.
|
17
|
+
|
18
|
+
```Python
|
19
|
+
import os
|
20
|
+
import wave
|
21
|
+
from matplotlib import pyplot as plt
|
22
|
+
from sklearn import preprocessing
|
23
|
+
from sklearn.cluster import KMeans
|
24
|
+
from sklearn.manifold import TSNE
|
25
|
+
import numpy as np
|
26
|
+
import pandas as pd
|
27
|
+
|
28
|
+
df = pd.read_csv("ESC-50-master/meta/esc50.csv")
|
29
|
+
data = df[(df["category"] == "dog") | (df["category"] == "cat")][["filename", "category"]].values
|
30
|
+
|
31
|
+
X, y = list(), list()
|
32
|
+
for i, (file, category) in enumerate(data):
|
33
|
+
with wave.open(os.path.join("./ESC-50-master", "audio", file), "r") as f:
|
34
|
+
buf = f.readframes(1024)
|
35
|
+
X.append(np.frombuffer(buf, np.int16))
|
36
|
+
y.append(category)
|
37
|
+
|
38
|
+
cls = KMeans(n_clusters = 2).fit(X)
|
39
|
+
reduced = TSNE(n_components=2).fit_transform(X)
|
40
|
+
|
41
|
+
plt.figure(figsize = (8, 4), dpi = 100)
|
42
|
+
plt.scatter(reduced[:, 0], reduced[:, 1], c = cls.labels_)
|
43
|
+
for i in range(len(y)):
|
44
|
+
plt.annotate(y[i], xy=(reduced[i][0], reduced[i][1]))
|
45
|
+
plt.savefig("output.png", dpi = 100)
|
46
|
+
plt.tight_layout()
|
47
|
+
plt.show()
|
48
|
+
```
|
49
|
+
|
50
|
+

|
51
|
+
|
52
|
+
2クラスタとなるよう`n_clusters`を指定したものの,`cat`として1つだけ分離されるだけでほとんど同一クラスタと見なされました.
|
1
fix answer
test
CHANGED
@@ -2,10 +2,12 @@
|
|
2
2
|
Pandasには非構造化データを読み取る機能はありません.[Pandas - input/output](https://pandas.pydata.org/docs/reference/io.html)
|
3
3
|
|
4
4
|
> pandasを用いない前処理も探したが見つけることが出来なかった
|
5
|
-
|
5
|
+
[NumPy](https://numpy.org/doc/stable/reference/generated/numpy.fft.fft.html)や[SciPy](https://docs.scipy.org/doc/scipy/reference/signal.html)などのライブラリでFFTをはじめとする前処理が可能です.
|
6
|
+
|
6
7
|
> mix.wav をスペクトログラム変換したのだが、これは前処理が終わったとは言えない…?
|
7
8
|
質問掲載コードのどこでもスペクトログラム変換が実行されていません.
|
9
|
+
|
8
10
|
> WAVファイルをkmeans法で分類しているサイトを探したが出てこなかった(CNNを用いているものばかりだった)
|
9
11
|
そもそも論,非構造化データをk-Means法で分類することの影響/効果を理解されての質問でしょうか.
|
10
|
-
https://rightcode.co.jp/blog/information-technology/machine-learning-image-clustering
|
12
|
+
[RightCode - 【機械学習】ブログのサムネ画像をクラスタリングしてみる!](https://rightcode.co.jp/blog/information-technology/machine-learning-image-clustering)
|
11
|
-
このサイトでも示されている通り,k-Meansを純粋に適用するだけでは,
|
13
|
+
このサイトでも示されている通り,wavファイルのデータそのものに対してk-Meansを純粋に適用するだけでは,聴覚的(上記サイトでは視覚的)な特徴で分類することにはなりません.多次元配列のindex-wiseな比較がされて分類されることを許容するのなら話は別です.
|