データサイエンス

データサイエンスの専門家、機械学習の専門家、およびこの分野に関する知識が豊富な方へ

1
Spark ALS:新規ユーザーに推奨
質問 SparkでトレーニングされたALSモデルで新しいユーザーの評価を予測するにはどうすればよいですか?(新規=トレーニング時間中には表示されません) 問題 私はここで公式のSpark ALSチュートリアルに従っています: http://ampcamp.berkeley.edu/big-data-mini-course/movie-recommendation-with-mllib.html まともなMSEで良いレコメンダーを構築できますが、新しいデータをモデルに入力する方法に苦労しています。このチュートリアルでは、トレーニング前に最初のユーザーの評価を変更していますが、これは実際にはハックです。彼らは次のヒントを与えます: 9.2。行列係数の増加: このチュートリアルでは、トレーニングセットに評価を追加します。推奨事項を取得するためのより良い方法は、最初に行列因数分解モデルをトレーニングしてから、評価を使用してモデルを拡張することです。これが面白そうに思える場合は、MatrixFactorizationModelの実装を確認し、新しいユーザーと新しい映画のモデルを更新する方法を確認できます。 ただし、この実装は私にはまったく役立ちません。理想的には、私は次のようなものを探しています: predictions = model.predictAllNew(newinput) しかし、そのような方法は存在しません。元のRDDを変更することもできますが、モデルを再トレーニングする必要があるため、それも理想的なソリューションではありません。きっともっとエレガントな方法があるに違いない? 私が今いるところ: 新しいベクトルの潜在的な表現を見つける必要があると思います。元の論文によると、次のように計算できます。 バツあなた= (YTCあなたY+ λのI)− 1YTCあなたp (u )バツあなた=(YTCあなたY+λ私)−1YTCあなたp(あなた)X_u = (Y^T C^u Y + \lambda I)^{-1} Y^T C^u p(u) CあなたCあなたC^u 私の現在の試み: V = model.productFeatures().map(lambda x: (x[1])).collect() #product latent matrix Y Cui = alpha * np.abs(newinput) Cui = …

4
特徴選択と分類精度の関係
分類器で使用可能な機能のサブセットを選択する方法の1つは、基準(情報ゲインなど)に従ってそれらをランク付けし、分類器とランク付けされた機能のサブセットを使用して精度を計算することです。 たとえば、フィーチャがA, B, C, D, Eであり、次のようD,B,C,E,Aにランク付けされている場合は、精度を計算しD、D, B次にD, B, C、次にD, B, C, E... を使用して、精度が低下し始めます。減少し始めたら、機能の追加を停止します。 例1(上記)ではF, C, D, A、精度を低下させるため、フィーチャを選択し、他のフィーチャをドロップします。 その方法では、モデルに機能を追加すると、特定の時点まで分類子の精度が向上し、その後、機能を追加すると精度が低下すると想定しています(例1を参照)。 しかし、私の状況は異なります。上記の方法論を適用しましたが、機能を追加すると精度が低下し、その後は精度が上がることがわかりました。 このようなシナリオでは、どのように機能を選択しますか?F残りをピックアンドドロップするだけですか?なぜ精度が低下してから上昇するのか、何かご存知ですか

4
一緒によく購入するアイテムを視覚化
次の構造のデータセットがCSVファイルに挿入されています。 Banana Water Rice Rice Water Bread Banana Juice 各行は、一緒に購入されたアイテムのコレクションを示しています。例えば、最初の行は、アイテムがことを示しBanana、Water、そしてRice一緒に購入しました。 次のような視覚化を作成したいと思います。 これは基本的にグリッドチャートですが、入力構造を読み取って上記のようなチャートを出力として生成できるツール(おそらくPythonまたはR)が必要です。

3
データセットを不均衡と見なす必要があるのはいつですか?
データセット内の正と負の例の数が不均衡な状況に直面しています。 私の質問は、データセットである種のバランシングを強制するために大きなカテゴリをサブサンプリングする必要があるときを教えてくれる経験則がありますか? 例: 正の例の数が1,000で負の例の数が10,000の場合、データセット全体で分類器をトレーニングする必要がありますか、それとも負の例をサブサンプリングする必要がありますか? 1,000の正の例と100,000の負の例についても同じ質問です。 10,000人が肯定的で1,000人が否定的である場合も同じ質問です。 等...

1
Kerasを使用したディープラーニングのためのデータの再形成
私はケラスの初心者であり、ライブラリが実際にどのように機能するかを理解するためにMNISTの例から始めました。Kerasサンプルフォルダー内のMNIST問題のコードスニペットは次のようになります。 import numpy as np np.random.seed(1337) # for reproducibility from keras.datasets import mnist from keras.models import Sequential from keras.layers import Dense, Dropout, Activation, Flatten from keras.layers import Convolution2D, MaxPooling2D from keras.utils import np_utils batch_size = 128 nb_classes = 10 nb_epoch = 12 # input image dimensions img_rows, img_cols = 28, …

3
Word2VecとDoc2Vecはどちらも分布表現ですか、それとも分散表現ですか?
私は、分布表現が、類似した文脈で出現する単語は類似した意味を持つ傾向があるという分布仮説に基づいていることを読みました。 Word2VecとDoc2Vecはどちらも、この仮説に従ってモデル化されています。ただし、元の論文では、Distributed representation of words and phrasesととタイトルが付けられていDistributed representation of sentences and documentsます。したがって、これらのアルゴリズムは、分散表現または分散表現に基づいています。 LDAやLSAなどの他のモデルについてはどうでしょうか。

2
Python機械学習/データサイエンスプロジェクトの構造
Python Machine Learningプロジェクトをどのように編成するべきかについての情報を探しています。Pythonの通常のプロジェクトにはCookiecutterがあり、R ProjectTemplateがあります。 これは現在のフォルダー構造ですが、Jupyter Notebookと実際のPythonコードを混在させているため、あまり明確ではないようです。 . ├── cache ├── data ├── my_module ├── logs ├── notebooks ├── scripts ├── snippets └── tools 私はスクリプトフォルダーで作業していて、現在すべての関数をmy_moduleの下のファイルに追加していますが、データのロードエラー(相対パス/絶対パス)やその他の問題が発生します。 このトピックに関する適切なベストプラクティスや適切な例は、いくつかのKaggle競合ソリューションと、そのようなノートブックの最初にすべての機能が凝縮されたいくつかのノートブック以外には見つかりませんでした。
10 python 

2
SQLテーブルの自動異常検出用ツール?
本質的にログである大きなSQLテーブルがあります。データはかなり複雑で、すべてのデータを理解せずに異常を特定する方法を見つけようとしています。私は異常検出のためのツールをたくさん見つけましたが、それらのほとんどは「中間者」のような種類、すなわちElastic Search、Splunkなどを必要とします。 ベースラインを構築し、異常を自動的に警告するSQLテーブルに対して実行できるツールを知っている人はいますか? これは怠惰に聞こえるかもしれませんが、各イベントタイプの意味と各イベントに関連する他のフィールドを学習しているため、個別のレポートスクリプトを作成するのに数十時間を費やしてきました。意味のある方法。テーブルには41列があり、5億行(3年分のデータ)しかヒットしません。

2
ggvis vs. ggplot2 + Shiny; インタラクティブな視覚化のためにどちらを選択しますか?
こちらのCrossValidatedにも同様の質問があり、その回答を読みました。私の質問は少し異なります。データを視覚化するだけではなく、視覚化したいものをどちらのパッケージでも視覚化するのは簡単ではありません。 プロットに2セットのポイント(座標)があります。エッジを追加して、グラフのようにします。ポイントがある場合、問題の性質に基づいて、プロットに(n / 2)^ 2エッジを追加する必要があります。x,yx,yx,ynnn(n/2)2(n/2)2(n/2)^2 次に、いくつかのインタラクティブな機能をプロットに追加します。たとえば、1つの点(頂点)をクリックすると、このクリックされた頂点に接続されていない他のすべての頂点が非表示になり、より明確で焦点の合ったプロットが表示されます。 自分のプロジェクトに適したネットワーク視覚化パッケージを見つけようとしましたが、すべてがエッジまたはノードの接続に関するデータを使用し、特定のレイアウトアルゴリズムに基づくネットワークを提供しているようです。データが違います。ノードの座標があり、それらの間にいくつかのエッジを確立したいと思います。私のデータでは、ノードには独自の固定位置があり、移動することはできません。 最後に、パッケージをggvisおよびに絞り込みましたggplot2。ggvisインタラクティブなプロットを生成するための意図的な設計に加えて、新しくて新鮮です。しかし、それggplot2+Shinyがインタラクティブなプロットを生み出すこともできることを知りました。(それは正しいですか?)さらに、私ggplot2はの機能がより多様で成熟していると考えましたggvis。たとえばggplot2、ズーム機能はあるものの、ズーム機能はありggvisません。さらに重要なのは、ggvis成長して変化しているように、1年ほどで技術的に陳腐化したりバグが発生したりする作業に多くの時間を費やしたくないということです。私がに基づいてコーディングした場合、これが事実だと思いましたggvis。 では、私の選択(ggplot2+shiny)を評価して、私がやりたいことを実行する可能性について教えてください。 言及されたパッケージのどれも知らなかったので、私はggplot2ウィッカムの本から学び始めました、そしてそれは大好きです!しかし、私は数週間を費やして、この驚くべきパッケージがの助けを借りてもやりたいことを実行できないことを知って恐れていますShiny。 PS:可能性のあるユーザーがダウンロードして実行できるように、最終的なコードをgithubに配置したいと考えています。したがって、ウェブアプリケーションを作成する必要はありません。ウェブサイトやインタラクティブマップをオンラインにする必要はありません。Rstudioの内部から実行できるインタラクティブなプロットが必要です。

3
ベイズネットワークのエッジの方向は関係ありませんか?
今日の講義では、ベイズネットワークのエッジの方向は本当に重要ではないと主張されました。因果関係を表す必要はありません。 ベイズネットワークでは単一のエッジを切り替えられないことは明らかです。たとえば、をV = { v 1、v 2、v 3 }およびE = { (v 1、v 2)、(v 1、v 3)、(v 2、v 3)}。切り替える場合(vG=(V,E)G=(V,E)G = (V, E)V={v1,v2,v3}V={v1,v2,v3}V = \{v_1, v_2, v_3\}E={(v1,v2),(v1,v3),(v2,v3)}E={(v1,v2),(v1,v3),(v2,v3)}E=\{(v_1, v_2), (v_1, v_3), (v_2, v_3)\}から(v 3、v 1)までの場合、 Gは非循環性ではなくなり、ベイズネットワークではなくなります。これは主にその時の確率をどのように見積もるかという実際的な問題のようです。このケースは答えるのがはるかに難しいようですので、スキップします。(v1,v3)(v1,v3)(v_1, v_3)(v3,v1)(v3,v1)(v_3, v_1)GGG これにより、次の質問ができるようになりました。 有向非循環グラフ(DAG)がすべてのエッジを反転させてもDAGを保持することは可能ですか? DAG とデータが指定されていると仮定します。次に、逆DAG G invを作成します。両方のDAGについて、データを対応するベイズネットワークに適合させます。これで、欠けている属性を予測するためにベイズネットワークを使用する一連のデータが得られました。両方のDAGで異なる結果になる可能性はありますか?(例が出てきたらボーナス)GGGGinvGinvG_\text{inv} 2と類似するが、単純:想定DAG 及びデータが与えられます。あなたは、新しいグラフ作成することもGを"限り、エッジの任意のセットを反転させてGが「非周期まま。予測に関してはベイズネットワークは同等ですか?GGGG′G′G'G′G′G' 因果関係を表すエッジがある場合、何かを得ますか?

2
Rにおけるデータサイエンスのためのソフトウェアテスト
私はPythonコードをテストするとき、特に他のモジュールや他のコードと統合する必要があるときに、Nose、Tox、またはUnittestをよく使用します。ただし、MLのモデリングと開発にPythonよりもRを使用していることに気づきました。私は自分のRコードを実際にテストしていないことに気付きました(さらに重要なことに、私は本当にそれをうまく行う方法がわかりません)。だから私の質問は、PythonでNose、Tox、Unittestと同じようにRコードをテストできる優れたパッケージとは何ですか。チュートリアルなどの参考資料も大歓迎です。 同様のRのパッケージのボーナスポイント 仮説 または フィーチャーフォージ 関連トーク: Trey Causey:データサイエンティストのテスト

2
問題のスペースが大きすぎる場合、AIはどのように行動することを学びますか
私は実験と例を通して最もよく学びます。私はニューラルネットワークについて学んでいて、分類と回帰についてかなりよく理解していて、教師ありと教師なしの学習もしていますが、静かに理解できないものに遭遇しました。 AIをトレーニングして複雑なゲームをプレイしたい場合は、RTSのようなものを考えています(Age of Empires、Empire Earthなど)。これらのタイプのゲームでは、通常、プレーヤーによって制御される多数のエンティティ(ユニット、建物)があり、それぞれに異なる機能があります。AIが分類することの問題のように思われます(たとえば、そのユニットとそのアクションを選択します)。ただし、ユニットの数は変数であるため、このように分類の問題をどのように処理しますか? 私が考えることができる唯一のことは、さまざまな段階を実行する複数のネットワークです(全体的な戦略、このタイプのユニットの制御、そのタイプの建物など)。しかし、これは私が問題を複雑にしているようです。 複雑なゲーム(具体的にはRTSではなく、より複雑なマリオ)を学習する機械学習/ニューラルネットワークの良い例はありますか?

1
Hartigan-Wong k-means法と他のアルゴリズムでの収束
私は、主statsにR言語のパッケージに実装されているさまざまなk平均クラスタリングアルゴリズムを理解しようとしています。 私はロイドのアルゴリズムとマックイーンのオンラインアルゴリズムを理解しています。それらを理解する方法は次のとおりです。 ロイドのアルゴリズム: 最初に、「k」個のクラスターの重心として機能する「k」個のランダムな観測値が選択されます。次に、重心が収束するまで、次のステップが反復で発生します。 各観測値と選択された重心間のユークリッド距離が計算されます。 各重心に最も近い観測値は、「k」バケット内でタグ付けされます。 各バケットのすべての観測値の平均は、新しい重心として機能します。 新しい重心は古い重心を置き換え、古い重心と新しい重心が収束していない場合、反復はステップ1に戻ります。 収束する条件は次のとおりです。古い重心と新しい重心がまったく同じであるか、重心の差が小さい(10 ^ -3のオーダー)か、最大反復回数(10または100)に達しています。 MacQueenのアルゴリズム: これは、最初の「k」インスタンスが重心として選択されるオンラインバージョンです。 次に、各インスタンスは、そのインスタンスに最も近い重心に応じてバケットに配置されます。それぞれの重心が再計算されます。 各インスタンスが適切なバケットに配置されるまで、この手順を繰り返します。 このアルゴリズムには反復が1つしかなく、ループは 'x'インスタンスに対して続行されます Hartigan-Wongアルゴリズム: すべてのポイント/インスタンスをランダムなバケットに割り当て、それぞれの重心を計算します。 最初のインスタンスから始めて、最も近い重心を見つけ、そのバケットを割り当てます。バケットが変更された場合、新しい重心、つまり、新しく割り当てられたバケットの重心と古いバケット割り当ての重心が、変更の影響を受ける2つの重心であるため、それらを再計算します。 すべてのポイントをループして、新しい重心を取得します。 ポイント2と3の2回目の反復を実行します。これは、一種のクリーンアップ操作を実行し、漂遊ポイントを正しいバケットに再割り当てします。 したがって、このアルゴリズムは、収束結果を確認する前に2回の反復を実行します。 さて、Hartigan-Wongアルゴリズムのポイント4で私が考えることがアルゴリズムの正しい方法であるかどうかはわかりません。私の質問は、次のHartigan-Wongのメソッドがk-meansを実装する正しい方法であるかどうかです。この方法の反復は2つだけですか?そうでない場合、収束の条件は何ですか(いつ停止するか)? 私が理解しているもう1つの可能な実装の説明は次のとおりです。 すべてのポイント/インスタンスをランダムなバケットに割り当て、それぞれの重心を計算します。 最初のインスタンスから始めて、最も近い重心を見つけ、そのバケットを割り当てます。バケットが変更された場合は、新しい重心、つまり新しく割り当てられたバケットの重心と古いバケット割り当ての重心が変更の影響を受ける2つの重心であるため、それらを再計算します。 いずれかの時点でバケットに変更があったら、最初のインスタンスに戻って手順を繰り返します。 すべてのインスタンスが反復され、どのポイントもバケットを変更しない場合、反復は終了します。 このように、インスタンスがバケットを変更するたびに、データセットの最初から何度も繰り返される多くの反復があります。 説明があれば役に立ちます。これらの方法のいずれかについて私の理解が間違っている場合はお知らせください。
10 r  clustering  k-means 

1
機械学習を使用したサーバーログ分析
例外ログ、データベースログ、イベントログなどを含むアプリケーションのサーバーログを分析するためにこのタスクが割り当てられました。機械学習は初めてで、Sparkをエラスティック検索とSparks MLlib(またはPredictionIO)で使用しています。結果は、収集された例外ログに基づいて予測できるようになり、次の例外を発生させる可能性が高いユーザーと機能(および追跡してアプリケーションの最適化を改善する他の要素)を予測できるようになります。 ElasticSearchからSparkにデータを取り込み、DataFrameを作成して必要なデータをマッピングすることに成功しました。私が知りたいのは、実装の機械学習の側面にどのように取り組むかです。私は、データの前処理、データモデルのトレーニング、ラベルの作成、そして予測の生成について説明する記事や論文を読みました。 私が持っている質問は 既存のログデータを、トレーニングするデータセットに使用できる数値ベクトルに変換する方法を教えてください。 データセットをトレーニングするためにどのアルゴリズムを使用しますか? この問題へのアプローチ方法に関する提案を探しています。 ありがとうございました。

1
テキスト分類問題:Word2Vec / NNは最善のアプローチですか?
私は、テキストの段落が与えられれば、それを分類してコンテキストを特定できるシステムを設計しようと考えています。 ユーザーが作成したテキスト段落(コメント/質問/回答など)でトレーニングされている トレーニングセットの各アイテムには、のタグが付けられます。したがって、たとえば( "category 1"、、 "text段落") 何百ものカテゴリがあります そのようなシステムを構築するための最良のアプローチは何でしょうか?私はいくつかの異なるオプションを見てきましたが、以下は可能な解決策のリストです。Word2Vec / NNは現時点で最良のソリューションですか? 平均化されたWord2Vecデータが供給された再帰型ニューラルテンソルネットワーク RNTNとパラグラフベクトル(https://cs.stanford.edu/~quocle/paragraph_vector.pdf)? Deep Belief Networkで使用されるTF-IDF TF-IDFとロジスティック回帰 Bag of WordsとNaive Bayes分類

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