タグ付けされた質問 「scikit-learn」

Scikit-learnは、機械学習、データマイニング、データ分析のためのシンプルで効率的なツールで構成されるPythonモジュールです。NumPy、SciPy、およびmatplotlibに基づいて構築されています。3-Clause BSDライセンスの下で配布されています。

2
scikit-learnでハイパーパラメーターを最適化する最も効率的な方法は何ですか?
scikit-learnのハイパーパラメータ最適化プロセスの概要はこちらです。 徹底的なグリッド検索は、モデルに最適なハイパーパラメーターのセットを見つけます。欠点は、徹底的なグリッド検索が遅いことです。 ランダム検索はグリッド検索より高速ですが、分散が不必要に高くなります。 他のパッケージには、scikit-optimize、auto-sklearn、scikit-hyperbandなどの追加の戦略もあります。 scikit-learnでハイパーパラメーターを最適化するための最も効率的な(合理的なパフォーマンスのパラメーターをすばやく見つける)方法は何ですか? 理想的には、ベンチマークを使用してコード例を実行したいと思います。

2
scikitのmax_depthは、決定木の枝刈りと同等ですか?
決定木を使って作成した分類器を分析していました。scikitのディシジョンツリーには、max_depthというチューニングパラメータがあります。これは決定木の枝刈りに相当しますか?そうでない場合、scikitを使用してディシジョンツリーをプルーニングするにはどうすればよいですか? dt_ap = tree.DecisionTreeClassifier(random_state=1, max_depth=13) boosted_dt = AdaBoostClassifier(dt_ap, random_state=1) boosted_dt.fit(X_train, Y_train)

3
数学の畳み込みとCNNの関係
畳み込みの説明を読んである程度理解しました。誰かがこの操作がたたみ込みニューラルネットのたたみ込みにどのように関連しているかを理解するのを手伝ってくれませんか?gウェイトをかけるフィルターのような機能ですか?
10 machine-learning  neural-network  deep-learning  cnn  convolution  machine-learning  ensemble-modeling  machine-learning  classification  data-mining  clustering  machine-learning  feature-selection  convnet  pandas  graphs  ipython  machine-learning  apache-spark  multiclass-classification  naive-bayes-classifier  multilabel-classification  machine-learning  data-mining  dataset  data-cleaning  data  machine-learning  data-mining  statistics  correlation  machine-learning  data-mining  dataset  data-cleaning  data  beginner  career  python  r  visualization  machine-learning  data-mining  nlp  stanford-nlp  dataset  linear-regression  time-series  correlation  anomaly-detection  ensemble-modeling  data-mining  machine-learning  python  data-mining  recommender-system  machine-learning  cross-validation  model-selection  scoring  prediction  sequential-pattern-mining  categorical-data  python  tensorflow  image-recognition  statistics  machine-learning  data-mining  predictive-modeling  data-cleaning  preprocessing  classification  deep-learning  tensorflow  machine-learning  algorithms  data  keras  categorical-data  reference-request  loss-function  classification  logistic-regression  apache-spark  prediction  naive-bayes-classifier  beginner  nlp  word2vec  vector-space-models  scikit-learn  decision-trees  data  programming 

3

1
マルチクラスデータセットで誤った分類を引き起こす不均衡なデータ
39のカテゴリ/クラスと850万件のレコードがあるテキスト分類に取り組んでいます。(将来的にはデータとカテゴリーが増えるでしょう)。 私のデータの構造またはフォーマットは次のとおりです。 ---------------------------------------------------------------------------------------- | product_title | Key_value_pairs | taxonomy_id | ---------------------------------------------------------------------------------------- Samsung S7 Edge | Color:black,Display Size:5.5 inch,Internal | 211 Storage:128 GB, RAM:4 GB,Primary Camera:12 MP Case cover Honor 8 | Color:transparent,Height:15 mm,width:22 mm | 212 Ruggers Men's T-Shirt | Size:L,ideal for:men,fit:regular, | 111 sleeve:half sleeve Optimum Nutrition Gold | …

4
機能の重要性に照らしてディシジョンツリーを解釈する
私は、sklearnで構築された決定木分類モデルの決定プロセスを完全に理解する方法を理解しようとしています。私が見ている2つの主な側面は、ツリーのgraphviz表現と機能の重要度のリストです。私が理解していないのは、ツリーのコンテキストで機能の重要度がどのように決定されるかです。たとえば、これは私の機能の重要性のリストです: 機能のランク:1. FeatureA(0.300237) FeatureB(0.166800) FeatureC(0.092472) FeatureD(0.075009) FeatureE(0.068310) FeatureF(0.067118) FeatureG(0.066510) FeatureH(0.043502) フィーチャーI(0.040281) FeatureJ(0.039006) FeatureK(0.032618) FeatureL(0.008136) FeatureM(0.000000) しかし、ツリーの一番上を見ると、次のようになっています。 実際、「最も重要」にランク付けされた機能の一部は、ツリーのずっと下まで表示されません。ツリーの上部は、最も低いランクの機能の1つであるFeatureJです。私の素朴な仮定は、最も重要な機能が最大の影響を与えるためにツリーの上部近くにランク付けされるということです。それが正しくない場合、機能を「重要」にするのは何ですか?

3
Scikit-LearnのRandom Forest Regressorから重み(式)をエクスポートする
Scikit Learn in Python(ランダムフォレストリグレッサー)を使用して予測モデルをトレーニングし、手動で予測するためのExcelツールを作成するために、各機能の重みを何らかの方法で抽出したいと考えています。 私が見つけた唯一のものはですがmodel.feature_importances_、それは助けにはなりません。 それを達成する方法はありますか? def performRandomForest(X_train, y_train, X_test, y_test): '''Perform Random Forest Regression''' from sklearn.ensemble import RandomForestRegressor model = RandomForestRegressor() model.fit( X_train , y_train ) #make predictions expected = y_test predicted = model.predict( X_test ) #summarize the fit of the model mse = np.mean(( predicted - expected )** …

1
サポートベクターマシンの機能選択
私の質問は3つあります 「カーネル化された」サポートベクターマシンのコンテキストでは 変数/機能の選択は望ましいですか-特にパラメーターCを正規化して過剰適合を防止しているため、SVMにカーネルを導入する背後にある主な動機は問題の次元数を増やすことです。 最初の質問への回答が「いいえ」の場合、次に、どの条件で回答を変更すればよいのですか? Pythonのscikit-learnライブラリにSVMの機能削減をもたらすために試された良い方法はありますか?私はSelectFprメソッドを試して、さまざまな方法の経験を持つ人を探しています。

2
次元削減とは逆の方法はありますか?
私は機械学習の分野に不慣れですが、私の信号処理を担当しました。この質問に誤ったラベルが付けられている場合はお知らせください。 少なくとも3つの変数で定義された2次元データがあり、非常に非線形なモデルではシミュレーションが複雑すぎます。 PCAやICA(PythonライブラリScikit-Learnから)などのメソッドを使用してデータから2つの主要コンポーネントを抽出するのにさまざまなレベルの成功を収めてきましたが、これらのメソッド(または少なくともメソッドの実装)は制限されているようですたとえば、2D点群から2つのコンポーネントを抽出するなど、データのディメンションと同じ数のコンポーネントを抽出します。 データをプロットするとき、3つの異なる線形傾向があることが訓練された目には明らかです。3つの色の線は方向を示します。 PCAを使用する場合、予想どおり、主成分はカラーラインの1つに揃えられ、もう1つは90°に配置されます。ICAを使用する場合、最初のコンポーネントは青の線に揃えられ、2番目のコンポーネントは赤と緑のコンポーネントの間のどこかにあります。私の信号の3つのコンポーネントすべてを再現できるツールを探しています。 編集、追加情報:私はここで、より大きな位相平面の小さなサブセットで作業しています。この小さなサブセットでは、各入力変数は平面上で線形の変化を生成しますが、この変化の方向と振幅は非線形であり、作業しているより大きな平面上の正確な場所に依存します。一部の場所では、2つの変数が縮退している可能性があります。それらは同じ方向に変化をもたらします。たとえば、モデルがX、Y、Zに依存するとします。変数Xを変更すると、青い線に沿って変化が生じます。Yは緑の線に沿って変化を引き起こします。Z、赤いものに沿って。

1
トレーニングラベルの信頼度を使用して予測精度を向上させることはできますか?
バイナリ値でラベル付けされたトレーニングデータがあります。また、これらの各ラベルの信頼度を収集しました。つまり、0.8の信頼度は、人間のラベラーの80%がそのラベルに同意することを意味します。 この信頼性データを使用して分類子の精度を向上させることはできますか? 以下はうまくいくでしょうか? 1a)ラベルが0で、そのラベルの信頼度データが0.8の場合、トレーニングデータに0.2の新しいラベルを付けます。 1b)ラベルが1で、そのラベルの信頼性データが0.8の場合、トレーニングデータに0.8の新しいラベルを付けます。 2)トレーニングセットのすべてのエントリに対して、この方法を使用して新しいラベルを計算します 3)問題を回帰問題として扱います(ラベルの範囲は0〜1)。 4)新しいラベルが特定の値の上か下かに基づいて、ラベルのないデータを分類します。つまり、すべての予測ラベルにX未満の場合はクラス0を、Xを超える場合はクラス1を指定します。 現在、モデルにRBFカーネルを備えたSVMを使用しています。 前もって感謝します!

2
多次元時系列から30分前のイベントを予測するモデルをトレーニングする方法
私の分野の専門家は、イベント(黄色のバイナリスパイク)が発生する 30分前に、その可能性を予測できます。ここでの頻度は1秒です。このビューは数時間分のデータを表します。「悪意のある」パターンがあるはずの箇所を黒く囲んでいます。次元間に相互作用が存在するため、次元を個別に調査することはできません(またはそれらを検討できますか?) 私はScikit Learn を使用して監視された MLモデルを構築しようとしています。これは、通常のリズムを学習し、症状がスパイクにつながる可能性がある場合を検出します。私はどちらの方向を取るか迷っています。私は異常検出を試しましたが、それはその場検出でのみ機能し、以前は機能しませんでした。 それらのイベントの前に「悪意のある」パターンを検出するにはどうすればよいですか(ターゲット変数としてそれらを取得します)? どのアルゴリズムまたはデータ処理パイプラインが役立つかについてのアドバイスを歓迎します。ありがとうございました:)

4
数値と名義の混合離散データのクラスタリング
私のデータには、2進数(数値)および名目/カテゴリーの調査回答が含まれています。すべての応答は離散的で、個人レベルです。 データは形状です(n = 7219、p = 105)。 カップルのもの: カテゴリカルおよび数値のバイナリデータで機能する類似性の測度を使用して、クラスタリング手法を特定しようとしています。このタイプの問題のために設計されたR kmodesクラスタリングとkprototypeにはテクニックがありますが、私はPythonを使用していて、このタイプの問題にうまく機能するsklearnクラスタリングのテクニックが必要です。 個人のセグメントのプロファイルを作成したい。つまり、この個人グループは、これらの機能のセットをより重視します。

2
Scikit LearnのGridSearchCVの評価指標としてコーエンのカッパを使用する方法は?
私は1:15の比率、つまり非常に低いイベント率でクラスの不均衡を抱えています。したがって、scikitでGBMのチューニングパラメータを選択するには、F1スコアの代わりにカッパを使用することを学びます。カッパは、クラスの不均衡のF1スコアよりも優れた指標です。 しかし、私はここでsklearn.metricsをscikit learnのEvaluation_metricとしてkappaを見つけることができません でした。 ご質問 gridsearchcvにカッパを含めるための回避策はありますか? scikit learnでカッパの代わりに使用できる他のより良いメトリックはありますか?

2
トレーニングセットに負のy値がない場合、勾配ブースティング回帰は負の値を予測するのはなぜですか?
私は木の数を増やすと学ぶscikitさんGradientBoostingRegressor、私は私のトレーニングやテストセットには負の値が存在しないにもかかわらず、多くの負の予測を取得します。私は約10の機能を持っていますが、そのほとんどはバイナリです。 私が調整していたパラメーターのいくつかは次のとおりです。 木/反復の数; 深さを学ぶ; そして学習率。 負の値のパーセンテージは、最大で2%のようです。学習深度1(切り株)は、負の値の最大の%を持っているように見えました。このパーセンテージは、ツリーが多く、学習率が小さいほど増加するように見えました。データセットは、kaggle遊び場コンテストの1つからのものです。 私のコードは次のようなものです: from sklearn.ensemble import GradientBoostingRegressor X_train, X_test, y_train, y_test = train_test_split(X, y) reg = GradientBoostingRegressor(n_estimators=8000, max_depth=1, loss = 'ls', learning_rate = .01) reg.fit(X_train, y_train) ypred = reg.predict(X_test)

3
入れ子の交差検証と最適な回帰モデルの選択-これは正しいSKLearnプロセスですか?
正しく理解していれば、入れ子になったCVは、どのモデルとハイパーパラメーターのチューニングプロセスが最適かを評価するのに役立ちます。内側のループ(GridSearchCV)は最適なハイパーパラメーターを見つけ、外側のループ()はハイパーパラメーターcross_val_score調整アルゴリズムを評価します。次にmse、最終的なモデルテストで最小化する(回帰分類器を調べている)外側のループから、どのチューニング/モデルコンボを選択するかを決定します。 ネストされた相互検証に関する質問/回答を読みましたが、これを利用する完全なパイプラインの例を見たことはありません。それで、以下の私のコード(実際のハイパーパラメータ範囲は無視してください-これは単なる例です)と思考プロセスは理にかなっていますか? from sklearn.cross_validation import cross_val_score, train_test_split from sklearn.grid_search import GridSearchCV from sklearn.metrics import mean_squared_error from sklearn.ensemble import RandomForestRegressor from sklearn.svm import SVR from sklearn.datasets import make_regression # create some regression data X, y = make_regression(n_samples=1000, n_features=10) params = [{'C':[0.01,0.05,0.1,1]},{'n_estimators':[10,100,1000]}] # setup models, variables mean_score = [] models = [SVR(), …

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