高周波エンジニアのためのAI・機械学習入門(12)教師なし学習でバンドパスフィルタ(BPF)の中心周波数ずれのG/NG判定をPythonとtslearn(時系列ライブラリ)のTime series K-meansでクラスタリングとして行う。64クラスタにしても完全にG/NG判定はできなかった…
以前、教師あり学習でBPFの周波数ずれのG/NG判定をやってみた。
その時はまずまずだったが、今回は教師なし学習でやってみる。データはこの時使ったものと同じ。
使うのは前回も使ったtslearn。
コードはこんな感じ。最後にG/NGが正しいかを出力している。
import numpy as np
import matplotlib.pyplot as plt
from tslearn.utils import to_time_series
from tslearn.clustering import TimeSeriesKMeans
from tslearn.preprocessing import TimeSeriesScalerMeanVariance
data_label = np.load("G_NG.npz")
data = data_label["data"]
s21dB = 10*np.log10(data[:, :, 3]**2 + data[:, :, 4]**2)
s21dB = to_time_series(s21dB)
n = 4
s21dB_scaled = TimeSeriesScalerMeanVariance().fit_transform(s21dB)
km = TimeSeriesKMeans(n_clusters=n, verbose=True, random_state=42)
pred = km.fit_predict(s21dB_scaled)
freq = np.linspace(0.1,20,s21dB.shape[1])
fig = plt.figure(figsize=(12,8))
for yi in range(n):
plt.subplot(2, 2, yi + 1)
for xx in s21dB[pred == yi]:
plt.plot(freq, xx.ravel(), "b-", alpha=.1)
plt.ylim(-60, 0)
#plt.tick_params(labelsize=5)
plt.xlabel("Frequency[GHz]")
plt.ylabel("S21[dB]")
plt.grid(True)
plt.text(0.1, 0.25,'Cluster %d' % (yi + 1),transform=plt.gca().transAxes)
plt.tight_layout()
label = data_label["label"]
for i in range(n):
num = label[pred == i].shape[0]
num2 = int(label[pred == i].sum())
if num == num2:
print(f"Cluster{i+1} : クラスタに含まれる個数:{num} クラスタの中のGの個数:{num2} G判定OK")
elif num2 == 0:
print(f"Cluster{i+1} : クラスタに含まれる個数:{num} クラスタの中のNGの個数:{num2} NG判定OK")
else:
print(f"Cluster{i+1} : クラスタに含まれる個数:{num} クラスタの中のGの個数:{num2} G/NG判定×")
|
ではまず4クラスタ。
Cluster1 : クラスタに含まれる個数:2434 クラスタの中のGの個数:1929 G/NG判定×
Cluster2 : クラスタに含まれる個数:2537 クラスタの中のGの個数:2537 G判定OK
Cluster3 : クラスタに含まれる個数:2525 クラスタの中のGの個数:2525 G判定OK
Cluster4 : クラスタに含まれる個数:2504 クラスタの中のGの個数:2052 G/NG判定×
これはだめだな。ということでどんどんクラスタ数増やしていって64クラスタ。
Cluster1 : クラスタに含まれる個数:132 クラスタの中のGの個数:132 G判定OK
Cluster2 : クラスタに含まれる個数:161 クラスタの中のGの個数:161 G判定OK
Cluster3 : クラスタに含まれる個数:203 クラスタの中のGの個数:203 G判定OK
Cluster4 : クラスタに含まれる個数:142 クラスタの中のGの個数:142 G判定OK
Cluster5 : クラスタに含まれる個数:157 クラスタの中のGの個数:157 G判定OK
Cluster6 : クラスタに含まれる個数:178 クラスタの中のGの個数:178 G判定OK
Cluster7 : クラスタに含まれる個数:156 クラスタの中のGの個数:156 G判定OK
Cluster8 : クラスタに含まれる個数:147 クラスタの中のGの個数:147 G判定OK
Cluster9 : クラスタに含まれる個数:141 クラスタの中のGの個数:141 G判定OK
Cluster10 : クラスタに含まれる個数:141 クラスタの中のNGの個数:0 NG判定OK
Cluster11 : クラスタに含まれる個数:175 クラスタの中のGの個数:175 G判定OK
Cluster12 : クラスタに含まれる個数:133 クラスタの中のGの個数:133 G判定OK
Cluster13 : クラスタに含まれる個数:139 クラスタの中のNGの個数:0 NG判定OK
Cluster14 : クラスタに含まれる個数:173 クラスタの中のGの個数:173 G判定OK
Cluster15 : クラスタに含まれる個数:159 クラスタの中のGの個数:159 G判定OK
Cluster16 : クラスタに含まれる個数:178 クラスタの中のGの個数:178 G判定OK
Cluster17 : クラスタに含まれる個数:176 クラスタの中のGの個数:176 G判定OK
Cluster18 : クラスタに含まれる個数:183 クラスタの中のGの個数:183 G判定OK
Cluster19 : クラスタに含まれる個数:130 クラスタの中のGの個数:130 G判定OK
Cluster20 : クラスタに含まれる個数:161 クラスタの中のGの個数:161 G判定OK
Cluster21 : クラスタに含まれる個数:162 クラスタの中のGの個数:162 G判定OK
Cluster22 : クラスタに含まれる個数:174 クラスタの中のGの個数:174 G判定OK
Cluster23 : クラスタに含まれる個数:206 クラスタの中のGの個数:206 G判定OK
Cluster24 : クラスタに含まれる個数:127 クラスタの中のGの個数:127 G判定OK
Cluster25 : クラスタに含まれる個数:136 クラスタの中のNGの個数:0 NG判定OK
Cluster26 : クラスタに含まれる個数:173 クラスタの中のGの個数:173 G判定OK
Cluster27 : クラスタに含まれる個数:136 クラスタの中のGの個数:136 G判定OK
Cluster28 : クラスタに含まれる個数:191 クラスタの中のGの個数:191 G判定OK
Cluster29 : クラスタに含まれる個数:168 クラスタの中のGの個数:168 G判定OK
Cluster30 : クラスタに含まれる個数:175 クラスタの中のGの個数:97 G/NG判定×
Cluster31 : クラスタに含まれる個数:160 クラスタの中のGの個数:160 G判定OK
Cluster32 : クラスタに含まれる個数:169 クラスタの中のGの個数:169 G判定OK
Cluster33 : クラスタに含まれる個数:159 クラスタの中のGの個数:159 G判定OK
Cluster34 : クラスタに含まれる個数:199 クラスタの中のGの個数:199 G判定OK
Cluster35 : クラスタに含まれる個数:167 クラスタの中のGの個数:167 G判定OK
Cluster36 : クラスタに含まれる個数:132 クラスタの中のGの個数:132 G判定OK
Cluster37 : クラスタに含まれる個数:158 クラスタの中のGの個数:158 G判定OK
Cluster38 : クラスタに含まれる個数:168 クラスタの中のGの個数:168 G判定OK
Cluster39 : クラスタに含まれる個数:182 クラスタの中のGの個数:182 G判定OK
Cluster40 : クラスタに含まれる個数:188 クラスタの中のGの個数:188 G判定OK
Cluster41 : クラスタに含まれる個数:151 クラスタの中のGの個数:151 G判定OK
Cluster42 : クラスタに含まれる個数:166 クラスタの中のGの個数:166 G判定OK
Cluster43 : クラスタに含まれる個数:145 クラスタの中のGの個数:145 G判定OK
Cluster44 : クラスタに含まれる個数:153 クラスタの中のGの個数:153 G判定OK
Cluster45 : クラスタに含まれる個数:137 クラスタの中のGの個数:137 G判定OK
Cluster46 : クラスタに含まれる個数:131 クラスタの中のGの個数:78 G/NG判定×
Cluster47 : クラスタに含まれる個数:151 クラスタの中のGの個数:151 G判定OK
Cluster48 : クラスタに含まれる個数:167 クラスタの中のGの個数:167 G判定OK
Cluster49 : クラスタに含まれる個数:183 クラスタの中のGの個数:183 G判定OK
Cluster50 : クラスタに含まれる個数:131 クラスタの中のGの個数:131 G判定OK
Cluster51 : クラスタに含まれる個数:124 クラスタの中のNGの個数:0 NG判定OK
Cluster52 : クラスタに含まれる個数:158 クラスタの中のGの個数:158 G判定OK
Cluster53 : クラスタに含まれる個数:152 クラスタの中のGの個数:152 G判定OK
Cluster54 : クラスタに含まれる個数:164 クラスタの中のGの個数:164 G判定OK
Cluster55 : クラスタに含まれる個数:156 クラスタの中のGの個数:156 G判定OK
Cluster56 : クラスタに含まれる個数:157 クラスタの中のGの個数:157 G判定OK
Cluster57 : クラスタに含まれる個数:164 クラスタの中のNGの個数:0 NG判定OK
Cluster58 : クラスタに含まれる個数:115 クラスタの中のGの個数:115 G判定OK
Cluster59 : クラスタに含まれる個数:143 クラスタの中のGの個数:143 G判定OK
Cluster60 : クラスタに含まれる個数:147 クラスタの中のGの個数:147 G判定OK
Cluster61 : クラスタに含まれる個数:115 クラスタの中のGの個数:115 G判定OK
Cluster62 : クラスタに含まれる個数:131 クラスタの中のGの個数:131 G判定OK
Cluster63 : クラスタに含まれる個数:142 クラスタの中のGの個数:142 G判定OK
Cluster64 : クラスタに含まれる個数:122 クラスタの中のNGの個数:0 NG判定OK
これでもまだ間違っているクラスタがある…もうちょっと工夫しないとだめだな。
« 映画「ルックバック」を遅ればせながら観てきた。よかった…原作を読んだ時も衝撃を受けたが、それをさらに膨らませて2人の感情の動きや風景、声・しゃべり方、音楽どれもよくて泣ける…もらった特典はカバーでした。 | トップページ | 高周波・RFニュース 2024年9月10日 iPhone16が発表されたが、今年も日本モデルにミリ波対応はなし。iPhone16 Pro, Apple Watch, AirPodsの内部構造も。三つ折りスマホ、Huawei Mate XTの説明会も観ていた。 »
「パソコン・インターネット」カテゴリの記事
「学問・資格」カテゴリの記事
- 高周波・RFニュース 2025年2月14日 Microwave Journal今月号で透明アンテナ、6Gタワー、月面用アンテナなど、Keysightが6GでEUと提携、TDKが日本酒の味わいを視覚化&車載PoC用巻き線インダクタ、QualcommがSnapdragon 6 Gen 4 Mobile発表(2025.02.14)
- 高周波・RFニュース 2025年2月13日 iFixitがSamsung Galaxy S25 ultraを分解、ぐりぐり回せる3D CTモデルに、Spirentの5G Outlook レポート、QualcommのオンデバイスAIホワイトペーパー、InfineonがCoolSiC™ MOSFETs 650 Vの Q-DPAKとTOLLパッケージで発表(2025.02.13)
- 高周波・RFニュース 2025年2月12日 GSAが5G standaloneウェビナー開催、CTIAと5G americasがケーブルに対抗してSpectrum for Broadband Competitionで連携、NXPがエッジAIのKinaraを買収、PBKreviewsがSamsung Galaxy S25/plus/ultra全部分解していて5Gミリ波AiPは全部1個(2025.02.12)
「日記・コラム・つぶやき」カテゴリの記事
- 高周波・RFニュース 2025年2月14日 Microwave Journal今月号で透明アンテナ、6Gタワー、月面用アンテナなど、Keysightが6GでEUと提携、TDKが日本酒の味わいを視覚化&車載PoC用巻き線インダクタ、QualcommがSnapdragon 6 Gen 4 Mobile発表(2025.02.14)
- 高周波・RFニュース 2025年2月13日 iFixitがSamsung Galaxy S25 ultraを分解、ぐりぐり回せる3D CTモデルに、Spirentの5G Outlook レポート、QualcommのオンデバイスAIホワイトペーパー、InfineonがCoolSiC™ MOSFETs 650 Vの Q-DPAKとTOLLパッケージで発表(2025.02.13)
- 高周波・RFニュース 2025年2月12日 GSAが5G standaloneウェビナー開催、CTIAと5G americasがケーブルに対抗してSpectrum for Broadband Competitionで連携、NXPがエッジAIのKinaraを買収、PBKreviewsがSamsung Galaxy S25/plus/ultra全部分解していて5Gミリ波AiPは全部1個(2025.02.12)
« 映画「ルックバック」を遅ればせながら観てきた。よかった…原作を読んだ時も衝撃を受けたが、それをさらに膨らませて2人の感情の動きや風景、声・しゃべり方、音楽どれもよくて泣ける…もらった特典はカバーでした。 | トップページ | 高周波・RFニュース 2024年9月10日 iPhone16が発表されたが、今年も日本モデルにミリ波対応はなし。iPhone16 Pro, Apple Watch, AirPodsの内部構造も。三つ折りスマホ、Huawei Mate XTの説明会も観ていた。 »
コメント