問題タブ [machine-learning]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
algorithm - 他のユーザーが好きなものに基づいてユーザーが欲しいものを見つけるためのアルゴリズム
家族の好みに合わせてHTPCで映画を分類するアプリを書こうと思っています。
統計やAIはわかりませんが、ここにあるものはとてもジューシーに見えます。どこから始めたらいいのかわからない。
これが私が達成したいことです:
各ユーザーの好みのサンプルのセットを作成し、各サンプル属性を個別に評価します。たとえば、ユーザーが西部劇を非常に好む場合、西部劇のジャンルはそのユーザーにとってもう少し重要になります(俳優、監督などの他の属性についても同様です)。
ユーザーは、他のユーザーのいいねに基づいて提案を得ることができます。たとえば、ユーザーAとBの両方がSpielberg(ユーザー間の接続)を好み、ユーザーBがバットマンビギンズを愛しているが、ユーザーAがケイティホームズを嫌っている場合は、それに応じてユーザーAの映画の重さを量ります(ここでも、各属性を別々に、たとえば、ユーザーAはアクション映画があまり好きではないので、評価を少し下げてください。ケイティホームズは主役ではないので、他の属性ほど考慮しないでください)。
基本的に、ユーザーAのセットをユーザーBのセットと比較し、ユーザーAの評価を考え出します。
私はこれを実装する方法について大まかな考えを持っていますが、いくつかの明るい心はすでにはるかに優れた解決策をすでに考えていると確信しています、それで...何か提案はありますか?
実際、簡単な調査の結果、ベイジアンフィルターが機能するようです。もしそうなら、これはより良いアプローチでしょうか?映画データを「正規化」し、ユーザーごとに分類器をトレーニングしてから、各映画を分類するのと同じくらい簡単でしょうか。
あなたの提案にいくつかの脳融解の概念が含まれている場合(私はこれらの主題、特にAIの経験がありません)、肉のようなものに飛び込む前に私が研究するためのいくつかの基本のリストも含めていただければ幸いです。
ありがとう!
machine-learning - 確率推定量の品質をテストする方法は?
イベントの確率(スポーツゲームの結果ですが、それも重要ではありません)を推定するために、ヒューリスティック(ANNですが、それは重要ではありません)を作成しました。いくつかの入力が与えられると、このヒューリスティックはイベントの確率を教えてくれます。次のようなもの:これらの入力を考えると、チームBは65%の確率で勝ちます。
私は現在結果(以前にプレイしたゲーム)の入力データの大規模なセットを持っています。推定量の精度を評価するためにどの式/メトリックを使用できますか。
私が見ている問題は、推定者がイベントの確率が20%であり、実際にイベントが発生していると言った場合です。見積もりが正しいか間違っているかを判断する方法がありません。多分それは間違っていて、イベントはそれよりも可能性が高かった。たぶんそれは正しいです、イベントは約20%の確率で発生し、実際に発生しました。おそらくそれは間違っています。イベントが発生する可能性は非常に低く、たとえば1000分の1ですが、今回はたまたま発生しました。
幸いなことに、私はこれらの実際のテストデータをたくさん持っているので、おそらくそれらを使用してヒューリスティックを修飾する方法があります。
誰かアイデアがありますか?
c# - C# の機械学習ライブラリ
C# に機械学習ライブラリはありますか? 私はWEKAのようなものを求めています。ありがとうございました。
algorithm - 最高のパフォーマンス-最近傍を解くための重要なアルゴリズム
x、yペアのリストがあります。すべてのペアは、2D空間上の点を表します。このリストから特定のポイントxq、yqに最も近いポイントを見つけたいと思います。この問題に最適なパフォーマンスクリティカルなアルゴリズムは何ですか?ポイントのLispは変更されません。つまり、挿入と削除を実行する必要はありません。このセットでターゲットxq、yqポイントの最近傍を見つけたいだけです。
編集1:すべてに感謝します!Stephan202が正しく推測したように、私はこれを繰り返し行いたいと思います。関数のように。リストは必ずしもソートされているわけではありません(実際、どのようにソートできるかわかりません。2列のaとyの主キーを持つテーブルのように?それが役立つ場合は、リストをソートします)。
一度リストに基づいてデータ構造を構築し、次にこの生成されたデータ構造を関数で使用します(このプロセス自体が関連している場合)。
ジェイコブありがとう。KDツリーのデータ構造が答えになるのに適しているようです(そして、そうだと思います。関連する結果が得られたら更新します)。
編集2:この問題は「最近傍」と呼ばれていることがわかりました。
編集3:最初のタイトルは「アルゴリズムを求めて(空間クエリと空間インデックス用)(最近傍)」でした。新しいタイトルを選択しました:「ベストパフォーマンス-最近傍を解くための重要なアルゴリズム」。初期データに対して挿入および削除操作を実行したくなく、それらから新しいポイント(挿入されない)に最も近いデータだけが必要なため、(現在)KDツリーで作業することにしました。ありがとうございます!
matlab - Matlabnewffメソッドで出力サイズを設定する方法
概要: 体の部分の角度に応じて、いくつかの画像を分類しようとしています。
人体は(長方形として)10個のパーツで構成されていると仮定し、各パーツの中心を見つけ、胴体を参照して各パーツの角度を計算します。そして、私には3つのアクションカテゴリがあります:Handwave-Walking-Running。私の目標は、どのテスト画像がどのアクションカテゴリに分類されるかを見つけることです。
事実: TrainSet:1057x10機能セット、1057は画像の数を表します。TestSet:821x10
アクションカテゴリの分類のパーセンテージを示す各行の出力を3x1行列にします。row1:Handwave row2:Walking row3:Running
コード:
質問: Matlab newffメソッドを使用していますが、出力は常に3x1ではなくNx10行列です。入力セットは3つのクラスとしてグループ化する必要がありますが、10のクラスにグループ化されています。
ありがとう
algorithm - ソーシャルネットワークで友達を分類する
私は次
の問題に直面しています。たとえば、 uがソーシャルネットワークユーザーであり、友人のリストF(u)があるとします。パーティションは関数F->Gであり、Gは高校、大学、職場などのグループのセットです。F
を分割するアルゴリズムを考え出す必要があります:
- 入力はFであり、Fのすべてのf ( uの各友達の友達のリスト)のF (f)でもあります。
- 実行中、アルゴリズムはuの質問をすることができます(たとえば、「特定のユーザーvに最適なグループは何ですか?」)。
- 質問の量は最小限に抑える必要があります(最小限の数は実際には明確な数ではありませんが、友人の数の5%はほぼ正しいように思われます)。
明らかに、結果のパーティションは最適ではありませんが、後の改良の開始点として受け入れられるはずです。
どんな考えでも大歓迎です
編集:いいえ、宿題ではありません。宿題には、より明確に定義された要件と目標機能があると思います。とにかくいいえ、これは実際に私が直面している現実の問題です。
また、私はそれを少し単純化したかもしれませんが、実際にはユーザーは多くのグループの一部である可能性があります(したがって、F-> P(G)のようになります。ここで、P(G)はGの場合のパワーグループです)、より良いアルゴリズムそれを行うことができるでしょう。
matlab - MATLAB: 自己組織化マップ (SOM) クラスタリング
体の部分間の角度に応じて、いくつかの画像をクラスター化しようとしています。
各画像から抽出された特徴は次のとおりです。
したがって、入力データはサイズが 1057x10 の行列です。ここで、1057 は画像の数を表し、10 は体のパーツと胴体の角度を表します。同様に、testSet は 821x10 マトリックスです。
入力データのすべての行を 88 個のクラスターでクラスター化する必要があります。次に、これらのクラスターを使用して、TestData がどのクラスターに分類されるかを見つけますか?
以前の作業では、非常に単純なK-Means クラスタリングを使用しました。K-Means にデータを 88 個のクラスターにクラスター化するように依頼するだけです。また、テスト データの各行と各クラスターの中心との間の距離を計算する別の方法を実装し、最小値を選択します。これは、対応する入力データ行のクラスターです。
2 つの質問があります。
MATLAB でSOMを使用してこれを行うことは可能ですか? AFAIK SOMはビジュアルクラスタリング用です。ただし、各クラスターの実際のクラスを知る必要があるため、後でテスト データが属するクラスターを計算してラベルを付けることができます。
より良い解決策はありますか?
statistics - 少量の証拠に基づいて確率を効率的に推定するにはどうすればよいですか?
私は何ヶ月もの間、これに対する答えを見つけようとしてきました (機械学習アプリケーションで使用するため)。それほど難しい問題ではないように思えますが、私はソフトウェア エンジニアであり、数学は決して私の強みの一つ。
シナリオは次のとおりです。
私は (おそらく) 不均等に重み付けされたコインを持っており、それが表になる確率を計算したいと考えています。このコインが入った箱と同じ箱のコインの平均確率はpであり、これらの確率の標準偏差 ( sと呼びます) も知っています。
(平均値と標準偏差以外の他のコインの確率の要約プロパティが役立つ場合は、おそらくそれらも取得できます。)
コインをn回投げて、表がh回出る。
単純なアプローチは、確率がちょうどh/nであるというものですが、n が小さい場合、これは正確ではない可能性があります。
nが小さい場合でも、 pとsを考慮してより正確な確率推定値を得る計算効率の良い方法 (つまり、非常に大きな数または非常に小さな数を含まない)はありますか?
ほとんどの数学表記は不可解であることがわかったので、答えが数学表記ではなく疑似コードを使用できれば幸いです;-)
その他の回答: SO には類似した回答が他にもいくつかありますが、提供された回答は不十分です。たとえば、これは、倍精度浮動小数点数で表現できるよりもはるかに小さい数値をすばやく含むため、計算効率がよくありません。そして、これは間違っていることが判明しました。
c - パーセプトロン学習アルゴリズムが 0 に収束しない
ANSI C でのパーセプトロンの実装は次のとおりです。
使用しているトレーニング セット: Data Set
無関係なコードをすべて削除しました。基本的に、ファイルを読み取り、そこから値を、、 のtest1.txt
3 つの配列にロードします。x
y
outputs
次に、何らかの理由で 0 に収束しない (0 に収束する必要がある)パーセプトロン学習アルゴリズムglobalError
があるため、無限の do while ループが発生します。
小さいトレーニング セット (5 ポイントなど) を使用すると、かなりうまく機能します。どこに問題があるのでしょうか?
このC# パーセプトロン アルゴリズムと非常によく似たアルゴリズムを作成しました。
編集:
より小さなトレーニング セットの例を次に示します。
c++ - 優れたC++サポートベクターマシン(SVM)ライブラリを知っていますか?
libsvm http://www.csie.ntu.edu.tw/~cjlin/libsvm/を試しましたが、今のところ私は気が狂っていません。
SVMLightとTinySVMについても聞いたことがあります。それらを試しましたか?新しいプレーヤーはいますか?
ありがとう !