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

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

8
scikit_learnモデルのfitとfit_transformの違いは?
私はデータサイエンスの初心者でfitありfit_transform、scikit-learnのメソッドとメソッドの違いを理解していません。誰がデータを変換する必要があるのか​​を簡単に説明できますか? トレーニングデータにモデルを適合させ、テストデータに変換することはどういう意味ですか?たとえば、カテゴリ変数をトレイン内の数値に変換し、新しい機能セットをテストデータに変換するということですか?

3
One Hot Encoding vs LabelEncoder vs DictVectorizo​​rを使用する場合
しばらくの間、カテゴリデータを使用してモデルを構築してきましたが、この状況では、基本的にscikit-learnのLabelEncoder関数を使用して、モデルを構築する前にこのデータを変換します。 私は違いを理解しOHE、LabelEncoderそしてDictVectorizor、彼らはデータに何をしているかという点では、しかし、あなたは他の上にある技術を採用することを選択する可能性がある場合、私には明確ではないものです。 あるものが他のものに対して利点/欠点を持っている特定のアルゴリズムまたは状況はありますか?

11
scikit学習を使用するSVMは無限に実行され、実行を完了しません
595605行と5列(機能)のあるトレーニングデータセットと、397070行のテストデータセットでscikit learn(python)を使用してSVRを実行しようとしています。データは前処理され、正規化されています。 テスト例を正常に実行することはできますが、データセットを使用して実行し、1時間以上実行しても、プログラムの出力または終了を確認できませんでした。別のIDEを使用して、さらにはターミナルからも実行しようとしましたが、それは問題ではないようです。また、「C」パラメーター値を1から1e3に変更してみました。 scikitを使用するすべてのsvm実装で同様の問題に直面しています。 私はそれが完了するのを十分に待っていませんか?この実行にはどれくらい時間がかかりますか? 私の経験から、それは数分以上は必要ありません。 システム構成は次のとおりです。Ubuntu14.04、8GB RAM、大量の空きメモリ、第4世代i7プロセッサ

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



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 

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
線形回帰で重みを非負にする方法
Pythonでscikit-learnを使用する標準の線形回帰を使用しています。ただし、すべての機能に対して重みをすべて正(負ではない)にしたいのですが、それを達成する方法はありますか?私はドキュメントを見ていましたが、それを達成する方法を見つけることができませんでした。最善の解決策が得られない可能性があることは理解していますが、重みが負でないことが必要です。

4
Scikit-learn:SGDClassifierにロジスティック回帰だけでなく予測もさせる
ロジスティック回帰をトレーニングする方法は、scikit-learnがインターフェイスを提供する確率的勾配降下を使用することです。 私がやりたいのは、scikit-learnのSGDClassifierを取得して、ここでロジスティック回帰と同じスコアを取得することです。ただし、スコアが同等ではないため、機械学習の機能強化が欠落している必要があります。 これが私の現在のコードです。ロジスティック回帰と同じ結果を生成するSGDClassifierには何が欠けていますか? from sklearn import datasets from sklearn.linear_model import LogisticRegression from sklearn.linear_model import SGDClassifier import numpy as np import pandas as pd from sklearn.cross_validation import KFold from sklearn.metrics import accuracy_score # Note that the iris dataset is available in sklearn by default. # This data is also conveniently preprocessed. …

5
PythonでのKL発散の計算
私はこれにかなり慣れていないため、この背後にある理論的概念を完全に理解しているとは言えません。Pythonの複数のポイントリスト間のKL Divergenceを計算しようとしています。私はhttp://scikit-learn.org/stable/modules/generated/sklearn.metrics.mutual_info_score.htmlを使用してこれを試みています。私が遭遇している問題は、返される値が2つの数値リスト(その1.3862943611198906)で同じであることです。私はここで何らかの理論上の間違いを犯していると感じていますが、それを見つけることはできません。 values1 = [1.346112,1.337432,1.246655] values2 = [1.033836,1.082015,1.117323] metrics.mutual_info_score(values1,values2) それは私が実行しているものの例です-2つの入力に対して同じ出力を取得しているだけです。何かアドバイス/助けをいただければ幸いです!

2
train_test_split()エラー:サンプル数が一致しない入力変数が見つかりました
Pythonはかなり新しいですが、いくつかの分類データに基づいて最初のRFモデルを構築します。すべてのラベルをint64数値データに変換し、numpy配列としてXおよびYにロードしましたが、モデルをトレーニングしようとするとエラーが発生します。 配列は次のようになります。 >>> X = np.array([[df.tran_cityname, df.tran_signupos, df.tran_signupchannel, df.tran_vmake, df.tran_vmodel, df.tran_vyear]]) >>> Y = np.array(df['completed_trip_status'].values.tolist()) >>> X array([[[ 1, 1, 2, 3, 1, 1, 1, 1, 1, 3, 1, 3, 1, 1, 1, 1, 2, 1, 3, 1, 3, 3, 2, 3, 3, 1, 1, 1, 1], [ 0, 5, …

3
データを分割する前後のStandardScaler
を使用して読んでいたときStandardScaler、推奨事項のほとんどは、データを電車/テストStandardScaler に分割する前に使用する必要があると言っていましたが、オンラインで投稿されたコードの一部をチェックするときに(sklearnを使用して)2つの主要な用途がありました。 1- StandardScalerすべてのデータで使用。例えば from sklearn.preprocessing import StandardScaler sc = StandardScaler() X_fit = sc.fit(X) X_std = X_fit.transform(X) または from sklearn.preprocessing import StandardScaler sc = StandardScaler() X = sc.fit(X) X = sc.transform(X) または単に from sklearn.preprocessing import StandardScaler sc = StandardScaler() X_std = sc.fit_transform(X) 2- StandardScaler分割データで使用。 from sklearn.preprocessing import StandardScaler sc = …

3
OrdinalEncoderとLabelEncoderの違い
MLに関する本を読んだ後、scikit-learn learnの公式ドキュメントを調べていたところ、次のことに遭遇しました。 ドキュメンテーションではそれについて説明されていsklearn.preprocessing.OrdinalEncoder()ますが、本ではそれについて説明さsklearn.preprocessing.LabelEncoder()れていました。誰かが私に2つの違いを教えてくださいませんか?


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