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

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

3
scikit-learnで多層パーセプトロンのアクティベーション機能としてSoftmaxを適用する方法 [閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新することがありますので、話題のクロス検証済みのため。 10か月前に閉鎖。 Softmaxアクティベーション機能をscikitの多層パーセプトロンに適用する必要があります。ニューラルネットワークモデル(教師あり)のトピックに関するscikitのドキュメントでは、「MLPClassifierは出力関数としてSoftmaxを適用することにより、マルチクラス分類をサポートしています」と述べています。問題は、関数をどのように適用するかです。 以下のコードスニップで、アクティベーションパラメーターの下にSoftmaxを追加すると、受け入れられません。 MLPClassifier(activation='Softmax', alpha=1e-05, batch_size='auto', beta_1=0.9, beta_2=0.999, early_stopping=False, epsilon=1e-08, hidden_layer_sizes=(15,), learning_rate='constant', learning_rate_init=0.001, max_iter=200, momentum=0.9, nesterovs_momentum=True, power_t=0.5, random_state=1, shuffle=True, solver='lbfgs', tol=0.0001, validation_fraction=0.1, verbose=False, warm_start=False) エラーコードは: ValueError:アクティベーション「Softmax」はサポートされていません。サポートされるアクティベーションは( 'identity'、 'logistic'、 'tanh'、 'relu')です。 scikit-learnのマルチクラス分類にSoftmaxアクティベーション関数を適用する方法はありますか?

1
ランダムフォレストは、MNISTの2.8%テストエラーよりもはるかに優れていますか?
ランダムフォレストのMNIST、CIFAR、STL-10などへの適用に関する文献は見つかりませんでしたので、順列不変の MNISTを自分で試してみようと思いました。 ではR、私が試しました: randomForest(train$x, factor(train$y), test$x, factor(test$y), ntree=500) これは2時間実行され、2.8%のテストエラーが発生しました。 私はまた、scikit-learnを試しました RandomForestClassifier(n_estimators=2000, max_features="auto", max_depth=None) 70分後、2.9%のテストエラーが発生しましたが、代わりにn_estimators = 200を使用すると、わずか7分後に2.8%のテストエラーが発生しました。 OpenCVの、私が試しました rf.train(images.reshape(-1, 28**2), cv2.CV_ROW_SAMPLE, labels.astype('int')) これは6.5分間実行されrf、予測に使用すると15%のテストエラーが発生しました。params少なくともバージョン2.3.1では、ランダムフォレストへのPythonバインディングが引数を無視しているように見えるため、トレーニングしたツリーの数はわかりません。また、OpenCVに、回帰ではなく分類の問題を解決したいことを明確にする方法を理解できませんでした-に置き換えastype('int')てastype('float32')も同じ結果が得られるため、疑問があります。 ではニューラルネットワークのための順列不変のトレーニングは、おそらく一つのCPUに2時間以上かかるだろうが、MNISTベンチマーク、芸術の状態は、0.8%のテストエラーです。 ランダムフォレストを使用してMNISTで2.8%のテストエラーをはるかに上回ることは可能ですか?私は、一般的なコンセンサスは、ランダムフォレストは通常​​カーネルSVMと少なくとも同等であり、1.4%のテストエラーが発生する可能性があると考えていました。

1
scikit Learnの慣性公式のクラスタリング
パンダとscikit学習を使用して、Pythonでkmeansクラスタリングをコーディングしたいと思います。良いkを選択するために、Tibshirani and al 2001(pdf)からのギャップ統計をコード化したいと思います。 すべての距離計算を再コーディングする必要なしに、scikitの惰性結果を使用してギャップ統計式を適応できるかどうか知りたいのですが。 高レベル距離関数を使用してギャップ統計を再コーディングする簡単な方法をscikitで使用されている慣性公式を知っている人はいますか?

1
単純な線形回帰の場合は勾配降下法
単純な線形回帰のパラメーターを見つけるための勾配降下法について説明しているWebサイトは多数あります(ここにそのうちの1つがあります)。グーグルはまた彼らの新しい(公開された)MLコースでそれを説明している。 しかし上ウィキペディア、パラメータを計算するには、次の式が供給されてい α^β^= y¯- β^バツ¯、= ∑んi = 1(x私− x¯)(y私− y¯)Σんi = 1(x私− x¯)2α^=y¯−β^バツ¯、β^=Σ私=1ん(バツ私−バツ¯)(y私−y¯)Σ私=1ん(バツ私−バツ¯)2 {\displaystyle {\begin{aligned}{\hat {\alpha }}&={\bar {y}}-{\hat {\beta }}\,{\bar {x}},\\{\hat {\beta }}&={\frac {\sum _{i=1}^{n}(x_{i}-{\bar {x}})(y_{i}-{\bar {y}})}{\sum _{i=1}^{n}(x_{i}-{\bar {x}})^{2}}}\end{aligned}}} また、scikit-learnのLinearRegression関数には、n_iter_他の多くの学習関数のように(反復回数)属性がありません。これは、勾配降下法が使用されていないことを示唆していると思いますか? 質問: 単純な線形回帰の勾配降下法を説明しているWebサイトは、最も基本的なMLモデルでその概念を教えるためにそうしているだけですか?ウィキペディアの公式は、ほとんどの統計ソフトウェアがパラメーターの計算に使用するものですか(少なくともscikit-learnは勾配降下法を使用していないようです)。 多重線形回帰には通常何が使用されますか? 他の方法よりもパラメーターを見つけるために勾配降下法が通常使用される統計学習モデルのタイプは何ですか?つまり、経験則はありますか?

2
SVMを最適化して、バイナリ分類での偽陰性を回避
私はScikit学習を使用してSVMバイナリ分類器をトレーニングしています。 私の問題の性質上、私は偽陰性を避ける必要があります。何も無料ではないので、偽陰性の数を減らすために偽陽性率を高くしても大丈夫です。どうすればそれができますか(理想的にはScikit学習で) つまり、SVM分類器を使用して偽陰性を最小限に抑えるにはどうすればよいでしょうか。偽陰性よりも偽陽性を優先するためにハイパーパラメータを調整する方法はありますか?

2
ランダム状態は調整するパラメーターですか?
私の実験で頻繁に発生する問題は、アルゴリズムのランダムな状態が変更されるとモデルのパフォーマンスが変化することです。質問は簡単です。ランダムな状態をハイパーパラメータとしてとるべきですか?何故ですか?モデルが異なるランダム状態で他のモデルよりも優れている場合、モデルを特定のランダム状態に適合しすぎていると見なす必要がありますか? sklearnの決定木のログ:(random_rateはランダムな状態である必要があります)

2
scikit-learnでカテゴリ変数の相互作用を準備する方法は?
scikit-learnでフィッティングする前に、カテゴリ特徴の相互作用を準備する最良の方法は何ですか? とstatsmodels私はRスタイルで便利に言うことができましたsmf.ols(formula = 'depvar ~ C(var1)*C(var2)', data=df).fit()(とスタタで同じですregress depvar i.var1##i.var2)。 sklearn.preprocessing.PolynomialFeatures(v0.15では、現在開発中)カテゴリ変数を使用できますか?

1
ランダムフォレストと極端にランダム化されたツリーはどのように異なって分割されますか?
ランダムフォレストの場合、一連の機能のジニ不純物またはエントロピーによってノードを分割します。sklearnのRandomForestClassifierでは、Giniまたはエントロピー基準を使用して分割することを選択できます。ただし、Extra-Trees Classifierについて読んだところ、分割にはランダムな値が選択されています(おそらく、GiniやEntropyとは関係ありません)。sklearnのExtraTreesClassifierには、分割にGiniまたはエントロピーを選択するオプションがあります。ここでは少し混乱しています。

2
時系列での異常検出
私は機械学習を使用した初心者です(Ngのコースを終了しました)。Pythonでscikit-learnを使用しています。私たちのシステムの異常を検出する最良の方法を見つけたいです。 定期的(数分/時間ごと)に発生するイベントが継続的に発生しているため、異常が発生したときに検出したいと考えています。データの例: ID | epoch-time | duration (Sec) | status | is_manual 0400 | 1488801454 | 500 | completed | 1 0401 | 1488805055 | 500 | completed | 1 0402 | 1488812254 | 40000 | failed | 1 6831 | 1488805050 | 200 | failed | 0 . ... …

1
ネストされた相互検証後に最適なハイパーパラメーターを取得するにはどうすればよいですか?
一般的に、大きなデータセットがある場合は、(1)トレーニング、(2)検証、(3)テストに分割できます。検証を使用して相互検証(SVMのCなど)で最適なハイパーパラメーターを特定し、トレーニングセットで最適なハイパーパラメーターを使用してモデルをトレーニングし、トレーニングされたモデルをテストに適用してパフォーマンスを取得します。 データセットが小さい場合、トレーニングとテストセットを作成できません(サンプルが不十分)。したがって、モデルのパフォーマンスを評価するために、交差検証(k-fold、leave-one-outなど)を行います。 ネストされた交差検証(繰り返しまたは層別)が小さなデータセットの設定で使用されていることを確認しました。つまり、パラメーター選択を最適化しながら一般化モデルのパフォーマンスを生成します。私の質問は、ネストされた交差検証で最高のハイパーパラメーターを取得するにはどうすればよいですか(繰り返される/繰り返されない)? 可能であれば、scikit-learnでこれを行うことに興味があります。私はそれを行う方法について少し混乱しています。 私はいくつかのリソースを読みましたが、この質問に対する明確な答えはありませんでした。 モデル選択のためのネストされた相互検証 入れ子の交差検証と機能選択:機能選択を実行するタイミング?


3
svmが同じデータのディシジョンツリーほど良くないのはなぜですか?
私は機械学習に慣れていないため、scikit-learn(sklearn)を使用して分類の問題に対処しようとしています。DecisionTreeとSVMはどちらも、この問題の分類子をトレーニングできます。 私はとを使用sklearn.ensemble.RandomForestClassifierしsklearn.svm.SVCて、同じトレーニングデータを適合させます(エントリあたり50個の機能を持つ約500,000エントリ)。RandomForestClassifierは約1分で分級して出てきます。SVCは、 24時間以上を使用し、まだ実行し続けます。 SVCのパフォーマンスが非効率的であるのはなぜですか?データセットはSVCに対して大きすぎますか?あるSVCは、このような問題のために不適切な?

1
sklearnでMADを最小化する線形回帰
回帰クラス線形標準sklearnは、平均二乗誤差(MSE)を最小変量と共変量との間の近似直線関係を見出します。具体的には、を観測値の数とし、簡略化のために切片を無視します。ましょうの変量値で番目の観察との値であるの共変量番目の観測。線形関係は、 ここで、係数は、 NNNyjyjy_jjjjx1,j,…,xn,jx1,j,…,xn,jx_{1,j}, \dots, x_{n,j}nnnjjjy=β1x1+…βnxn;y=β1x1+…βnxn; y = \beta_1 x_1 + \dots \beta_n x_n;β1,…,βnβ1,…,βn\beta_1, \dots, \beta_nβ1,…,βn=argminβ~1,…,β~n(∑j=1N(yj−β~1x1,j−⋯−β~nxn,j)2).β1,…,βn=argminβ~1,…,β~n(∑j=1N(yj−β~1x1,j−⋯−β~nxn,j)2).\beta_1, \dots, \beta_n = \underset{\tilde\beta_1, \dots, \tilde\beta_n}{\mathrm{argmin}} \left( \sum_{j = 1}^N \left( y_j - \tilde\beta_1x_{1, j} - \dots -\tilde\beta_nx_{n, j}\right)^2 \right). ここで、平均二乗誤差ではなく、平均絶対偏差(MAD)を最小化する係数を見つけたいと思います。つまり、 β1,…,βn=argminβ~1,…,β~n(∑j=1N∣∣yj−β~1x1,j−⋯−β~nxn,j∣∣).β1,…,βn=argminβ~1,…,β~n(∑j=1N|yj−β~1x1,j−⋯−β~nxn,j|).\beta_1, \dots, \beta_n = \underset{\tilde\beta_1, \dots, \tilde\beta_n}{\mathrm{argmin}} \left( \sum_{j = 1}^N \left| y_j - …

1
テストポイントから各クラスのポイントまでの平均距離に基づく分類アルゴリズム
平均距離が最小のポイントのクラスターに新しいテストベクトルを割り当てる分類アルゴリズムはありますか? もっと上手に書いてみましょう:それぞれにポイントの個のクラスターがあるとしましょう。各クラスターkについて、x(0)とx(i)の間のすべての距離の平均を計算します。ここで、x(i)はクラスターk内の点です。KKKTkTkT_kx(0)x(0)x(0)x(i)x(i)x(i)x(i)x(i)x(i)kkk テストポイントは、このような距離が最小のクラスターに割り当てられます。 これは有効な分類アルゴリズムだと思いますか?理論的には、クラスターが線形フィッシング判別マッピング後のように「整形式」である場合、良好な分類精度が得られるはずです。 このアルゴをどう思いますか?私は試しましたが、その結果、分類は要素数が最大のクラスターに強く偏っています。 def classify_avg_y_space(logging, y_train, y_tests, labels_indices): my_labels=[] distances=dict() avg_dist=dict() for key, value in labels_indices.items(): distances[key] = sk.metrics.pairwise.euclidean_distances(y_tests, y_train[value]) avg_dist[key]=np.average(distances[key], axis=1) for index, value in enumerate(y_tests): average_distances_test_cluster = { key : avg_dist[key][index] for key in labels_indices.keys() } my_labels.append(min(average_distances_test_cluster, key=average_distances_test_cluster.get)) return my_labels

2
なげなわペナルティはリグレッサのサブセットにのみ適用されます
この質問は以前に聞いたことがありますが、回答がなかったので、もう一度尋ねるかもしれません。 なげなわペナルティをリグレッサの一部のサブセット、つまり目的関数に適用することに興味があります E=||y−X1β1−X2β2||2+λ||β1||1E=||y−X1β1−X2β2||2+λ||β1||1E = ||\mathbf{y} - \mathbf{X}_1 \boldsymbol{\beta}_1 - \mathbf{X}_2 \boldsymbol{\beta}_2||^2 + \lambda ||\boldsymbol{\beta}_1||_1 なげなわは\ boldsymbol {\ beta} _1にのみ適用されますβ1β1\boldsymbol{\beta}_1が、β2β2\boldsymbol{\beta}_2は再構築に関与します。 この背後にある理論はありますか?第二に、とにかくこれをsklearnで行うことはありますか?

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