タグ付けされた質問 「machine-learning」

機械学習アルゴリズムは、トレーニングデータのモデルを構築します。「機械学習」という用語は漠然と定義されています。これには、統計学習、強化学習、教師なし学習などとも呼ばれるものが含まれます。常に、より具体的なタグを追加します。

8
機械学習の「ホットアルゴリズム」とは何ですか?
これは、機械学習を学び始めた人からの素朴な質問です。私は最近、マースランドの本「機械学習:アルゴリズムの視点」を読んでいます。入門書としては便利だと思いますが、現在、最高の結果を出している高度なアルゴリズムについて説明します。私は主にバイオインフォマティクスに興味があります。生物学的ネットワークのクラスター化と生物学的配列のパターンの発見、特に一塩基多型(SNP)分析に適用されます。レビューや本を読むことをお勧めしてもらえますか?

1
SVMでの超平面からの距離の解釈
SVMを直感的に理解することにはいくつか疑問があります。SVMLightやLibSVMなどの標準ツールを使用して、分類用のSVMモデルをトレーニングしたとします。 このモデルをテストデータの予測に使用すると、モデルは各テストポイントの「アルファ」値を持つファイルを生成します。アルファ値が正の場合、テストポイントはクラス1に属し、そうでない場合はクラス2に属します。「アルファ」値が大きいテストポイントは、「高い」確率で対応するクラスに属すると言えますか。 最初の質問と同様に、SVMのトレーニングを受けています。SVは超平面の非常に近くにあります。それは、SVがそのクラスに高い確率で属することを意味しますか?クラスに属するポイントの確率を、「超平面」からの距離と関連付けることができますか?「アルファ」値は「超平面」からの距離を表しますか? ご意見ありがとうございます。

1
AdaBoostをいつ使用したいのですか?
仕事で繰り返し言及されているAdaBoost分類器のことを聞いたように、私はそれがどのように機能し、いつそれを使用したいのかについて、より良い感覚を得たいと思いました。私は先に進み、Googleで見つけた多くの論文とチュートリアルを読みましたが、分類器にはまだ理解できない問題があります: 私が見たほとんどのチュートリアルは、AdaBoostが多くの分類子の最適な重み付き組み合わせを見つけることについて語っています。これは私には理にかなっています。意味をなさないのは、AdaBoostが1人の弱い学習者しか受け入れないような実装(つまり、MALLET)です。これはどういう意味がありますか?AdaBoostに提供される分類器が1つだけの場合、重み1で同じ分類器を返すだけではいけませんか?最初の分類子から新しい分類子を生成する方法は? AdaBoostを実際に使用したいのはいつですか?私はそれが最高のすぐに使える分類器の1つになるはずだと読んだことがありますが、MaxEnt分類器をブーストしようとすると、70%以上のfスコアを得ていたので、AdaBoostはそれを殺し、f-代わりに非常に高い再現率と非常に低い精度で15%のようなスコア。だから今私は混乱しています。AdaBoostをいつ使用したいのですか?可能であれば、厳密に統計的な答えではなく、より直感的な答えを探しています。

2
機械学習のための時系列の順序付け
クロスバリデーションと時系列に関するRJ Hyndman の「研究のヒント」の1つを読んだ後、ここで定式化しようとする古い質問に戻りました。分類または回帰の問題では、データの順序は重要ではないため、k分割交差検証を使用できるという考え方です。一方、時系列では、データの順序が明らかに非常に重要です。 予測時系列のモデルを機械学習を使用する場合しかし、一般的な方法は、一連再形成することである{y1,...,yT}{y1,...,yT}\{y_1, ..., y_T\}を一連の「入出力ベクトル」に変換します。これは、時間に対して。ttt(yt−n+1,...,yt−1,yt;yt+1)(yt−n+1,...,yt−1,yt;yt+1)(y_{t-n+1}, ..., y_{t-1}, y_{t}; y_{t+1}) さて、この再整形が完了したら、結果の「入出力ベクトル」のセットを順序付ける必要がないと考えることができますか?たとえば、これらのデータを「学習」するためにn入力のフィードフォワードニューラルネットワークを使用すると、モデルにベクトルを表示する順序に関係なく、同じ結果に到達します。したがって、毎回モデルを再適合させる必要なしに、k分割交差検証を標準的な方法で使用できますか?

2
選択したフィーチャの数を減らすと、エラーのランダムフォレストOOB推定が改善されるのはなぜですか?
ランダムフォレストアルゴリズムを、数千の特徴を持つ2つの既知のグループに分割されたマイクロアレイデータセットの分類子として適用しています。最初の実行後、機能の重要性を確認し、5、10、および20の最も重要な機能を使用してツリーアルゴリズムを再度実行します。 すべての機能、トップ10および20について、エラー率のOOB推定値は1.19%であることがわかりましたが、トップ5の機能については0%です。 これは私には直観に反しているように思えるので、何かを見逃しているのか、間違ったメトリックを使用しているのかを説明できるかどうか疑問に思っていました。 ntree = 1000、nodesize = 1、mtry = sqrt(n)でRのrandomForestパッケージを使用しています


3
Kullback-Leibler(KL)発散の最大値は何ですか
私は私のpythonコードでKL発散を使用するつもりで、このチュートリアルを手に入れました。 そのチュートリアルでは、KLの発散を実装するのは非常に簡単です。 kl = (model * np.log(model/actual)).sum() 私が理解したように、確率分布modelとは、actual<= 1でなければなりません。 私の質問は、kの最大限界/最大可能値は何ですか?私のコードの上限については、kl距離の可能な最大値を知る必要があります。

1
キャレットglmnetとcv.glmnet
glmnetwithin caretを使用して最適なラムダを検索cv.glmnetし、同じタスクを実行するために使用することの比較には、多くの混乱があるようです。 次のような多くの質問が提起されました。 分類モデルtrain.glmnet対cv.glmnet? キャレットでglmnetを使用する適切な方法は何ですか? 「キャレット」を使用して「glmnet」を相互検証する しかし、答えはありません。これは、質問の再現性による可能性があります。最初の質問に続いて、非常に似た例を挙げますが、同じ質問があります:推定されるラムダはなぜそんなに違うのですか? library(caret) library(glmnet) set.seed(849) training <- twoClassSim(50, linearVars = 2) set.seed(849) testing <- twoClassSim(500, linearVars = 2) trainX <- training[, -ncol(training)] testX <- testing[, -ncol(testing)] trainY <- training$Class # Using glmnet to directly perform CV set.seed(849) cvob1=cv.glmnet(x=as.matrix(trainX),y=trainY,family="binomial",alpha=1, type.measure="auc", nfolds = 3,lambda = seq(0.001,0.1,by = …

1
GAM vs LOESS vsスプライン
コンテキスト:パラメトリックではない散布図に線を描画したいのでgeom_smooth()、ggplotin を使用していRます。geom_smooth: method="auto" and size of largest group is >=1000, so using gam with formula: y ~ s(x, bs = "cs"). Use 'method = x' to change the smoothing method.一般化された加法モデルのGAMスタンドを収集し、3次スプラインを使用して自動的に戻ります。 次の認識は正しいですか? レスは、特定の値で応答を推定します。 スプラインは、データ(一般化された加法モデルを構成する)に適合するさまざまな区分的関数を接続する近似であり、3次スプラインはここで使用される特定のタイプのスプラインです。 最後に、スプラインはいつ使用する必要があり、LOESSはいつ使用する必要がありますか?

2
素人の言葉でトンプソンサンプリングとは何ですか?
トンプソンサンプリングとその仕組みを理解できません。私はマルチアームバンディットについて読んでいて、Upper Confidence Bound Algorithmを読んだ後、トンプソンサンプリングがUCBよりも優れていることを多くのテキストが示唆しました。トンプソンサンプリングとは何ですか? さらに理解を深めるために、参照記事を自由に提供してください。

8
偶数と奇数を区別するためにニューラルネットワークをトレーニングする
質問:数字自体を入力としてのみ使用して、奇数と偶数を区別するようにNNをトレーニングすることは可能ですか? 次のデータセットがあります。 Number Target 1 0 2 1 3 0 4 1 5 0 6 1 ... ... 99 0 100 1 2つの入力ニューロン(変数が1つ、もう1つがバイアスニューロン)、隠れ層の9つのニューロン、非常に単純な遺伝的アルゴリズムを使用して1つの出力ニューロンでNNをトレーニングしました。各エポックで、2組の重み「ファイト" 互いに対して; エラーが最も大きいものが失われ、勝者の修正バージョンに置き換えられます。 このスクリプトは、AND、OR、XOR演算子などの単純な問題を簡単に解決しますが、奇数と偶数を分類しようとすると行き詰まります。今のところ、100のうち53の数字を特定するのが最善で、数時間かかりました。入力を正規化してもしなくても、違いはないようです。 不正行為をしたい場合は、データを前処理して、%2を入力としてNNにフィードすることもできますが、それはしたくありません。NNは、モジュロ演算子を含むすべての関数を近似できる必要があります(信じています)。私は何を間違えていますか?




2
ネストされた相互検証の使用
モデル選択に関する Scikit Learnのページでは、ネストされた相互検証の使用について言及されています。 >>> clf = GridSearchCV(estimator=svc, param_grid=dict(gamma=gammas), ... n_jobs=-1) >>> cross_validation.cross_val_score(clf, X_digits, y_digits) 2つの交差検証ループが並行して実行されます。1つはGridSearchCV推定器によってガンマを設定し、もう1つはcross_val_scoreによって推定器の予測パフォーマンスを測定します。結果のスコアは、新しいデータの予測スコアの公平な推定値です。 私が理解していることから、clf.fitクロス検証をネイティブに使用して、最適なガンマを決定します。その場合、上記のようにネストされたcvを使用する必要があるのはなぜですか?注では、ネストされたcvが予測スコアの「不偏推定値」を生成することに言及しています。それもそうではありませんclf.fitか? また、cross_validation.cross_val_score(clf, X_digits, y_digits)手順からclfの最良の推定値を取得できませんでした。どうやってそれができるのか教えていただけますか?

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