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

「経験とともに自動的に改善するコンピューターシステム」を構築する方法と原則。

2
スパースデータを含む方程式系を解く
40の独立変数(x1、...、x40)と1つの従属変数(y)を含む方程式のセットを解こうとしています。方程式の合計数(行数)は約300であり、yと予測値の間の平方和誤差の合計を最小化する40個の係数のセットを解きたい。 私の問題は、行列が非常にスパースであり、スパースデータを使用して連立方程式を解くための最良の方法がわかりません。データセットの例を以下に示します。 y x1 x2 x3 x4 x5 x6 ... x40 87169 14 0 1 0 0 2 ... 0 46449 0 0 4 0 1 4 ... 12 846449 0 0 0 0 0 3 ... 0 .... 私は現在、これを解決するために遺伝的アルゴリズムを使用しており、結果は、観測されたものと期待されたもののおよそ2倍の違いで出てきます。 スパースデータを使用して方程式のセットを解くことができるさまざまな方法や手法を誰かが提案できますか?

1
継続的なオンラインクラスター識別のソリューション?
架空のオンラインクラスタリングアプリケーションの例を紹介します。 時間nで、ポイント1、2、3、4が青いクラスターAに割り当てられ、ポイントb、5、6、7が赤いクラスターBに割り当てられます。 時間n + 1で、青いクラスターAに割り当てられる新しいポイントaが導入されますが、ポイントbも青いクラスターAにも割り当てられます。 最後に、ポイント1、2、3、4、a、bはAに属し、ポイント5、6、7はBに属します。私にはこれは合理的に思えます。 一見単純そうに見えるのは、実際には少しトリッキーです-タイムステップ全体で識別子を維持するためです。より境界線の例でこの点を明確にしてみましょう: 緑の点は2つの青と2つの赤の点を1つのクラスターに統合し、私は任意に青に着色することを決めました-これはすでに私の人間のヒューリスティックな考え方です! この決定を行うコンピューターは、ルールを使用する必要があります。たとえば、ポイントがクラスターにマージされる場合、クラスターのIDは過半数によって決定されます。この場合、ドローに直面します-青(ここでは青)クラスターの青と赤の両方が有効な選択肢である可能性があります。 緑の点に近い5番目の赤い点を想像してください。次に、大部分が赤(3赤vs 2青)になるので、新しいクラスターには赤を選択するのが適切です。ただし、右端のクラスターの赤をより明確に選択することは、それらが赤であり、おそらくそのままであるはずなので、矛盾します。 。 これについて考えるのはおかしい。結局のところ、これには完璧なルールはないと思います。むしろ、安定性基準を最適化するヒューリスティックです。 これは最終的に私の質問につながります: この「問題」には、参照できる名前がありますか? これに対する「標準」ソリューションはありますか... ...多分そのためのRパッケージさえありますか? 反復クラスタリングにおけるクラスターIDの合理的な継承

4
特徴抽出手法-データシーケンスの要約
シーケンスであるいくつかの予測変数があるモデル(分類または回帰)を構築することがよくあり、モデルに予測子として含めるために可能な限り最良の方法でそれらを要約するための手法の推奨事項を見つけようとしています。 具体的な例として、顧客が次の90日間(tからt + 90の間のいつでも、したがってバイナリの結果)に会社を去るかどうかを予測するモデルが構築されているとします。利用可能な予測子の1つは、期間t_0からt-1までの顧客の財政収支のレベルです。たぶん、これは過去12か月間の毎月の観測値(つまり、12の測定値)を表します。 このシリーズから機能を構築する方法を探しています。平均、高、低、標準偏差などの各顧客シリーズの説明を使用し、OLS回帰を当てはめて傾向を取得します。彼らの特徴を計算する他の方法はありますか?変化または変動性の他の測定? 追加: 以下の応答で述べたように、動的タイムワーピング(DTW)を使用して、結果の距離行列で階層的クラスタリングを行うことも検討しました(ただし、ここに追加するのを忘れました)。いくつかのクラスターを作成し、機能としてクラスターメンバーシップを使用します。スコアリングテストデータは、新しいケースとクラスターの重心でDTWが実行されたプロセスに従う必要があります-新しいデータシリーズを最も近い重心に一致させる...

4
分類ルールを生成するためのアルゴリズム
したがって、分類子によって解決される従来の問題領域にかなりきちんと適合する機械学習アプリケーションの可能性があります。つまり、アイテムを記述する一連の属性と、それらが最終的に含まれる「バケット」があります。ただし、モデルを作成するのではなくNaive Bayesや同様の分類子のような確率の場合、出力をエンドユーザーが確認および変更できるほぼ人間が読めるルールのセットにする必要があります。 アソシエーションルールの学習は、この種の問題を解決するアルゴリズムのファミリーのように見えますが、これらのアルゴリズムは、機能の一般的な組み合わせを特定することに焦点を当てているようで、これらの機能が指す可能性のある最終的なバケットの概念を含みません。たとえば、データセットは次のようになります。 Item A { 4-door, small, steel } => { sedan } Item B { 2-door, big, steel } => { truck } Item C { 2-door, small, steel } => { coupe } 「大きくて2ドアの場合はトラック」というルールが必要です。「4ドアの場合も小さい」というルールは必要ありません。 私が考えることができる1つの回避策は、単純に相関ルール学習アルゴリズムを使用して、エンドバケットを含まないルールを無視することですが、それは少しハックに思えます。そこにあるアルゴリズムのファミリーを見逃したことがありますか?それとも、最初から間違って問題に取り組んでいますか?


2
機能スケーリングの結果
私は現在SVMを使用しており、トレーニング機能を[0,1]の範囲にスケーリングしています。最初にトレーニングセットを適合/変換し、次に同じ変換をテストセットに適用します。例えば: ### Configure transformation and apply to training set min_max_scaler = MinMaxScaler(feature_range=(0, 1)) X_train = min_max_scaler.fit_transform(X_train) ### Perform transformation on testing set X_test = min_max_scaler.transform(X_test) トレーニングセットの特定のフィーチャの範囲が[0,100]であり、テストセットの同じフィーチャの範囲が[-10,120]であると仮定します。トレーニングセットでは、その機能は[0,1]に適切にスケーリングされますが、テストセットでは、その機能は[-0.1,1.2]のような最初に指定された範囲外の範囲にスケーリングされます。 テストセットの機能がモデルのトレーニングに使用されている機能の範囲外にあると、どのような結果になるのでしょうか。これは問題ですか?

1
t-SNE Pythonの実装:Kullback-Leibler divergence
[1]の場合と同様に、t-SNEは、特定の条件が満たされるまで、カルバックライブラー(KL)の発散を徐々に減らします。t-SNEの作成者は、KLダイバージェンスを視覚化のパフォーマンス基準として使用することを提案しています。 t-SNEが報告するカルバックライブラー分岐を比較できます。t-SNEを10回実行し、KLダイバージェンスが最も低いソリューションを選択することは完全に問題ありません[2] 私はt-SNEの2つの実装を試しました: python:sklearn.manifold.TSNE()。 R:tsne、library(tsne)から。 これらの実装はどちらも、冗長性が設定されている場合、反復ごとにエラー(カルバックライブラーダイバージェンス)を出力します。ただし、ユーザーがこの情報を取得することを許可していないため、私には少し奇妙に見えます。 たとえば、コード: import numpy as np from sklearn.manifold import TSNE X = np.array([[0, 0, 0], [0, 1, 1], [1, 0, 1], [1, 1, 1]]) model = TSNE(n_components=2, verbose=2, n_iter=200) t = model.fit_transform(X) 生成する: [t-SNE] Computing pairwise distances... [t-SNE] Computed conditional probabilities for sample 4 / …

3
TensorFlowは完全な機械学習ライブラリですか?
私はTensorFlowを初めて使用するので、使用する前にTensorFlowの機能と欠点を理解する必要があります。これはディープラーニングフレームワークであることは知っていますが、テンソルフローで使用できる他の機械学習アルゴリズムは別です。たとえば、TensorFlowを使用してSVMまたはランダムフォレストを使用できますか?(私はこれがクレイジーに聞こえることを知っています) つまり、TensorFlowでサポートされている機械学習アルゴリズムを知りたいのです。それは単なるディープラーニングか何かですか?


3
LSTM、BiLSTMとは何ですか?
私はディープラーニングに非常に慣れていないため、特にLSTMとBiLSTMとは何か、いつ使用するか(主なアプリケーション分野)を知りたいと思っています。LSTMとBILSTMがRNNよりも人気があるのはなぜですか? これらのディープラーニングアーキテクチャを教師なしの問題で使用できますか?

4
機械学習とディープラーニング
「機械学習」と「深層学習」という用語の違いに少し戸惑っています。私はそれをグーグル化し、多くの記事を読みましたが、それでも私にはあまり明確ではありません。 Tom Mitchellによる機械学習の既知の定義は次のとおりです。 コンピュータプログラムは、経験から学ぶと言われているEタスクのいくつかのクラスに関してTと性能指標のPのタスクでその性能ならば、Tは、によって測定されるように、P、経験を向上E。 犬と猫を自分の飼い猫Tとして分類する画像分類問題を取り上げた場合、この定義から、MLアルゴリズムに犬と猫の画像の束を与えると(経験E)、MLアルゴリズムは次のことを学習できます。新しい画像を犬または猫のいずれかとして区別します(パフォーマンス測定値Pが明確に定義されている場合)。 次にディープラーニングがあります。ディープラーニングは機械学習の一部であり、上記の定義が成り立つことを理解しています。タスクTでのパフォーマンスは、経験Eで向上します。今までは大丈夫。 このブログでは、機械学習とディープラーニングには違いがあると述べています。Adilによる違いは、(従来の)機械学習では機能を手作りする必要があるのに対し、ディープラーニングでは機能を学習することです。次の図は、彼の発言を明らかにしています。 (従来の)機械学習では機能を手作りする必要があるという事実に戸惑っています。トムミッチェルによる上記の定義から、これらの機能は経験EとパフォーマンスPから学習されると思います。機械学習で他に何を学ぶことができますか? ディープラーニングでは、経験から、機能を学び、パフォーマンスを改善するためにそれらが互いにどのように関連しているかを理解します。機械学習では機能を手作りする必要があると結論づけることはできますか?学習されるのは機能の組み合わせです。それとも他に何か不足していますか?

4
データセットサイズでの過適合/過適合
下のグラフでは、 x軸=> データセットサイズ y軸=> 交差検証スコア 赤い線はトレーニングデータ用です 緑の線はテストデータ用です 私が言及しているチュートリアルで、著者は、赤い線と緑の線が重なる点は、 より多くのデータを収集しても、汎化のパフォーマンスが向上する可能性は低く、データが不足しがちな地域にいます。したがって、より多くの容量を持つモデルを試してみるのは理にかなっています 太字の意味とその意味がよくわかりません。 どんな助けにも感謝します。


2
SVMとロジスティック回帰の違い
私は読んでいてSVM、カーネル化されSVMsていないのは線形セパレータにすぎないという点に直面しました。したがって、SVM境界とロジスティック回帰の唯一の違いは、境界を選択する基準ですか? どうやら、SVM最大マージン分類子を選択し、ロジスティック回帰はcross-entropy損失を最小化するものです。SVM ロジスティック回帰またはその逆のパフォーマンスが向上する状況はありますか?

2
Catboostのカテゴリ機能の処理オプション(CTR設定)?
連続的なターゲット変数(つまり、回帰)を予測する多数のカテゴリ特徴(> 80%)を持つデータセットを使用しています。カテゴリ機能を処理する方法についてかなり読んでいます。そして、私が過去に使用したワンホットエンコーディングは、特に多くのレベルを持つ多くのカテゴリ機能に関しては、非常に悪い考えであることを学びました(これらの投稿とこれを読んでください)。 カテゴリベースの機能のターゲットベースのエンコード(スムージング)などの方法に出くわしましたが、多くの場合、Kaggleのこの投稿/カーネルの各機能のターゲット値の平均に基づいています。それでも、CandBoostがYandexグループによって昨年リリースされた意思決定ツリーに対するオープンソースのグラディエントブースティングを見つけるまで、より具体的な方法を見つけるのに苦労しています。これらは、カテゴリ機能に対して追加の統計カウントオプションを提供しているようで、単純なワンホットエンコーディングやスムージングよりもはるかに効率的です。 問題は、ドキュメントがCTR設定の設定方法に役立たないことです。別の方法を試しましたが、うまくいきません。このドキュメントでは、CTR設定はsimple_ctrであり、(CTR設定セクション)として指定されています。 ['CtrType[:TargetBorderCount=BorderCount][:TargetBorderType=BorderType][:CtrBorderCount=Count][:CtrBorderType=Type][:Prior=num_1/denum_1]..[:Prior=num_N/denum_N]', 'CtrType[:TargetBorderCount=BorderCount][:TargetBorderType=BorderType][:CtrBorderCount=Count][:CtrBorderType=Type][:Prior=num_1/denum_1]..[:Prior=num_N/denum_N]', ...] これは非常に単純な例です。データは次のようになります。 import pandas as pd import catboost data = [{'profit': '342','country': 'holland','account': 'Jones LLC', 'saving': 150, 'debt': -60, 'age': 28}, {'profit': '875','country': 'germany','account': 'Alpha Co', 'saving': 200, 'debt': -10, 'age': 42}, {'profit': '127','country': 'italy','account': 'Blue Inc', 'saving': 50, 'debt': -300, 'age': 38 }] …

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