問題タブ [kernlab]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - 「.local(object、...)のエラー:テストベクトルがモデルと一致しません!」を克服する方法は?
元のデータセットから100レコードを削除し、次のコーディングを使用してSVMモデルを再構築しました。
ここで、新しいモデルのトレーニング/テストとは別に設定した100個のレコードを取り込み、モデルがこれまでに見たことのない100個のレコードをどれだけ適切に識別および分類できるかを確認します。そこで、次のコーディングを行いました。
しかし、Rは私に次のエラーを与えます:
このエラーをどのように克服できるか考えてみてください。モデルの構築に使用されたテストセットには、466個のレコードがあります。したがって、検証テストを466にも複製しようとしましたが、それでも同じエラーが発生します。
r - R ksvm サポート ベクター
R の ksvm パッケージの重みを抽出しようとしています。
通常、私は e1071 パッケージを使用し、重みは次のように計算できます。
しかし、ksvm パッケージを調べると、係数とアルファ (サポート ベクター) の両方が同じ次元のリストになっています。アルファはベクトルを返しません。
私の質問は、ゼロ値を含むサポート ベクターにどのようにアクセスすればよいですか? 変数を元の入力に対応させるために SVindex を使用する必要がありますか?
ありがとう。
r - キャレットエラーを伴うSVM分類(基本)
私はおそらくここで非常に単純な(そして愚かな)間違いを犯していますが、それを理解することはできません。Kaggle(Digit Recognizer)からのデータで遊んでいて、CaretパッケージでSVMを使用して分類を行おうとしています。ラベル値を数値型として関数にプラグインするとtrain
、Caretの関数はデフォルトで回帰に設定されているように見え、パフォーマンスはかなり低下します。そこで次に試したのは、関数を使用して因子に変換し、factor()
SVM分類を実行してみることです。ダミーデータを生成し、それをCaretにプラグインするコードを次に示します。
このエラーが発生します:
誰かが私が間違っていることを教えてもらえますか?ありがとうございました!
r - R の ksvm の確率と応答が一貫していないのはなぜですか?
のオプションを使用ksvm
して、R の kernlab パッケージから確率を予測しています。ただし、 を使用すると、 で与えられる確率が最も高いクラスが得られないことがあります。type="probabilities"
predict.ksvm
predict(model,observation,type="r")
predict(model,observation,type="p")
例:
これは正しい動作ですか、それともバグですか? それが正しい動作である場合、確率から最も可能性の高いクラスをどのように推定できますか?
再現可能な例を試す:
結果の出力:
r - R で ksvm を使用する大規模なサポート ベクター マシンの無効な確率モデル
R の kernlab パッケージの関数を使用して、サポート ベクター マシンをksvm
トレーニングします。多数の観測 (300k) とあまり多くの機能 (1-8) を使用しません。結果の確率モデルを使用したいのですが、大規模なデータ セットの場合、結果の確率モデルの形式が予期しないものになります。
これが起こるべきことです:
ただし、 の値が大きい場合n
(たとえば、100k; メモリ使用量が多くなり、実行時間が長くなることに注意してください)、 の値はprob.model(m)[[1]]
長さ の数値ベクトルであり2n
、一見すると の各観測値の尤度ですdf
。何が原因でしょうか?
セッション情報:
編集:これは私が話している分類タスクでdf
あり、次の形式を持っています:
r - R の kernlab の ksvm のベクトルとしてのパラメータ C. epsilon
R で kernlab パッケージの ksvm 関数を使用して、epsilon-SVM 回帰を試みています。パラメータ C (正則化定数) とイプシロン (無感度) をベクトル (ベクトルの長さ = トレーニング データの長さ) として配置したい。しかし、私はこれを行う方法を理解することができません。何らかの方法を提案してください。
r - スパム データセットの SVM 分類結果のプロット中にエラーが発生しました
パッケージSVM
からのスパム データセットの分類結果のプロットに問題があります。kernlab
コード:
エラー:
r - kernlab パッケージの ksvm でカーネル関数をカスタマイズするには?
緯度と経度があるので、RBF カーネルを exp(-1/2||sophhere distrance||^2) に再定義する必要があります。つまり、カーネル関数を自分で書き直す必要があります。カーネルを次のように記述します。
関数をテストしましたが、カーネルは正しいはずです。しかし、次のトレーニング コマンドを使用すると、エラーが発生します。
さらにトリッキーなのは、ksvm ドキュメントのサンプル コードを試したことです。
しかし、私は同じエラーが発生しています。
カーネル関数を正しく定義する方法を知っている人はいますか?
r - e1071 とキャレットを使用した SVM モデルの結果が大きく異なる
データに 2 つの異なるパッケージを使用して 2 つの SVM モデルをトレーニングし、非常に異なる結果を得ています。これは予想されることですか?
e1071を使用したmodel1
キャレットを使用したmodel2
calculateAUC()
ターゲットの予測値と実際の値を考慮して、AUC 値を計算するために定義した関数です。値は次のように表示されます。
モデル1 (e1071)
1
0.8567979
model2 (キャレット)
0.9910193
0.758201
これは可能なことですか?それとも私はこれを間違っていますか?
参考になれば、サンプルデータを提供できます