make_blobsで作成したone-class SVM用のテストデータ分布
make_blobsでone-class SVM用のテストデータを作ったら、分布が思いのほか歪んでいた
one-class SVMのデバッグ用にtarinデータを作る必要があったが、60秒毎のデータで計算したいという事で、n_samples=60で作成していた。
one-class SVM のパラメータ調整しても、思ったほど正答率が上がらず。 random_stateは固定していたが、n_samplesを小さくしたので、思ったよりも分布がゆがんでいた。
random_state=0~100まで確認した上で、n_samples=60でも実際の分布に近そうなrandom_stateを選んで解決した。
試験そのものは、n_samplesが少ない状況では、ちょっと微妙だったが...
random_state=0~100のサンプルコード。
from sklearn import datasets
import matplotlib.pyplot as plt
k=0
plt.figure(figsize=(20,15))
for j in range(100):
k=j+1
plt.subplot(10, 10, k)
X_train,_ = datasets.make_blobs(n_features = 1, centers=1,random_state=j, cluster_std=1.667122, n_samples=60, center_box=(14,22))
plt.hist(X_train, color='blue', Alpha = 0.5)
plt.title('random_state='+str(j))
plt.grid(True)
plt.tight_layout()
plt.show()
出力はこんな感じ。
ちなみに、当然ですがn_samples=500以上であれば正規分布に近くなる。
あまり使わなそうだが、取り合えずメモ用に保存
以上
Author And Source
この問題について(make_blobsで作成したone-class SVM用のテストデータ分布), 我々は、より多くの情報をここで見つけました https://qiita.com/System9x/items/60b277c2167add16c1a4著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .