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

プログラミング言語Pythonに関連するデータサイエンスの質問に使用します。一般的なコーディングの質問(-> stackoverflow)は対象としていません。

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
Pandasデータフレームからの多値カテゴリ変数をバイナリエンコードする方法
特定の列に複数の値を持つ次のデータフレームがあるとします。 categories 0 - ["A", "B"] 1 - ["B", "C", "D"] 2 - ["B", "D"] このようなテーブルを取得するにはどうすればよいですか? "A" "B" "C" "D" 0 - 1 1 0 0 1 - 0 1 1 1 2 - 0 1 0 1 注:必ずしも新しいデータフレームは必要ありません。そのようなデータフレームを機械学習により適した形式に変換する方法を考えています。
9 python  pandas 

2
Pythonで補完的な単純ベイズを実装しますか?
問題 犯罪データのラベルが付けられたデータセットでナイーブベイを使用してみましたが、結果は非常によくありません(7%の精度)。Naive Bayesは、これまで使用してきた他のアルゴリズムよりもはるかに高速に実行されるため、スコアが非常に低い理由を調べてみました。 研究 読んだ後、ナイーブベイは頻度の高いクラスに偏りがあるため、バランスのとれたデータセットで使用する必要があることに気付きました。私のデータは不均衡なので、データスキューを処理するために特別に作成されているので、補完的な単純ベイズを使用してみました。プロセスを説明する論文では、アプリケーションはテキスト分類用ですが、この手法が他の状況で機能しない理由はわかりません。ここで私が言及している論文を見つけることができます。つまり、クラスが表示されない発生に基づいて重みを使用するという考え方です。 いくつかの調査を行った後、Javaでの実装を見つけることができましたが、残念ながらJavaを知りませんし、自分で実装するためのアルゴリズムを十分に理解していません。 質問 Pythonでの実装はどこにありますか?それが存在しない場合、自分で実装するにはどうすればよいですか?

2
Latent Dirichlet Allocationから派生したトピックを使用したドキュメントのクラスタリング
プロジェクトにLatent Dirichlet Allocationを使用したいのですが、gensimライブラリでPythonを使用しています。トピックを見つけた後、k-meansなどのアルゴリズムを使用してドキュメントをクラスター化したいと思います(理想的には、クラスターの重複に適切なものを使用したいので、どのような推奨も歓迎されます)。私は何とかトピックを取得しましたが、それらは次の形式です。 0.041 *大臣+ 0.041 *キー+ 0.041 *瞬間+ 0.041 *物議を醸す+ 0.041 *首相 クラスタリングアルゴリズムを適用し、誤りがあれば修正するには、tfidfまたはword2vecを使用して各単語を数値として表す方法を見つける必要があると思います。 たとえばリストからテキスト情報を「ストリップ」して、適切な乗算を行うためにそれらを元に戻す方法についてのアイデアはありますか? たとえば、Ministerという単語のtfidfの重みが0.042である場合、同じトピック内の他の単語についても同様に、次のように計算する必要があります。 0.041 * 0.42 + ... + 0.041 * tfidf(Prime)そして結果をクラスタリングするために後で使用される結果を取得します。 お時間をいただきありがとうございます。

1
パンダのinterpolate()とfillna()の違い
Interpolateとfillnaメソッドはna値を埋めるのと同じ働きをするので。この2つの基本的な違いは何ですか。これらの2つの異なる方法を持つことの重要性は何ですか?誰でも簡単な言葉で私を説明できますか?私はすでに公式ドキュメントを訪問し、違いを知りたいと思っていました

3
Pandasデータフレームのフィルタリング速度を改善する
19列と約25万行のデータセットがあります。私はより大きなデータセットを扱ってきましたが、今度はパンダスが私の神経で遊ぶことにしました。 いくつかの単純なルールに基づいて、元のデータセットを3つのサブデータフレームに分割しようとしました。ただし、コードの実行には時間がかかります。フィルタリングのためだけに約15〜20秒。 コードのパフォーマンスを向上させる代替方法はありますか? import pandas as pd #read dataset df = pd.read_csv('myData.csv') #create a dataframe with col1 10 and col2 <= 15 df1 = df[(df.col1 == 10) & (df.col2 <= 15)] df = df[~df.isin(df1)].dropna() #create a dataframe with col3 7 and col4 >= 4 df2 = df[(df.col3 == 7) & …

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


2
ディスクに保存されたときのランダムフォレストの禁止サイズ
cPickleを使用してディスクに保存した場合:https ://stackoverflow.com/questions/20662023/save-python-random-forest-model-to-file 、私のランダムフォレストは6.57 GBです。 with open('rforest.cpickle', 'wb') as f: cPickle.dump(rforest, f) Herokuでホストされているpython APIを介して予測を行うためにフォレスト自体を使用したいと思います。もちろん、そのファイルサイズは許容できません。 ファイルサイズが非常に大きいのはなぜですか?アンサンブルには500本のツリーがあります。保存したいのは、予測として使用されるため、完成したツリー自体だけです。ディスク上に約7 GBのスペースを必要とする500のツリーのそれぞれを構成するのは、実際のノードとエッジですか? scikitlearnのrandomforestregressorを使用しました: def buildForest(self, X_train, y_train): rf = RandomForestRegressor(n_estimators=500, verbose=1) rf.fit_transform(X_train, y_train) return rf また、APIを介してモデルにアクセスできるようにするより良い方法がある場合は、それも知っておくとよいでしょう。 更新:予測能力をほとんど失うことなく100ツリーに減らしたため、保存サイズは1.3 GBになりました。

1
Python Seaborn:エラーバーはバープロットでどのように計算されますか?
Pythonで棒グラフを生成するためにseabornライブラリを使用しています。エラーバーの計算にどの統計情報が使用されているのかと思いますが、Seabornのbarplotのドキュメントでこれに関する参照を見つけることができません。 私の場合はバーの値が平均に基づいて計算されることを知っています(既定のオプション)。エラーバーは正規分布の95%信頼区間に基づいて計算されると思いますが、確認したいと思います。

1
DBSCANのepsを決定するためのKnn距離プロット
DBSCANアルゴリズムに対してどのeps値を選択すればよいかを知るために、knn距離プロットを使用したいと思います。このページに基づく: アイデアは、すべてのポイントからk個の最近傍への距離の平均を計算することです。kの値はユーザーによって指定され、MinPtsに対応します。次に、これらのk距離は昇順でプロットされます。目的は、最適なepsパラメータに対応する「膝」を決定することです。 numpy / sklearnでpythonを使用すると、次の点が得られます。6-knnの距離は次のとおりです。 X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]]) nbrs = NearestNeighbors(n_neighbors=len(X)).fit(X) distances, indices = nbrs.kneighbors(X) # Indices [[0 1 2 3 4 5] [1 0 2 3 4 5] [2 1 0 3 4 5] [3 4 5 0 …


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

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