タグ付けされた質問 「svm」

サポートベクターマシンは、「分類と回帰分析に使用される、データを分析してパターンを認識する一連の関連する教師あり学習方法」を指します。

3
ep-SVRとnu-SVR(および最小二乗SVR)の違い
そのようなデータに適したSVRを見つけようとしています。 私は4種類のSVRを知っています。 イプシロン ニュー 最小二乗と 線形。 リニアSVRは多かれ少なかれL1 Regの投げ縄に似ていますが、残りの3つのテクニックの違いは何ですか?
11 regression  svm 

1
順序付けされていないカテゴリカル予測子変数のレベル数を減らす
SVM、ランダムフォレスト、その他の分類器などの分類器をトレーニングしたい。データセットの特徴の1つは、1000レベルのカテゴリ変数です。この変数のレベル数を減らす最善の方法は何ですか。Rで呼び出された関数があるcombine.levels()にHmiscのまれなレベルを組み合わせたパッケージが、私は他の提案を探していました。

3
「良い」分類子は私の精密再現率曲線を破壊しました。どうした?
私は不均衡なデータを処理しています。そこでは、すべてのclass = 1に対して約40のclass = 0ケースがあります。個々の機能を使用してクラスを合理的に区別することができ、6つの機能でナイーブベイズとSVM分類器をトレーニングし、データのバランスをとることで、より良い識別が得られました(以下のROC曲線)。 それは結構です、そして私はうまくやっていると思いました。ただし、この特定の問題の慣例は、通常50%から90%の間の精度レベルでヒットを予測することです。例:「90%の精度でいくつかのヒットを検出しました。」これを試したところ、分類子から得られる最大精度は約25%でした(黒い線、下のPR曲線)。 PR曲線は不均衡に敏感でROC曲線はそうではないので、これをクラスの不均衡問題として理解できました。ただし、不均衡は個々の機能に影響を与えていないようです。個々の機能(青とシアン)を使用すると、かなり高い精度を得ることができます。 何が起こっているのかわかりません。結局のところ、データが非常に不均衡であるため、PRスペースですべてがうまく機能していなければ、それを理解できました。分類子がROC と PRの領域で見た目が悪い場合にも、それを理解できました。しかし、ROCによって判断されると分類子をより良くするために何が起こっているのですか? 編集:TPR /リコールの低い領域(TPRが0から0.35の間)では、個々の機能がROC曲線とPR曲線の両方の分類子を常に上回っていることに気付きました。多分私の混乱は、ROC曲線が高いTPR領域(分類器がうまく機能している場合)を「強調」し、PR曲線が低いTPR(分類器が悪い場合)を強調しているためです。 編集2:バランスの取れていないデータ、つまり生データと同じ不均衡でのトレーニングにより、PR曲線が復活しました(以下を参照)。私の問題は分類子の不適切なトレーニングだったと思いますが、何が起こったのか完全には理解できません。

3
RBF SVMの使用例(対ロジスティック回帰とランダムフォレスト)
放射状ベース関数カーネルを備えたサポートベクターマシンは、汎用の教師付き分類器です。 私はこれらのSVMの理論的な基盤とその長所を知っていますが、それらが推奨される方法である場合については知りません。では、RBF SVMが他のML技術よりも優れているクラスの問題はありますか?(スコア、またはその他-堅牢性、開始の容易さ、解釈可能性など) 私のデフォルトのアプローチはロジスティック回帰(おそらくいくつかの相互作用による)、ランダムフォレスト、および少しのニューラルネットワークに集中しているので、私は尋ねています。私のMLをしている友達(Kaggleの勝者もいます)はSVMユーザーではありません(ただし、私のコミュニティのアーティファクトであるか、彼らが対処する問題である可能性があります)。

1
ReLUアクティベーションがSVMと等しい単一層のNeuralNetwork?
n個の入力と1つの出力(バイナリ分類タスク)を持つ単純な単一層ニューラルネットワークがあるとします。出力ノードでアクティベーション関数をシグモイド関数として設定すると、結果はロジスティック回帰分類器になります。 この同じシナリオで、出力のアクティブ化をReLU(修正線形ユニット)に変更した場合、結果の構造はSVMと同じか、または類似していますか? なぜではないのですか?

1
単純なパーセプトロンをカーネル化する方法は?
非線形境界の分類問題は、単純なパーセプトロンでは解決できません。次のRコードは説明のためのものであり、Python でのこの例に基づいています)。 nonlin <- function(x, deriv = F) { if (deriv) x*(1-x) else 1/(1+exp(-x)) } X <- matrix(c(-3,1, -2,1, -1,1, 0,1, 1,1, 2,1, 3,1), ncol=2, byrow=T) y <- c(0,0,1,1,1,0,0) syn0 <- runif(2,-1,1) for (iter in 1:100000) { l1 <- nonlin(X %*% syn0) l1_error <- y - l1 l1_delta <- l1_error …

1
グラフカーネルSVMハイパーパラメーターを調整する方法は何ですか?
グラフ存在するデータがあります。頂点はの2つのクラスのいずれかに属しており、2つのクラスを区別するようにSVMをトレーニングすることに興味があります。このための一つの適切なカーネルは、拡散カーネル、あるラプラシアンの及びチューニングパラメータです。G = (V、E)G=(V、E)G=(V,E)y私∈ { - 1 、1 }y私∈{−1、1}y_i\in\{-1,1\}K= exp(- βL )、K=exp⁡(−βL)、K=\exp(-\beta L),LLLGGGββ\beta SVMを調整するにはハイパーパラメーターを選択する必要があるため、を調整する必要があり通常、この問題には交差検証を使用しますが、から頂点を省略するとグラフ全体が変更され、場合によっては接続されているコンポーネントの数も増えるため、これは適切ではないようです。接続されているコンポーネントの数が変化すると、一部の頂点が他の頂点から到達できなくなり、当初とは非常に異なるデータセットに直面します。つまり、削除された頂点が欠落しているだけでなく、その頂点に隣接していたグラフ内の他のすべての頂点に関する情報も欠落しています。θ = (β、C)。θ=(β、C)。\theta=(\beta, C).私私iGGG私私ijjj 交差検証の基本的な概念は、新しいデータが表示されたときのモデルのパフォーマンスを概算したいというものです。標準的な問題では、テスト用のデータの一部を省略しても、残りのトレーニングデータの値は変わりません。ただし、グラフデータの場合、モデルがCV設定で「新しい」データを表示することの意味が明確ではありません。頂点またはエッジを省略すると、データが完全に変更される可能性があります。たとえば、スターグラフであるグラフを想像してください。1つの頂点には頂点から個の頂点があり、他のすべての頂点には1個のエッジがあります。中央の頂点を省略してトレーニングデータS= (VS、ES)S=(VS、ES)S=(V_S,E_S)kkkkkkkkkS∗S∗S^*グラフが完全に切断され、カーネル行列は対角になります!しかし、もちろん、提供されるこのトレーニングデータでモデルをトレーニングすることは可能です。あまり明確でないのは、結果のモデルのサンプル外のパフォーマンスをテストすることの意味です。のカーネルマトリックスを再計算し、それを予測のために提供しますか?S∗S∗S^*SSS または、代わりに、のカーネルマトリックス全体を計算し、必要に応じて行と列を省略してSVMの推定に使用されるカーネルマトリックスを生成することから始めますか?中央ノードを含めることは、すべての頂点が他のすべての頂点から到達可能であり、カーネルマトリックスが密であることを意味するため、これには独自の概念上の問題があります。この包含は、フォールド全体に情報漏えいがあり、交差検証出力にバイアスをかけることを意味しますか?一方で、省略された中央ノードはグラフを接続するため、省略された中央ノードに関するデータはまだ存在しています。一方、ラベルについては何も知りません。SSSSSS yyy このようにCVを実行することで、サンプルからの推定値がかなり偏りのないものになっていることを確認できます。 このタイプの問題のハイパーパラメータをどのように選択しますか?CVは不完全ですが許容できますか、それとも特別な方法が必要ですか?私のコンテキストではハイパーパラメータの調整はまったく可能ですか?

2
バックプロパゲーションを介してSVMをトレーニングする方法は?
バックプロパゲーションを使用してSVMをトレーニングする(たとえば、物事を簡単にするために線形のものにする)ことが可能かどうか疑問に思いましたか? 現在、分類器の出力を f(x;θ,b)=sgn(θ⋅x−(b+1))=sgn(g(x;θ,b))f(x;θ,b)=sgn(θ⋅x−(b+1))=sgn(g(x;θ,b)) f(\mathbf{x};\theta,b) = \text{sgn}(\theta\cdot\mathbf{x} - (b+1)) = \text{sgn}(g(\mathbf{x};\theta,b)) したがって、「後方パス」(伝播エラー)を計算して計算すると、 以降の誘導体は sgn(x)dsgn(x)∂E∂バツ= ∂E∂f(x ; θ 、b )∂f(x ; θ 、b )バツ= ∂E∂f(x ; θ 、b )∂sgn (g(x ; θ 、b ))∂g(x ; θ 、b )∂g(x ; θ 、b )∂バツ= δdsgn (z)dzθ= δ⋅ 0 ⋅ θ= 0∂E∂x=∂E∂f(x;θ,b)∂f(x;θ,b)x=∂E∂f(x;θ,b)∂sgn(g(x;θ,b))∂g(x;θ,b)∂g(x;θ,b)∂x=δdsgn(z)dzθ=δ⋅0⋅θ=0 \begin{align} \frac{\partial E}{\partial …

2
マルチクラス分類でのScikit SVMの出力は常に同じラベルを与える
私は現在、次のコードでScikit Learnを使用しています: clf = svm.SVC(C=1.0, tol=1e-10, cache_size=600, kernel='rbf', gamma=0.0, class_weight='auto') そして、7つの異なるラベルを持つデータのセットを当てはめて予測します。奇妙な出力が出ました。検証セットで予測ラベルを使用する相互検証手法に関係なく、常にラベル7になります。 完全なデフォルトパラメータ(svm.SVC())を含む他のいくつかのパラメータを試しますが、私が使用するカーネルメソッドがのrbf代わりにあるpolyか、linearそれが機能しない限り、polyおよびに対しては非常にうまく機能しlinearます。 その上、検証データの代わりに列車データの予測をすでに試みており、完全に適合しています。 誰かがこの種の問題を以前に見て、ここで何が起こっているのか知っていますか? 私はクラスの分布を詳細に見ることはありませんが、約30%は7、14%は4であるべきだと思います。 私は手動の1-vs-rest実装を試みても、まだ役に立ちません。

2
小さいサンプルサイズのデータ​​のトレーニング、交差検証、およびテストセットのサイズを選択するにはどうすればよいですか?
サンプルサイズが小さいと仮定します(例:N = 100、2つのクラス)。機械学習のトレーニング、相互検証、テストセットのサイズをどのように選択すればよいですか? 直感的に選ぶ トレーニングセットのサイズは50 相互検証セットサイズ25、および サイズを25としてテストします。 しかし、おそらくこれは多かれ少なかれ理にかなっています。これらの値を実際にどのように決定すればよいですか?別のオプションを試してみてもいいですか(あまり好ましくないと思いますが...過剰学習の可能性が高くなります)? 3つ以上のクラスがある場合はどうなりますか?

1
観測48で革新的な異常値をARIMAモデルに組み込むにはどうすればよいですか?
私はデータセットに取り組んでいます。いくつかのモデル識別手法を使用した後、私はARIMA(0,2,1)モデルを思いつきました。 R detectIOのパッケージの関数を使用して、元のデータセットの48回目の観測で革新的な外れ値(IO)TSAを検出しました。 この外れ値をモデルに組み込んで、予測に使用するにはどうすればよいですか?Rではそれから予測を行うことができない可能性があるため、ARIMAXモデルを使用したくありません。これを行う方法は他にありますか? これが私の値です。 VALUE <- scan() 4.6 4.5 4.4 4.5 4.4 4.6 4.7 4.6 4.7 4.7 4.7 5.0 5.0 4.9 5.1 5.0 5.4 5.6 5.8 6.1 6.1 6.5 6.8 7.3 7.8 8.3 8.7 9.0 9.4 9.5 9.5 9.6 9.8 10.0 9.9 9.9 9.8 9.8 9.9 9.9 9.6 9.4 …
10 r  time-series  arima  outliers  hypergeometric  fishers-exact  r  time-series  intraclass-correlation  r  logistic  glmm  clogit  mixed-model  spss  repeated-measures  ancova  machine-learning  python  scikit-learn  distributions  data-transformation  stochastic-processes  web  standard-deviation  r  machine-learning  spatial  similarities  spatio-temporal  binomial  sparse  poisson-process  r  regression  nonparametric  r  regression  logistic  simulation  power-analysis  r  svm  random-forest  anova  repeated-measures  manova  regression  statistical-significance  cross-validation  group-differences  model-comparison  r  spatial  model-evaluation  parallel-computing  generalized-least-squares  r  stata  fitting  mixture  hypothesis-testing  categorical-data  hypothesis-testing  anova  statistical-significance  repeated-measures  likert  wilcoxon-mann-whitney  boxplot  statistical-significance  confidence-interval  forecasting  prediction-interval  regression  categorical-data  stata  least-squares  experiment-design  skewness  reliability  cronbachs-alpha  r  regression  splines  maximum-likelihood  modeling  likelihood-ratio  profile-likelihood  nested-models 

1
2次元空間内の一連の点が与えられた場合、SVMの設計決定関数をどのように設計できますか
誰かがSVM決定関数の設計についてどう説明するか?または、具体的な例について説明しているリソースを参照してください。 編集 以下の例では、式X2=1.5X2=1.5X_2 = 1.5がクラスを最大マージンで分離していることがわかります。しかし、どうすれば超平面の重みを調整し、方程式を次の形式で記述できますか。 H1:w0+w1x1+w2x2≥1H2:w0+w1x1+w2x2≤−1forYi=+1forYi=−1.H1:w0+w1x1+w2x2≥1forYi=+1H2:w0+w1x1+w2x2≤−1forYi=−1.\begin{array}{ll} H_1 : w_0+w_1x_1+w_2x_2 \ge 1 & \text{for}\; Y_i = +1 \\ H_2 : w_0+w_1x_1+w_2x_2 \le -1 & \text{for}\; Y_i = -1.\end{array} より高い次元について考える前に、(視覚化するのが簡単であるため)2D空間で基礎となる理論を正しく理解しようとしています。 私はこれの解決策を考え出しましたこれが正しいかどうか誰かが確認できますか? 重みベクトルは(0、-2)で、W_0は3です H1:3+0x1−2x2≥1H2:3+0x1−2x2≤−1forYi=+1forYi=−1.H1:3+0x1−2x2≥1forYi=+1H2:3+0x1−2x2≤−1forYi=−1.\begin{array}{ll} H_1 : 3+0x_1-2x_2 \ge 1 & \text{for}\; Y_i = +1 \\ H_2 : 3+0x_1 -2x_2 \le -1 & \text{for}\; …
10 svm 

4
糖尿病のSVM分類の改善
私はSVMを使用して糖尿病を予測しています。この目的でBRFSSデータセットを使用しています。データセットの次元はであり、歪んでいます。ターゲット変数のs のパーセンテージはで、sは残りの構成します。11 %89 %432607×136432607×136432607 \times 136Y11%11%11\%N89%89%89\% データセットの独立変数の15うち、使用しているのは私だけです136。データセットを減らす理由の1つは、NAs を含む行が省略されたときにトレーニングサンプルを増やすことでした。 これらの15変数は、ランダムツリー、ロジスティック回帰などの統計的手法を実行し、結果のモデルからどの変数が重要であるかを見つけた後に選択されました。たとえば、ロジスティック回帰を実行した後p-value、最も重要な変数を並べ替えるために使用しました。 変数の選択を行う私の方法は正しいですか?への提案は大歓迎です。 以下は私のR実装です。 library(e1071) # Support Vector Machines #-------------------------------------------------------------------- # read brfss file (huge 135 MB file) #-------------------------------------------------------------------- y <- read.csv("http://www.hofroe.net/stat579/brfss%2009/brfss-2009-clean.csv") indicator <- c("DIABETE2", "GENHLTH", "PERSDOC2", "SEX", "FLUSHOT3", "PNEUVAC3", "X_RFHYPE5", "X_RFCHOL", "RACE2", "X_SMOKER3", "X_AGE_G", "X_BMI4CAT", "X_INCOMG", "X_RFDRHV3", "X_RFDRHV3", "X_STATE"); target <- "DIABETE2"; …

1
モデルの尤度がnullより有意に高くない場合の(GAM)回帰係数の有意性
私は、Rパッケージgamlssを使用して、データのゼロインフレベータ分布を想定して、GAMベースの回帰を実行しています。モデルには説明変数が1つしかないため、基本的には次のようになりますmymodel = gamlss(response ~ input, family=BEZI)。 アルゴリズムは、説明変数が平均(μ)に与える影響の係数と、k (input )= 0の関連するp値を次のように与えます。kkkμμ\muk (入力)= 0k(入力)=0k(\text{input})=0 Mu link function: logit Mu Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -2.58051 0.03766 -68.521 0.000e+00 input -0.09134 0.01683 -5.428 6.118e-08 上記の例でわかるように、仮説は高い信頼度で棄却されます。k (入力)= 0k(入力)=0k(\text{input})=0 次にnullモデルを実行null = gamlss(response ~ 1, family=BEZI)し、尤度比検定を使用して尤度を比較します。 p=1-pchisq(-2*(logLik(null)[1]-logLik(mymodel)[1]), df(mymodel)-df(null)). (上記のように)入力の係数が非常に有意であると報告されていても、多くの場合、になります。私はこれを非常に珍しいと思います-少なくとも、線形またはロジスティック回帰の経験では決して発生しませんでした(実際、これは、gamlssでゼロ調整されたガンマを使用しているときも発生しませんでした)。p > 0.05p>0.05p>0.05 私の質問は、これが当てはまる場合でも、応答と入力の間の依存関係を信頼できるかどうかです。

2
どのカーネルメソッドが最も確率の高い出力を提供しますか?
最近、SVM出力のPlattのスケーリングを使用して、デフォルトイベントの確率を推定しました。より直接的な代替手段は、「カーネルロジスティック回帰(KLR)」および関連する「インポートベクトルマシン」のようです。 確率出力を提供するどのカーネルメソッドが現在最先端であるか、誰かが知ることができますか?KLRのR実装は存在しますか? ご助力ありがとうございます!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.