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

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




1
xgboostがsklearn GradientBoostingClassifierよりもずっと速いのはなぜですか?
私は、100個の数値特徴を備えた50kの例で勾配ブースティングモデルをトレーニングしようとしています。XGBClassifier一方、私のマシンで43秒以内に、ハンドル500本の木、GradientBoostingClassifierハンドルのみ10樹木(!)1分2秒:(私は気にしませんでしたでは、それは時間がかかるだろうと500本の木を育てるしようとしている。私は、同じ使用していますlearning_rateし、max_depth設定を、 下記参照。 XGBoostがこれほど速くなったのはなぜですか?sklearnの人が知らない勾配ブースティングのためのいくつかの新しい実装を使用していますか?それとも、「角を切り」、より浅い木を育てるのですか? PS私はこの議論を知っています:https : //www.kaggle.com/c/higgs-boson/forums/t/10335/xgboost-post-competition-surveyが、そこに答えを得ることができませんでした... XGBClassifier(base_score=0.5, colsample_bylevel=1, colsample_bytree=1, gamma=0, learning_rate=0.05, max_delta_step=0, max_depth=10, min_child_weight=1, missing=None, n_estimators=500, nthread=-1, objective='binary:logistic', reg_alpha=0, reg_lambda=1, scale_pos_weight=1, seed=0, silent=True, subsample=1) GradientBoostingClassifier(init=None, learning_rate=0.05, loss='deviance', max_depth=10, max_features=None, max_leaf_nodes=None, min_samples_leaf=1, min_samples_split=2, min_weight_fraction_leaf=0.0, n_estimators=10, presort='auto', random_state=None, subsample=1.0, verbose=0, warm_start=False)
29 scikit-learn  xgboost  gbm  data-mining  classification  data-cleaning  machine-learning  reinforcement-learning  data-mining  bigdata  dataset  nlp  language-model  stanford-nlp  machine-learning  neural-network  deep-learning  randomized-algorithms  machine-learning  beginner  career  xgboost  loss-function  neural-network  software-recommendation  naive-bayes-classifier  classification  scikit-learn  feature-selection  r  random-forest  cross-validation  data-mining  python  scikit-learn  random-forest  churn  python  clustering  k-means  machine-learning  nlp  sentiment-analysis  machine-learning  programming  python  scikit-learn  nltk  gensim  visualization  data  csv  neural-network  deep-learning  descriptive-statistics  machine-learning  supervised-learning  text-mining  orange  data  parameter-estimation  python  pandas  scraping  r  clustering  k-means  unsupervised-learning 


4
XGBoostはそれ自体で多重共線性を処理しますか?
現在、21個の機能(約150個の機能のリストから選択)を含むデータセットでXGBoostを使用しており、ワンホットコーディングして〜98個の機能を取得しています。これらの98個の機能のいくつかは、いくらか冗長です。たとえば、変数(機能)はBとしても表示されます。AAAおよびCBABA\frac{B}{A}。CACA\frac{C}{A} 私の質問は: Boosted Decision Treesは多重共線性をどのように(If?)処理しますか? 多重共線性の存在が処理されない場合、予測にどのように影響しますか? 私が理解していることから、モデルは複数のツリーを学習しており、最終的な予測は個々の予測の「加重和」のようなものに基づいています。したがって、これが正しければ、Boosted Decision Trees は変数間の相互依存関係を処理できるはずです。 また、関連するメモ-XGBoostの変数重要度オブジェクトはどのように機能しますか?

3
未知の機能に対して機能エンジニアリングを実行する方法は?
私はkaggleコンテストに参加しています。データセットには約100個のフィーチャがあり、すべてが(実際にそれらが表すものに関して)不明です。基本的にそれらは単なる数字です。 これらの機能に対して多くの機能エンジニアリングが行われています。未知の機能に対してどのように機能エンジニアリングを実行できるのでしょうか?誰かがこれを理解するのを助けてもらえますか?また、未知の機能に対して機能エンジニアリングを実行する方法に関するヒントがありますか?

2
テキストの分類:異なる種類の機能の組み合わせ
私が取り組んでいる問題は、短いテキストを複数のクラスに分類することです。私の現在のアプローチは、tf-idf加重項頻度を使用し、単純な線形分類器(ロジスティック回帰)を学習することです。これはかなりうまく機能します(テストセットで約90%のマクロF-1、トレーニングセットで約100%)。大きな問題は、目に見えない単語/ n-gramです。 私は、他の機能、たとえば分布類似性(word2vecで計算)を使用して計算された固定サイズのベクトル、または例の他のカテゴリ機能を追加して、分類器を改善しようとしています。私の考えは、単語の袋からスパース入力フィーチャにフィーチャを追加するだけでした。ただし、これにより、テストおよびトレーニングセットのパフォーマンスが低下します。追加の機能自体は、テストセットで約80%のF-1を提供するため、不要ではありません。機能のスケーリングも役に立たなかった。私の現在の考えでは、この種の機能は(スパース)ワードオブワード機能とうまく混同されません。 質問は次のとおりです。追加機能が追加情報を提供すると仮定して、それらを組み込む最良の方法は何ですか?別々の分類子をトレーニングし、それらをある種のアンサンブル作業で組み合わせることができますか(これには、おそらく、異なる分類子の機能間の相互作用をキャプチャできないという欠点があります)。他に考慮すべき複雑なモデルはありますか?

4
機能の数とインスタンスの数に関する「経験則」はありますか?(小さなデータセット)
特徴の数と観測の数の発見的方法があるかどうか疑問に思っています。明らかに、特徴の数が観測の数に等しい場合、モデルはオーバーフィットします。スパースメソッド(LASSO、エラスティックネット)を使用することで、いくつかの機能を削除してモデルを削減できます。 私の質問は(理論的に):メトリックを使用してモデル選択を評価する前に、最適な特徴数を観測数に関連付ける経験的観測はありますか? たとえば、各クラスに20個のインスタンスがあるバイナリ分類問題の場合、使用する機能の数に上限はありますか?

2
ニューラルネットワークの機能を選択する方法は?
この質問に対する明確な答えはないことはわかっていますが、大量のデータを持つ巨大なニューラルネットワークがあり、入力に新しい機能を追加したいとします。「最良の」方法は、新しい機能を使用してネットワークをテストし、結果を確認することですが、機能が非常に役立つかどうかをテストする方法はありますか?相関測定(http://www3.nd.edu/~mclark19/learn/CorrelationComparison.pdf)などが好きですか?

5
シーボーンヒートマップを大きくする
corr()元のdfからdf を作成します。corr()DFは、70 X 70から出てきたし、ヒートマップを可視化することは不可能です... sns.heatmap(df)。を表示しようとするcorr = df.corr()と、テーブルが画面に収まらず、すべての相関関係を確認できます。dfサイズに関係なく全体を印刷する方法ですか、ヒートマップのサイズを制御する方法ですか?
16 visualization  pandas  plotting  machine-learning  neural-network  svm  decision-trees  svm  efficiency  python  linear-regression  machine-learning  nlp  topic-model  lda  named-entity-recognition  naive-bayes-classifier  association-rules  fuzzy-logic  kaggle  deep-learning  tensorflow  inception  classification  feature-selection  feature-engineering  machine-learning  scikit-learn  tensorflow  keras  encoding  nlp  text-mining  nlp  rnn  python  neural-network  feature-extraction  machine-learning  predictive-modeling  python  r  linear-regression  clustering  r  ggplot2  neural-network  neural-network  training  python  neural-network  deep-learning  rnn  predictive-modeling  databases  sql  programming  distribution  dataset  cross-validation  neural-network  deep-learning  rnn  machine-learning  machine-learning  python  deep-learning  data-mining  tensorflow  visualization  tools  sql  embeddings  orange  feature-extraction  unsupervised-learning  gan  machine-learning  python  data-mining  pandas  machine-learning  data-mining  bigdata  apache-spark  apache-hadoop  deep-learning  python  convnet  keras  aggregation  clustering  k-means  r  random-forest  decision-trees  reference-request  visualization  data  pandas  plotting  neural-network  keras  rnn  theano  deep-learning  tensorflow  inception  predictive-modeling  deep-learning  regression  sentiment-analysis  nlp  encoding  deep-learning  python  scikit-learn  lda  convnet  keras  predictive-modeling  regression  overfitting  regression  svm  prediction  machine-learning  similarity  word2vec  information-retrieval  word-embeddings  neural-network  deep-learning  rnn 

3
ニューラルネットワークのトレーニングのためにカテゴリ型入力機能と連続入力機能を組み合わせる方法
カテゴリー型と連続型の2種類の入力特徴があるとします。カテゴリカルデータはワンホットコードAとして表すことができますが、連続データはN次元空間の単なるベクトルBです。A、Bはまったく異なる種類のデータであるため、単にconcat(A、B)を使用することは適切な選択ではないようです。たとえば、Bとは異なり、Aには番号順がありません。私の質問は、このような2種類のデータをどのように組み合わせるか、またはそれらを処理する従来の方法があるかどうかです。 実際、私は写真に示されているような素朴な構造を提案しています ご覧のように、最初のいくつかのレイヤーは、データAを連続空間の中間出力に変更(またはマップ)するために使用され、データBと連結されて、後のレイヤーの連続空間で新しい入力フィーチャを形成します。それが妥当なのか、それとも単なる「試行錯誤的な」ゲームなのか。ありがとうございました。

4
重要な属性を指定する方法は?
多くのデータソースで構成される、緩やかに構造化されたデータのセット(Webテーブル/リンクされたオープンデータなど)を想定します。データが後に続く共通のスキーマはなく、各ソースは同義語属性を使用して値を記述することができます(例:「国籍」対「bornIn」)。 私の目標は、それらが記述するエンティティを何らかの形で「定義」する「重要な」属性を見つけることです。そのため、そのような属性に同じ値が見つかった場合、2つの説明が同じエンティティ(たとえば、同じ人物)についてである可能性が最も高いことがわかります。 たとえば、属性「lastName」は、属性「nationality」よりも差別的です。 他のどの属性よりも重要な属性を(統計的に)見つけることができますか? 単純な解決策は、各属性の値の平均IDFを取得し、これを属性の「重要」要素にすることです。同様のアプローチは、各属性に表示される個別の値の数をカウントすることです。 機械学習で機能という用語または属性選択を見てきましたが、残りの属性を破棄したくはありません。最も重要な属性に高い重みを付けたいだけです。

4
高度にバイアスされたデータセットを使用してツリーアンサンブルをトレーニングすることの意味は何ですか?
バイアスの高いバイナリデータセットがあります。ポジティブクラスよりもネガティブクラスの例が1000倍多くあります。このデータでツリーアンサンブル(エクストラランダムツリーやランダムフォレストなど)をトレーニングしたいのですが、ポジティブクラスの十分な例を含むトレーニングデータセットを作成するのは困難です。 層化されたサンプリングアプローチを行って、肯定的な例と否定的な例の数を正規化することの意味は何でしょうか 言い換えると、たとえば、トレーニングセット内の肯定的なクラスの例の数を人為的に(リサンプリングによって)膨らませることは悪い考えですか?

5
機能選択と機能抽出。いつ使用しますか?
特徴抽出と特徴選択は、データの次元を本質的に減らしますが、私が正しいなら、特徴抽出はデータをより分離可能にします。 どの技術が他よりも優先されますか? 機能選択は元のデータとそのプロパティを変更しないため、トレーニング中の機能を変更しないことが重要である場合は、機能選択を使用すると想定しています。しかし、なぜこのようなものが欲しいのか想像できません。

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