コードの貼り付けは次のとおりです: SVM サンプル コード
この問題に対する他のいくつかの回答をチェックしました...そして、この問題の特定の反復は少し異なるようです。
まず、入力は正規化されており、ポイントごとに 5 つの入力があります。値はすべて適切なサイズです (健全な 0.5 秒や 0.7 秒など - ゼロに近い数値や 1 に近い数値はほとんどありません)。
70 y 入力に対応する約 70 x 入力があります。y 入力も正規化されます (各時間ステップ後の関数のパーセンテージ変化です)。
SVR (および SVC) を初期化し、それらをトレーニングし、30 個のサンプル外の入力でテストします...そして、すべての入力に対してまったく同じ予測を取得します (そして、入力は妥当な量 (0.3、0.6) で変化しています) 、0.5 など)。分類子には(少なくとも)ある程度の差別化があると思います...
ここに私が持っているコードがあります:
# train svr
my_svr = svm.SVR()
my_svr.fit(x_training,y_trainr)
# train svc
my_svc = svm.SVC()
my_svc.fit(x_training,y_trainc)
# predict regression
p_regression = my_svr.predict(x_test)
p_r_series = pd.Series(index=y_testing.index,data=p_regression)
# predict classification
p_classification = my_svc.predict(x_test)
p_c_series = pd.Series(index=y_testing_classification.index,data=p_classification)
そして、ここに私の入力のサンプルがあります:
x_training = [[ 1.52068627e-04 8.66880301e-01 5.08504362e-01 9.48082047e-01
7.01156322e-01],
[ 6.68130520e-01 9.07506250e-01 5.07182647e-01 8.11290634e-01
6.67756208e-01],
... x 70 ]
y_trainr = [-0.00723209 -0.01788079 0.00741741 -0.00200805 -0.00737761 0.00202704 ...]
y_trainc = [ 0. 0. 1. 0. 0. 1. 1. 0. ...]
また、行列 (5x30) は、入力の大きさと分散の点で行列にx_test
似ています... と についても同じです。x_training
y_testr
y_testc
現在、すべてのテストの予測はまったく同じです (回帰では 0.00596、分類では 1...)。
関連する予測を吐き出す SVR および SVC 関数を取得するにはどうすればよいですか? または、少なくとも入力に基づく異なる予測...
少なくとも、分類子は選択できる必要があります。つまり、回帰に十分な次元を提供していなくても...