タグ付けされた質問 「random-forest」

ランダムフォレストは、各ツリーの変数のランダムサブセットを選択し、最も頻度の高いツリー出力を全体的な分類として使用することに基づく機械学習分類器です。

6
決定木/ランダムフォレストの機能としての文字列
決定木/ランダムフォレストのアプリケーションでいくつかの問題を行っています。機能として数字と文字列(国名など)を持つ問題を解決しようとしています。ライブラリであるscikit-learnは、パラメータとして数字のみを使用しますが、文字列を注入するだけでなく、かなりの知識が必要です。 このようなシナリオをどのように処理しますか? Pythonのハッシュなどのメカニズムにより、文字列を数値に変換できます。しかし、決定木問題で文字列を処理する方法に関するベストプラクティスを知りたいと思います。

7
ValueError:入力にNaN、無限大、またはdtype( 'float32')には大きすぎる値が含まれています
RandomForestモデルを使用してテストデータを予測すると、ValueErrorが発生しました。 私のコード: clf = RandomForestClassifier(n_estimators=10, max_depth=6, n_jobs=1, verbose=2) clf.fit(X_fit, y_fit) df_test.fillna(df_test.mean()) X_test = df_test.values y_pred = clf.predict(X_test) エラー: ValueError: Input contains NaN, infinity or a value too large for dtype('float32'). テストデータセットで不適切な値を見つけるにはどうすればよいですか?また、これらのレコードを削除したくないのですが、平均値または中央値に置き換えることはできますか? ありがとう。

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
SVMでランダムフォレストを使用する場合とその逆の場合
いつRandom Forest、SVMまたはその逆を使用しますか? cross-validationモデルの比較はモデル選択の重要な側面であることを理解していますが、ここでは、2つの方法の経験則と経験則について詳しく学びたいと思います。 分類器の微妙さ、長所、短所、およびそれぞれに最適な問題を誰かが説明できますか?

3
MultiOutputClassifierからpredict_probaを理解する
scikit-learn Webサイトでこの例をフォローして、ランダムフォレストモデルでマルチ出力分類を実行しています。 from sklearn.datasets import make_classification from sklearn.multioutput import MultiOutputClassifier from sklearn.ensemble import RandomForestClassifier from sklearn.utils import shuffle import numpy as np X, y1 = make_classification(n_samples=5, n_features=5, n_informative=2, n_classes=2, random_state=1) y2 = shuffle(y1, random_state=1) Y = np.vstack((y1, y2)).T forest = RandomForestClassifier(n_estimators=10, random_state=1) multi_target_forest = MultiOutputClassifier(forest, n_jobs=-1) multi_target_forest.fit(X, Y).predict(X) print(multi_target_forest.predict_proba(X)) これからpredict_proba、2つの5x2配列を取得します。 …

3
なぜXGBoostとランダムフォレストが必要なのですか?
いくつかの概念については明確ではありませんでした。 XGBoostは、弱い学習者を強い学習者に変換します。これを行う利点は何ですか?多くの弱学習器を組み合わせるだけではなく単一のツリーを使用していますか? ランダムフォレストはツリーを作成するために、木から様々なサンプルを使用しています。だけではなく、単数形の木を使用して、この方法の利点は何ですか?

4
ランダムフォレストはオーバーフィットしますか?
私はランダムフォレストについて読んでいますが、過剰適合の問題に関する明確な答えを見つけることができません。ブライマンの元の論文によると、森の中の木の数を増やしても過剰適合すべきではありませんが、これについてはコンセンサスがないようです。これにより、この問題に関するかなりの混乱が生じています。 私よりも専門家が具体的な答えをくれたり、問題をよりよく理解するために正しい方向を教えてくれるかもしれません。

3
ランダムフォレストを使用したモデリングには相互検証が必要ですか?
私が見た限りでは、これについて意見が異なる傾向があります。最善の方法は、クロス検証を使用することです(特に、同じデータセット上のRFと他のアルゴリズムを比較する場合)。一方、元のソースは、モデルトレーニング中にOOBエラーが計算されるという事実は、テストセットのパフォーマンスの指標として十分であると述べています。Trevor Hastieでさえ、比較的最近の講演で「ランダムフォレストは無料の相互検証を提供する」と述べています。直感的に、1つのデータセットでRFベースのモデルをトレーニングして改善しようとする場合、これは理にかなっています。 誰かがランダムフォレストとの交差検証の必要性に対する賛成論と反対論を並べてください。

2
分類器の精度を上げる方法は?
OpenCV letter_recog.cppの例を使用して、ランダムツリーやその他の分類子を実験しています。この例には、ランダムツリー、ブースティング、MLP、kNN、単純ベイズ、SVMの6つの分類子が実装されています。20000のインスタンスと16の機能を備えたUCI文字認識データセットが使用されます。これをトレーニングとテストのために半分に分割しました。SVMの経験があるため、その認識エラーをすばやく3.3%に設定しました。いくつかの実験の後、私が得たのは: UCI文字認識: RTrees-5.3% ブースト-13% MLP-7.9% kNN(k = 3)-6.5% ベイズ-11.5% SVM-3.3% 使用されるパラメーター: RTrees-max_num_of_trees_in_the_forrest = 200、max_depth = 20、min_sample_count = 1 ブースト-boost_type = REAL、weak_count = 200、weight_trim_rate = 0.95、max_depth = 7 MLP-method = BACKPROP、param = 0.001、max_iter = 300(デフォルト値-実験するには遅すぎる) kNN(k = 3)-k = 3 ベイズ-なし SVM-RBFカーネル、C = 10、ガンマ= 0.01 その後、同じパラメーターを使用し、最初に勾配フィーチャ(ベクトルサイズ200要素)を抽出して、DigitsおよびMNISTデータセットでテストしました。 数字: RTrees-5.1% ブースト-23.4% MLP-4.3% …

5
バイナリ分類アルゴリズムを選択
バイナリ分類の問題があります: トレーニングセットの約1000サンプル バイナリ、数値、カテゴリを含む10の属性 このタイプの問題に最適なアルゴリズムはどれですか? デフォルトでは、比較的クリーンでノイズのないデータに最適であると考えられているため、SVM(名目上の属性値がバイナリフィーチャに変換された予備)から開始します。

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 

1
層別サンプリングは必要ですか(ランダムフォレスト、Python)?
Pythonを使用して、不均衡なデータセットでランダムフォレストモデルを実行します(ターゲット変数はバイナリクラスでした)。トレーニングデータセットとテストデータセットを分割するとき、階層化されたサンプリング(表示されているコードなど)を使用するかどうかに苦労しました。これまでのところ、プロジェクトで層別化されたケースがより高いモデルのパフォーマンスにつながることを観察しました。しかし、現在のデータセットとターゲットクラスの分布が非常に異なる可能性が高い新しいケースを予測するためにモデルを使用すると思います。そこで、私はこの制約を緩め、階層化されていないスプリットを使用する傾向がありました。誰でもこの点を明確にするためにアドバイスできますか? train,test=train_test_split(myDataset, test_size=0.25, stratify=y)

1
RandomForestClassifier OOBスコアリングメソッド
scikit-learnでのランダムフォレストの実装は、スコアリング方法として平均精度を使用して、out-of-bagサンプルで一般化エラーを推定しますか?これはドキュメントには記載されていませんが、score()メソッドは平均精度を報告します。 非常に不均衡なデータセットがあり、グリッド検索のスコアリングメトリックとしてROCのAUCを使用しています。OOBサンプルでも同じスコアリング方法を使用するように分類子に指示する方法はありますか?

1
ランダムフォレストを使用してサンプリングするフィーチャの数
Wikipediaのページ引用符「統計的学習の要素は、」言います: 通常、特徴を持つ分類問題の 場合、各分割で特徴が使用されます。ppp⌊p–√⌋⌊p⌋\lfloor \sqrt{p}\rfloor 私はこれがかなり良い教育された推測であり、おそらく経験的証拠によって確認されたことを理解していますが、平方根を選ぶ他の理由はありますか?そこで起こっている統計現象はありますか? これは何らかの形でエラーの分散を減らすのに役立ちますか? これは回帰と分類で同じですか?

5
scikit-learnランダムフォレストの機能の重要性は非常に高い標準偏差を示しています
私はscikit-learn Random Forest Classifierを使用しており、この例のように機能の重要度をプロットします。 ただし、機能の重要度の標準偏差は、機能の重要度自体よりも常に大きいという意味で、私の結果は完全に異なります(添付画像を参照)。 このような動作をすることは可能ですか、それをプロットするときにいくつかの間違いをしていますか? 私のコードは次のとおりです。 import matplotlib.pyplot as plt import numpy as np import pandas as pd from sklearn.ensemble import RandomForestClassifier clf = RandomForestClassifier() clf.fit(predictors.values, outcome.values.ravel()) importance = clf.feature_importances_ importance = pd.DataFrame(importance, index=predictors.columns, columns=["Importance"]) importance["Std"] = np.std([tree.feature_importances_ for tree in clf.estimators_], axis=0) x = range(importance.shape[0]) y = importance.ix[:, …

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