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

Python用の機械学習ライブラリ。このタグは、(a)scikit-learnが質問の重要な部分または予想される回答として含まれているトピックトピックの質問に使用し、&(b)はscikit-learnの使い方だけではありません。

2
「F回帰」と
フィーチャをF-regressionラベルと個別に関連付け、値を観察するのと同じ方法を使用してフィーチャを比較していますか?R2R2R^2 私は同僚F regressionが機械学習パイプラインで機能の選択にを使用するのをよく見ていますsklearn: sklearn.feature_selection.SelectKBest(score_func=sklearn.feature_selection.f_regression...)` 教えてください-なぜそれをラベル/依存変数と単に相関させるのと同じ結果を与えるのですか? F_regression機能選択で使用することの利点が私には明らかではありません。 ここに私のコードがあります:私はmtcarsからのデータセットを使用していRます: import pandas as pd import numpy as np from sklearn import feature_selection from sklearn.linear_model import LinearRegression #....load mtcars dataset into a pandas dataframe called "df", not shown here for conciseness # only using these numerical columns as features ['mpg', 'disp', 'drat', 'wt'] # …

2
決定しきい値はロジスティック回帰のハイパーパラメーターですか?
(バイナリ)ロジスティック回帰からの予測クラスは、モデルによって生成されたクラスメンバーシップ確率のしきい値を使用して決定されます。私が理解しているように、通常はデフォルトで0.5が使用されます。 ただし、しきい値を変更すると、予測される分類が変更されます。これは、しきい値がハイパーパラメーターであることを意味しますか?その場合、(たとえば)scikit-learnのGridSearchCV方法を使用して(正則化パラメーターで行うようにC)しきい値のグリッドを簡単に検索できないのはなぜですか。

2
statsmodel OLSとscikit線形回帰の違い
同じ仕事をしているように見える、異なるライブラリからの2つの異なる方法について質問があります。線形回帰モデルを作成しようとしています。 OLSでstatsmodelライブラリを使用するコードは次のとおりです。 X_train, X_test, y_train, y_test = cross_validation.train_test_split(x, y, test_size=0.3, random_state=1) x_train = sm.add_constant(X_train) model = sm.OLS(y_train, x_train) results = model.fit() print "GFT + Wiki / GT R-squared", results.rsquared この印刷はGFT + Wiki / GT R-squared 0.981434611923 2つ目はscikit学習ライブラリの線形モデル法です。 model = LinearRegression() model.fit(X_train, y_train) predictions = model.predict(X_test) print 'GFT + Wiki / …

2
BICを使用してKMEANSのkの数を推定する
現在、おもちゃのデータセット(ofc iris(:))のBICを計算しようとしています。ここに示すように結果を再現したいです(図5)。 これには2つの問題があります。 表記: n私n私n_i =クラスターの要素数私私i C私C私C_i =クラスター中心座標私私i バツjバツjx_j =クラスター iに割り当てられたデータポイント私私i mmm =クラスターの数 1)式で定義された分散 (2): ∑私= 1n私− m∑j = 1n私∥ Xj− C私∥2∑私=1n私−m∑j=1n私‖バツj−C私‖2 \sum_i = \frac{1}{n_i-m}\sum_{j=1}^{n_i}\Vert x_j - C_i \Vert^2 私が見る限り、クラスター内の要素よりもクラスターmmmが多い場合、分散が負になる可能性があることは問題であり、カバーされません。これは正しいです? 2)正しいBICを計算するためにコードを機能させることができません。うまくいけばエラーはありませんが、誰かが確認できれば幸いです。方程式全体は式で見つけることができます。(5)論文の中。私はscikit learnを使用して、すべてを(キーワード:Pを正当化するために)使用しています。 from sklearn import cluster from scipy.spatial import distance import sklearn.datasets from sklearn.preprocessing import StandardScaler import matplotlib.pyplot as plt …

1
LogisticRegressionCVの非収束を修正する方法
scikit-learnを使用して、一連のデータ(7000を超える正規化された観測値を持つ約14のパラメーター)に対して交差検証を使用したロジスティック回帰を実行しています。また、1または0の値を持つターゲット分類子もあります。 私が抱えている問題は、使用するソルバーに関係なく、収束の警告が表示され続けることです... model1 = linear_model.LogisticRegressionCV(cv=10,verbose=1,n_jobs=-1,scoring='roc_auc',solver='newton-cg',penalty='l2') /home/b/anaconda/lib/python2.7/site-packages/scipy/optimize/linesearch.py:285: LineSearchWarning: The line search algorithm did not converge warn('The line search algorithm did not converge', LineSearchWarning) /home/b/anaconda/lib/python2.7/site-packages/sklearn/utils/optimize.py:193: UserWarning: Line Search failed model2 = linear_model.LogisticRegressionCV(cv=10,verbose=1,n_jobs=-1,scoring='roc_auc',solver='sag',penalty='l2') max_iter reached after 2 seconds max_iter reached after 2 seconds max_iter reached after 2 seconds max_iter reached after 2 seconds …

5
非常に多数のデータポイントで値の代入を実行する方法は?
非常に大きなデータセットがあり、約5%のランダムな値が欠落しています。これらの変数は互いに相関しています。次のRデータセットの例は、ダミーの相関データを使用した単なるおもちゃの例です。 set.seed(123) # matrix of X variable xmat <- matrix(sample(-1:1, 2000000, replace = TRUE), ncol = 10000) colnames(xmat) <- paste ("M", 1:10000, sep ="") rownames(xmat) <- paste("sample", 1:200, sep = "") #M variables are correlated N <- 2000000*0.05 # 5% random missing values inds <- round ( runif(N, 1, length(xmat)) …
12 r  random-forest  missing-data  data-imputation  multiple-imputation  large-data  definition  moving-window  self-study  categorical-data  econometrics  standard-error  regression-coefficients  normal-distribution  pdf  lognormal  regression  python  scikit-learn  interpolation  r  self-study  poisson-distribution  chi-squared  matlab  matrix  r  modeling  multinomial  mlogit  choice  monte-carlo  indicator-function  r  aic  garch  likelihood  r  regression  repeated-measures  simulation  multilevel-analysis  chi-squared  expected-value  multinomial  yates-correction  classification  regression  self-study  repeated-measures  references  residuals  confidence-interval  bootstrap  normality-assumption  resampling  entropy  cauchy  clustering  k-means  r  clustering  categorical-data  continuous-data  r  hypothesis-testing  nonparametric  probability  bayesian  pdf  distributions  exponential  repeated-measures  random-effects-model  non-independent  regression  error  regression-to-the-mean  correlation  group-differences  post-hoc  neural-networks  r  time-series  t-test  p-value  normalization  probability  moments  mgf  time-series  model  seasonality  r  anova  generalized-linear-model  proportion  percentage  nonparametric  ranks  weighted-regression  variogram  classification  neural-networks  fuzzy  variance  dimensionality-reduction  confidence-interval  proportion  z-test  r  self-study  pdf 

1
PCAとTruncatedSVDのscikit-learn実装の違い
代数的/厳密なレベルでの主成分分析と特異値分解の関係を理解し​​ています。私の質問は、scikit-learnの実装についてです。 ドキュメンテーションは、「[TruncatedSVD]はPCAに非常に似ていますが、共分散行列ではなく、サンプルベクトルを直接操作します。」これは、両方のアプローチの代数的な違いを反映しています。ただし、後で説明します:「この推定器[TruncatedSVD]は、2つのアルゴリズムをサポートしています。高速ランダム化SVDソルバーと、(X * XT)または(XT * X)の固有ソルバーとしてARPACKを使用する「単純な」アルゴリズムのいずれか多い方です。効率的。」PCAについて、「データの特異値分解を使用してそれを投影する線形次元削減...」と述べています。PCA実装は、同じ2つのアルゴリズム(ランダム化およびARPACK)ソルバーと、もう1つのアルゴリズムLAPACKをサポートしています。コードを見ると、PCAとTruncatedSVDの両方のARPACKとLAPACKの両方がサンプルデータXでsvdを実行しており、ARPACKは(svdsを使用して)スパース行列を処理できることがわかります。 したがって、さまざまな属性とメソッドを除いて、PCAがLAPACK、PCA、およびTruncatedSVDを使用して正確な完全特異値分解を実行できることを除いて、scikit-learnの実装はまったく同じアルゴリズムのようです。最初の質問:これは正しいですか? 2番目の質問:LAPACKとARPACK使用scipy.linalg.svd(X)とscipy.linalg.svds(X)、というXサンプルマトリックスが、彼らは特異値分解またはの固有分解を計算するにもかかわらず、または内部では「ランダム化」ソルバーは積を計算する必要はありませんが。(これは数値の安定性に関連しています。データのSVDによるデータのPCAの理由を参照してください。)これは正しいです?X ∗ X TバツT∗ XXT∗XX^T*Xバツ∗ XTX∗XTX*X^T 関連コード:PCAのライン415 TruncatedSVDのライン137。
12 pca  scikit-learn  svd  scipy 

1
Scikit predict_proba出力の解釈
Pythonでscikit-learnライブラリを使用しています。以下のコードでは、確率を予測していますが、出力の読み方がわかりません。 試験データ from sklearn.ensemble import RandomForestClassifier as RF from sklearn import cross_validation X = np.array([[5,5,5,5],[10,10,10,10],[1,1,1,1],[6,6,6,6],[13,13,13,13],[2,2,2,2]]) y = np.array([0,1,1,0,1,2]) データセットを分割する X_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y, test_size=0.5, random_state=0) 確率を計算する clf = RF() clf.fit(X_train,y_train) pred_pro = clf.predict_proba(X_test) print pred_pro 出力 [[ 1. 0.] [ 1. 0.] [ 0. 1.]] X_testリストには3つの配列(6つのサンプルとtest_size = …

2
エラー分布のファミリとしてポアソン、ガンマ、またはトゥイーディー分布を使用して、Python / scikit-learnでGLMを評価することは可能ですか?
いくつかのPythonとSklearnを学習しようとしていますが、私の仕事では、ポアソン、ガンマ、特にTweedieファミリの誤差分布を使用する回帰を実行する必要があります。 それらについてのドキュメントには何も見当たらないが、それらはRディストリビューションのいくつかの部分にあるので、誰かがPythonのどこかで実装を見たのではないかと思っていた。あなたがTweedieディストリビューションのSGD実装に向けて私を向けることができれば、それはさらに格好良いでしょう!


1
カーネル近似のNystroemメソッド
低ランクのカーネル近似のためのNyströmメソッドについて読んでいます。この方法は、データサンプルをカーネル機能マッピングの低ランクの近似に投影する方法として、scikit-learn [1]に実装されています。 私の知る限り、トレーニングセットとカーネル関数を指定すると、WとCに SVDを適用することにより、n × nカーネル行列Kの低ランクの近似が生成されます。{ x私}んi = 1{xi}i=1n\{x_i\}_{i=1}^nn × nn×nn \times nKKKWWWCCC C = [ W K 21 ]、 W ∈ R L × LK= [ WK21KT21K22]K=[WK21TK21K22]K = \left [ \begin{array}{cc} W & K_{21}^T \\ K_{21} & K_{22} \end{array} \right ] C= [ WK21]C=[WK21]C = \left [\begin{array}{cc} W \\ …

1
Kを大きく選択すると交差検定スコアが低下するのはなぜですか?
ボストン住宅データセットとRandomForestRegressor(デフォルトパラメータ付きの)scikit-learnで遊んでみて、奇妙なことに気付きました。フォールドの数を10を超えて増やすと、平均クロス検証スコアが減少しました。私のクロス検証戦略は次のとおりです。 cv_met = ShuffleSplit(n_splits=k, test_size=1/k) scores = cross_val_score(est, X, y, cv=cv_met) num_cvs変化したところ… 。k-fold CVのトレイン/テスト分割サイズの動作をミラーリングtest_sizeする1/num_cvsように設定しました。基本的に、k倍のCVのようなものが必要でしたが、ランダム性も必要でした(したがって、ShuffleSplit)。 この試験を数回繰り返し、平均スコアと標準偏差をプロットしました。 (のサイズはk円の面積で示されることに注意してください。標準偏差はY軸にあります。) 一貫して、k(2から44に)増加すると、スコアが一時的に増加し、その後kさらに増加すると(〜10倍を超えて)、着実に減少します!どちらかと言えば、より多くのトレーニングデータがスコアのマイナーな増加につながることを期待します! 更新 絶対エラーを意味するようにスコアリング基準を変更すると、期待どおりの動作が得られます。スコアリングは、KフォールドCVのフォールド数を増やすと、0に近づくのではなく(デフォルトの ' r2 'のように)向上します。デフォルトのスコアリングメトリックの結果、フォールド数が増えると、平均メトリックとSTDメトリックの両方でパフォーマンスが低下するのはなぜですか。

2
RのglmnetとPythonのscikit-learnを使用したリッジ回帰の違いは何ですか?
James、Witten、Hastie、Tibshirani(2013)著の「An Introduction to Statistical Learning with Applications in R」の Ridge Regression / LassoのLABセクション§6.6を通過します。 より具体的にはRidge、Rパッケージ 'ISLR'の 'Hitters'データセットにscikit-learn モデルを適用しようとしています。Rコードに示されているのと同じ機能セットを作成しました。ただし、glmnet()モデルの結果に近づくことはできません。比較するL2チューニングパラメーターを1つ選択しました。(scikit-learnの「alpha」引数)。 Python: regr = Ridge(alpha=11498) regr.fit(X, y) http://nbviewer.ipython.org/github/JWarmenhoven/ISL-python/blob/master/Notebooks/Chapter%206.ipynb R: の引数alpha=0はglmnet()、L2ペナルティを適用する必要があることを意味することに注意してください(リッジ回帰)。ドキュメンテーションでは、に単一の値を入力しないように警告していますlambdaが、結果は、ISLの場合と同じで、ベクトルが使用されています。 ridge.mod <- glmnet(x,y,alpha=0,lambda=11498) 何が違いの原因ですか? 編集: Rのペナルティパッケージから 使用する場合penalized()、係数はscikit-learnと同じです。 ridge.mod2 <- penalized(y,x,lambda2=11498) おそらく問題は、「リッジ回帰を実行するときglmnet()と実行するpenalized()ときの違いは何ですか?」 Rパッケージglmnetで使用される実際のFortranコード用の新しいPythonラッパー https://github.com/civisanalytics/python-glmnet

1
カイ二乗検定はどのような特徴選択に使用できますか?
ここで私は、教師あり学習での結果選択に関する特徴選択にカイ二乗検定を使用するために他の人が一般的に何をするかについて尋ねています。私が正しく理解している場合、彼らは各機能と結果の間の独立性をテストし、各機能のテスト間のp値を比較しますか? ではhttp://en.wikipedia.org/wiki/Pearson%27s_chi-squared_test、 ピアソンのカイ2乗検定は、カテゴリデータのセットに適用される統計的検定であり、セット間に観測された差が偶然に生じた可能性を評価します。 ... 独立性のテストでは、分割表で表された2つの変数のペアの観測値が互いに独立しているかどうかを評価します(たとえば、国籍が異なる応答をポーリングして、国籍が応答に関連しているかどうかを確認します)。 では、独立性がテストによってテストされる2つの変数は、カテゴリカルまたは離散(カテゴリカル以外の順序付けを許可)でなければならないが、連続ではないのでしょうか。 http://scikit-learn.org/stable/modules/feature_selection.html、彼ら アイリスデータセットに対してテストを実行して、2つの最良の特徴のみを取得します。χ2χ2\chi^2 虹彩データセットは、すべての機能が大切数値と連続しており、そして結果は、クラスラベル(カテゴリ)です。カイ二乗独立性検定は、連続特徴にどのように適用されますか? データセットにカイ二乗独立検定を適用するには、最初にビニング(つまり、最初に特徴の連続ドメインをビンに離散化し、次に特徴をビン内の特徴の値の出現で置き換える)により、連続特徴を離散特徴に変換しますか? )? いくつかのビンでの発生は多項式の特徴(各ビンで発生するかしないかのどちらか)を形成するため、カイ2乗独立検定をそれらに適用できます。 ところで、私はカイ二乗独立検定をあらゆる種類の機能と結果に適用できますか? 結果の部分では、分類だけでなく、カイ二乗独立検定、連続結果をビニングすることにより、回帰の機能も選択できます。 scikit学習サイトにも書いてあります 各非負の特徴とクラスの間のカイ2乗統計を計算します。 このスコアが含まれている必要がありますXからテストカイ二乗統計値の最高値は、とn_features機能を選択するために使用することができる唯一の非負のようにブール値や周波数などの機能 (文書分類では例えば、用語カウント)、に対するクラス。 テストで非負の機能が必要なのはなぜですか? 特徴に兆候はないが、カテゴリー的または離散的である場合、テストをそれらに適用できますか?(私のパート1を参照) 特徴が否定的である場合、それらのドメインを常にビニングし、それらをその出現に置き換えることができます(虹彩データセットにテストを適用するために私が推測するのと同じように、パート2を参照)。 注:Scikit Learnは一般的な原則に従っていると思います。それが私がここで求めていることです。そうでない場合は、それでも大丈夫です。


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