タグ付けされた質問 「feature-selection」

さらなるモデリングで使用する属性のサブセットを選択する方法と原則

3
Matlabでの相互情報量を使用した特徴選択
これらの講義ノート(5ページ)で説明されているように、相互情報のアイデアを機能選択に適用しようとしています。 私のプラットフォームはMatlabです。経験的データから相互情報量を計算するときに私が見つける1つの問題は、数値が常に上向きにバイアスされることです。Matlab CentralでMIを計算するために約3〜4種類のファイルを見つけましたが、独立したランダム変数を入力すると、それらはすべて大きな数値(> 0.4など)を示します。 私は専門家ではありませんが、MIを計算するために単に結合密度と限界密度を使用する場合、MIは定義上正であるため、プロセスにバイアスが導入されるという問題があるようです。相互情報を正確に推定する方法について実用的なアドバイスはありますか? 関連する質問は、実際には、実際にMIを使用して機能を選択する方法ですか。MIは理論上無制限なので、しきい値をどのように考案するかは私には明らかではありません。または、人々は単にMIによって機能をランク付けし、上位kの機能を採用しますか?

1
非常に大きな時系列データセットを処理する
非常に大きなデータセットにアクセスできます。データは、4つのジャンルのうちの1つからの、音楽の抜粋を聞いている人々のMEGレコーディングからのものです。データは次のとおりです。 6科目 3実験の繰り返し(エポック) エポックあたり120回の試行 275 MEGチャネルから500Hz(= 4000サンプル)で試行あたり8秒のデータ したがって、ここでの各「例」はサイズ[4000x275]の行列であり、そのような例は2160あり、これは特徴抽出の前です。目標は、脳の信号に基づいてジャンルを予測することです(4クラス分類)。 明らかに、ここにはいくつかの挑戦的な問題があります。 データセットがメモリに収まりません データには強い時間的相関があり、被験者間の変動は非常に大きくなります。その結果、データを分割する方法は明らかではありません S / N比が非常に低い 分類子の正しい機能が何であるかは明らかではありません これらを順番に取ります: できることはいろいろあります。まず、ナイキスト制限を考慮しても、100Hzを超えると脳の活動が実際に発生しないため、500Hzから〜200Hzに安全にダウンサンプリングできます。一連のチャネルからサブサンプリングすることもできます(たとえば、聴覚領域の中心)が、関心のある他の領域(前頭など)でアクティビティが発生する可能性があるため、これを先験的に行うことは避けます。時間枠の一部を削除することもできます。おそらく、最初の2つだけがタスクにとって重要ですか?それは本当に知られていない。もちろん、誰もが「叫び次元削減を! "ですが、それも簡単なことではありません。最初に、トレーニング/テストの分割(2を参照)に非常に注意する必要があり、これを機能の生成前または後に行うかどうかも明確ではありません。次に、高価なもの以外相互検証、または骨の折れる目視検査では、適切な方法または適切な次元数のいずれかを選択する明白な方法はありません。もちろん、PCA、ICA、またはランダムな投影法などを使用して、最善の結果を期待できます。 これはトリッキーです。トレーニングセットに連続するサンプルがある場合、トレーニングセットにオーバーフィットする可能性があります。一方、連続するサンプルがトレーニングセットとテストセットに分割される場合、トレーニングセットにアンダーフィットする可能性がありますが、テストセットにオーバーフィットする可能性があります。ここにはさまざまなオプションがあるようです: 単一主題分類。個々の主題を自分で取り、時代に応じて分割します。私たちは脳全体を予測しようとしているわけではないので、これは最も簡単な作業です。この中で、クロス検証のために2つの残りのエポックを使用できます。完全を期すために、すべての組み合わせをローテーションする必要があります。すべての被験者の平均精度を報告します。もちろん、これらのモデルが一般化することはまったく期待できません。 被験者分類内。一緒にすべての主題を取り、時代に従って分割します。これは、トレーニング中のすべての被験者を見てきたので、実際には最も簡単な作業かもしれません。ただし、モデルが新しい主題にうまく一般化するとは思わないでしょう。この中で、クロス検証のために2つの残りのエポックを使用できます。完全を期すために、すべての組み合わせをローテーションする必要があります。 被験者間分類。「Leave-one-out」とも呼ばれ、1人の被験者がテストデータとして使用され、残りはトレーニングに使用されます。次に、すべての主題を回転させます。次に、被験者に対して交差検証が実行されます。毎回「新しい脳」を予測しようとしているので、これははるかに困難な作業になると予想します。ここでは、テストと再テストの信頼性(つまり、時間的相関によってどれだけ過剰適合が引き起こされるか)の問題がありますが、モデルはより大きな母集団にうまく一般化すると予想されます。 これは古典的な「干し草の中の針」の問題です。音楽ジャンルの認識やジャンル固有の処理に関連する実際の信号は、脳内の活動の「スープ」と比較するとごくわずかです。部分的にしか削除できない顕著なアーティファクトもあります(主に移動に関連)。データから派生した機能、およびデータの処理方法は、対象の信号の一部を破壊しないようにする必要があります。 ここでは、さまざまなことを想像できます。1つ目は、生のデータ(ベクターに連結されたもの)を特徴ベクトルとして使用することです。それがどれほど実り多いかはわかりませんが、これらのベクトルはおそらく本質的に一様にランダムであると思います。これは実際には信号処理の問題ですが、従うことができるいくつかの一般的なガイドラインがあります。1つは、スライディングウィンドウ上で標準のフーリエ解析を実行することです。ここから、コンポーネントを個別の周波数帯域(アルファ/ベータ/ガンマなど)に分割でき、これらの統計(平均、標準偏差)を機能として使用できます。または、ウェーブレットやヒルベルト変換を使用したり、混沌としたアトラクタを探したりすることもできます。もちろん、順列の数を増やすカーネル(線形、多項式、RBFなど)を選択できます。おそらく、ここで行う最善の方法は、できるだけ多くの異なる機能セットを生成し、MKLまたはブースティングメソッドを使用してそれらを組み合わせることです。 この種類のデータセットにどのように取り組みますか(特にこのデータセットでない場合)?途中で見逃したことはありますか?研究者の時間と計算リソースに限りなく費やすことなく、成功する可能性が最も高い戦略は何ですか?

4
Rで変数/機能の選択を行うために相互検証を使用する方法はありますか?
削減したい約70の変数を含むデータセットがあります。私が探しているのは、次の方法でCVを使用して最も有用な変数を見つけることです。 1)ランダムに言う20変数を選択します。 2)stepwise/ LASSO/ lars/ etcを使用して、最も重要な変数を選択します。 3)〜50xを繰り返し、どの変数が最も頻繁に選択されている(削除されていない)かを確認します。 これはa randomForestが何をするかという線に沿っていrfVarSelますが、パッケージは因子/分類に対してのみ機能するようであり、連続従属変数を予測する必要があります。 私はRを使用しているので、あらゆる提案が理想的にそこで実装されます。

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
機能の冗長性を定量化する方法は?
分類の問題を解決するために使用する3つの機能があります。元々、これらの機能はブール値を生成したので、正と負の分類のセットがどれだけ重複しているかを調べることで、それらの冗長性を評価できました。代わりに、実際の値(スコア)を生成するように機能を拡張しました。それらの冗長性をもう一度分析したいと思いますが、その方法について完全に途方に暮れています。誰かが私にそれについてどうやって進むべきかについてのポインタやアイデアを提供できますか? 私はこの質問が非常に曖昧であることを知っています、それは私が統計をあまり強く理解していないからです。ですから、答えがわからない場合は、私の理解を深めるのに役立つ質問があるかもしれません。 編集:私は現在、主題についてウィキペディアを閲覧していますが、私が欲しいのは相関係数であると感じていますが、これが正しいアプローチであるかどうか、そして多くの利用可能な係数のうちどれが適切であるかはまだわかりません。 編集2:ブール値の場合、私は最初に各機能に対して、それが真実であるサンプルのセットを作成しました。次に、2つのフィーチャ間の相関は、これらのセットの和集合のサイズに対するこれらのセットの交差のサイズでした。この値が1の場合、常に同じであるため、完全に冗長になります。0の場合、同じになることはありません。

2
機能選択にのみLASSOを使用する
l1l1l_1 私の質問:人々は通常、機能選択を行うためだけにLASSOモデルを使用しますか(そして、それらの機能を別の機械学習モデルにダンプします)、または通常、機能選択と実際の回帰の両方を実行するためにLASSOを使用しますか? l1l1l_1l2l2l_2l1l1l_1l2l2l_2 回帰とは別に、これは分類タスク(SVM、ニューラルネットワーク、ランダムフォレストなどを使用)を実行する際の賢明な戦略ですか?

3
ロジスティック回帰のランキング機能
私はロジスティック回帰を使用しました。6つの機能があります。他の機能よりも結果に影響を与えるこの分類子の重要な機能を知りたいです。Information Gainを使用しましたが、使用する分類子に依存しないようです。特定の分類子(ロジスティック回帰など)に基づいて機能を重要度に従ってランク付けする方法はありますか?任意の助けをいただければ幸いです。

2
ノンパラメトリック回帰の特徴選択の最良の方法
初心者向けの質問はこちら。私は現在、Rのnpパッケージを使用してノンパラメトリック回帰を実行しています。7つの機能と、ブルートフォースアプローチを使用して、ベスト3を特定しました。 私の質問は、ノンパラメトリック回帰の特徴選択の現在の最良の方法は何ですか?そして、パッケージがメソッドを実装している場合。ありがとうございました。


3
scikit learnを使用した特徴選択後のフィルターされた特徴の識別
Pythonの特徴選択方法のコードは次のとおりです。 from sklearn.svm import LinearSVC from sklearn.datasets import load_iris iris = load_iris() X, y = iris.data, iris.target X.shape (150, 4) X_new = LinearSVC(C=0.01, penalty="l1", dual=False).fit_transform(X, y) X_new.shape (150, 3) しかし、新しいX(依存変数-X_new)を取得した後、どの変数が削除され、どの変数がこの新しい更新された変数で考慮されるかをどのようにして知ることができますか?(どれが削除されたか、どれがデータに存在するか。) この識別情報を取得するのは、新しいテストデータに同じフィルタリングを適用するためです。


3
従属変数との相関が低い独立変数は有意な予測因子になることができますか?
8つの独立変数と1つの従属変数があります。私は相関行列を実行しましたが、そのうちの5つはDVとの相関が低くなっています。次に、段階的多重回帰を実行して、IVの一部またはすべてがDVを予測できるかどうかを確認しました。回帰は、2つのIVだけがDVを予測できることを示し(ただし、分散の約20%しか説明できない)、SPSSはモデルから残りを削除しました。私の監督者は、相関の強さが原因で、回帰モデルでより多くの予測子を見つけるべきだったため、回帰を正しく実行していないと考えています。しかし、相関関係は小さかったので、私の質問は次のとおりです。IVとDVがほとんど相関しない場合でも、IVは依然としてDVの優れた予測因子になり得ますか?

3
ロジスティック回帰モデルの正しい方法で予測子を減らす方法
現在の状況では、バイナリ応答データに基づいてロジスティックモデルを実行する必要があるため、モデリング(特にハレルの「回帰モデリング戦略」)に関する本(またはその一部)を読んでいます。データセットに、連続データ、カテゴリデータ、およびバイナリデータ(予測子)の両方があります。基本的に、私は現在約100の予測子を持っていますが、これは優れたモデルには明らかに多すぎます。また、これらの予測子の多くは、多少は異なりますが、同じメトリックに基づいていることが多いため、一種の関連性があります。 とにかく、一変量回帰と段階的手法を使用して私が読んでいることは、予測変数の量を減らすために実行できる最悪のことです。LASSOテクニックは(私がそれを正しく理解していれば)非常に大丈夫だと思いますが、明らかに100の予測子でそれを使用することはできません。 だからここで私の選択肢は何ですか?私は本当に座って、すべての上司、職場の賢い人々と話をし、トップ5の最良の予測因子が何である/するべきか(私たちは間違っているかもしれません)、またはどのアプローチが必要かについて本当に考えなければなりませんか?代わりに検討しますか? そして、はい、このトピックについてはオンラインと本でかなり議論されていることも知っていますが、このモデリング分野に少し慣れていないと、少し圧倒されるように見えることがあります。 編集: まず第一に、私のサンプルサイズは+1000人の患者であり(これは私の分野ではたくさんあります)、そのうち70-170の肯定的な応答があります(つまり、はいの応答が170であるのに対し、ケースの1つではおよそ900の応答がありません)。 。 基本的には、考えは放射線治療後の毒性を予測することです。予想されるバイナリレスポンスデータがいくつかあり(つまり、毒性があるか(1)、ないか(0))、いくつかのタイプのメトリックがあります。一部のメトリックは患者固有のものです。たとえば、年齢、使用する薬物、臓器とターゲットのボリューム、糖尿病などです。次に、ターゲットのシミュレーションされた治療フィールドに基づいたいくつかの治療固有のメトリックがあります。ほとんどの毒性は、受けた放射線(iedose)の量と非常に相関しているので、そのことから、私の分野でよく関連するいくつかの予測因子を取得できます。たとえば、私が肺腫瘍を治療する場合、ある程度の線量で心臓を打つリスクがあります。次に、心臓容積のx量がx量の投与を受ける量を計算できます。t始めに1つを選択するだけです(これは、過去の実験がもちろん試みたものであり、私が望んでいることでもあります)。これは、心臓毒性の間で実際に大きな相関がある程度を「正確に」知る必要があるためです。と体積線量(ここでも、例として、同じ戦略が適用される他の同様のメトリックがあります)。ええ、そうです、私のデータセットはこのようになっています。いくつかの異なるメトリック、およびいくぶん類似したいくつかのメトリック。t始めに1つを選択するだけです(これは、過去の実験がもちろん試みたものであり、私が望んでいることでもあります)。これは、心臓毒性の間で実際に大きな相関がある程度を「正確に」知る必要があるためです。と体積線量(ここでも、例として、同じ戦略が適用される他の同様のメトリックがあります)。ええ、そうです、私のデータセットはこのようになっています。いくつかの異なるメトリック、およびいくぶん類似したいくつかのメトリック。s私のデータセットがどのように見えるかということです。いくつかの異なるメトリック、およびいくぶん類似したいくつかのメトリック。s私のデータセットがどのように見えるかということです。いくつかの異なるメトリック、およびいくぶん類似したいくつかのメトリック。 次に、予測モデルを作成して、どの患者が何らかの毒性を受けるリスクがあるかを予測できるようにしたいと思います。そして、応答データはバイナリであるため、私の主なアイデアはもちろんロジスティック回帰モデルを使用することでした。少なくともそれは、私の分野で他の人々が行ったことです。ただし、既に行われているこれらの論文の多くを読んでいると、いくつかの問題が正しくないように見えます(少なくともF.ハレルのような特定のタイプのモデリングに関する本を読んでいるとき)。多くの場合、単変量回帰分析を使用して予測子を選択し、多変量分析で使用します(私が誤解していない場合はお勧めしません)。また、予測子の量を減らすために段階的な手法を使用することもあります。もちろん、すべてが悪いわけではありません。LASSO、PCA、相互検証、ブートストラップなどを多く使用していますが、私が見てきたものは、 機能の選択に関しては、これがおそらく私が今いるところです。モデルで使用する適切な予測子を選択/検索するにはどうすればよいですか?私はこれらの単変量/段階的アプローチを試しましたが、毎回「それが間違っているのに、なぜそうするのか?」しかし、おそらくそれは、少なくとも最終的には、「良いモデル」がどのようにして正しい方法を行ったかが「悪いモデル」が間違った方法で行われたかを示す良い方法かもしれません。ですから、おそらくやや間違った方法でそれを行うことができるでしょう。私が助けを必要としているのは、正しい方法でそれを行う方向を取得することです。 編集してすみません、それはとても長いです。 編集2: 私のデータがどのように見えるかの簡単な例: 'data.frame': 1151 obs. of 100 variables: $ Toxicity : Factor w/ 2 levels "0","1": 2 1 1 1 1 1 1 1 1 1 ... $ Age : num 71.9 64 52.1 65.1 63.2 ... $ Diabetes …

3
ベイジアンモデルの選択と信頼できる区間
3つの変数を含むデータセットがあり、すべての変数は量的変数です。それを、x 1、x 2と呼びましょう。私はMCMCを介してベイジアンの視点で回帰モデルをフィッティングしていますyyyx1x1x_1x2x2x_2rjags 私は探索的分析を行い、散布図は、2次項を使用する必要があることを示唆しています。それから私は2つのモデルを取り付けましたy×x2y×x2y\times x_2 (1)y=β0+β1∗x1+β2∗x2y=β0+β1∗x1+β2∗x2y=\beta_0+\beta_1*x_1+\beta_2*x_2 (2)y=β0+β1∗x1+β2∗x2+β3∗x1x2+β4∗x21+β5∗x22y=β0+β1∗x1+β2∗x2+β3∗x1x2+β4∗x12+β5∗x22y=\beta_0+\beta_1*x1+\beta_2*x_2+\beta_3*x_1x_2+\beta_4*x_1^2+\beta_5*x_2^2 モデル1では、各パラメーターの効果サイズは小さくなく、95%の信頼できる間隔には値が含まれていません。000 モデル2のパラメータの効果の大きさは、及びβ 4が小さいものであり、全てのパラメータの信頼区間のそれぞれに含まれる0。β3β3\beta_3β4β4\beta_4000 信頼できる間隔にが含まれているという事実は、パラメーターが重要ではないと言うのに十分ですか?000 次に、次のモデルを調整しました (3)y=β0+β1∗x1+β2∗x2+β3∗x22y=β0+β1∗x1+β2∗x2+β3∗x22y=\beta_0+\beta_1*x_1+\beta_2*x_2+\beta_3*x^2_2 β1β1\beta_1000 ベイジアン統計で変数選択を行う正しい方法はどれですか? log(σ)=−δδXlog(σ)=−δδXlog(\sigma)=-\pmb{\delta}Xδδδδ\pmb{\delta}δδδδ\pmb{\delta} βjβj\beta_jδjδj\delta_j ガウスモデルの推定値は次のとおりです。 Mean SD Naive SE Time-series SE B[1] -1.17767 0.07112 0.0007497 0.0007498 B[2] -0.15624 0.03916 0.0004128 0.0004249 B[3] 0.15600 0.05500 0.0005797 0.0005889 B[4] 0.07682 0.04720 0.0004975 0.0005209 delta[1] -3.42286 0.32934 0.0034715 0.0034712 delta[2] …

3
ディープラーニングを使用した特徴選択?
ディープモデルを使用して各入力フィーチャの重要度を計算したい。 しかし、深層学習を使用した特徴選択についての論文は1つしか見つかりませんでした- 深部特徴選択。最初の非表示レイヤーの前に、各フィーチャに直接接続されたノードのレイヤーを挿入します。 ディープ・ビリーフ・ネットワーク(DBN)もこのような仕事に使えると聞きました。しかし、DBNはPCAのような機能の抽象化(クラスター)しか提供しないと思うので、次元を効果的に削減できますが、各機能の重要度(重み)を計算できるかどうか疑問に思います。 DBNで機能の重要度を計算することは可能ですか?また、ディープラーニングを使用して特徴を選択する他の既知の方法はありますか?

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