データサイエンス

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

3
不均衡なクラス—偽陰性を最小限に抑える方法は?
バイナリクラス属性を持つデータセットがあります。クラス+1(癌陽性)のインスタンスは623個、クラス-1(癌陰性)のインスタンスは101,671個あります。 私はさまざまなアルゴリズム(ナイーブベイズ、ランダムフォレスト、AODE、C4.5)を試してみましたが、それらはすべて許容できない偽陰性率を持っています。ランダムフォレストは、全体の予測精度が最も高く(99.5%)、偽陰性率が最も低くなりますが、陽性クラスの79%は見落とします(つまり、悪性腫瘍の79%を検出できません)。 この状況を改善するにはどうすればよいですか? ありがとう!

3
SparkでのIPython / Jupyterの問題(認識されないエイリアス)
いくつかのハードウェアでクラスタを構築するために出費する前に、Sparkを試すためのVMセットの設定に取り組んでいます。簡単な説明:私は応用機械学習のバックグラウンドを持つ学者であり、データサイエンスでは仕事がやや終了しました。私はコンピューティングにツールを使用していますが、それらを設定する必要はほとんどありません。 3つのVM(1つのマスター、2つのスレーブ)を作成し、Sparkを正常にインストールしました。すべてが正常に機能しているようです。私の問題は、クラスター上のマシンで実行されていないブラウザーから接続できるJupyterサーバーを作成することです。 Jupyter Notebookを正常にインストールしました...実行されます。Sparkでリモートサーバーに接続する新しいIPythonプロファイルを追加しました。 今問題 コマンド $ ipython --profile=pyspark 正常に動作し、スパーククラスターに接続します。しかしながら、 $ ipython notebook --profile=pyspark [<stuff is here>] Unrecognized alias: "profile=pyspark", it will probably have no effect. デフォルトでは、defaultプロファイルではなくpysparkプロファイルになります。 私のノートブック構成pysparkは: c = get_config() c.NotebookApp.ip = '*' c.NotebookApp.open_browser = False c.NotebookApp.port = 8880 c.NotebookApp.server_extensions.append('ipyparallel.nbextension') c.NotebookApp.password = u'some password is here'

4
ランダムフォレストでの過剰適合を回避する方法は?
無作為の森での過剰適合を避けたいです。この点で、mtry、nodesize、maxnodesなどを使用するつもりです。これらのパラメーターの値を選択するのを手伝っていただけませんか?私はRを使用しています。 また、可能であれば、ランダムフォレスト(R)に対してk分割交差検証を使用する方法を教えてください。

7
LinkedIn Webスクレイピング
LinkedIn APIに接続するための新しいRパッケージを最近発見しました。残念ながら、LinkedIn APIはそもそもかなり制限されているようです。たとえば、企業の基本データしか取得できず、これは個人のデータから切り離されています。特定の会社のすべての従業員に関するデータを取得したいのですが、これはサイトで手動で行うことができますが、APIからはできません。 import.ioは、LinkedInのページネーションを認識していれば完璧です(ページの終わりを参照)。 LinkedInの現在のフォーマットに適用可能なWebスクレイピングツールやテクニック、またはより柔軟な分析を実行するためにAPIを曲げる方法を知っている人はいますか?できればRまたはWebベースですが、他のアプローチも可能です。

5
月次、日次、週次のデータをマージする方法は?
Googleトレンドは週次データを返すため、日次/月次データとそれらをマージする方法を見つける必要があります。 これまでに行ったことは、たとえば、各セリエを日次データに分割することです。 から: 2013-03-03-2013-03-09 37 に: 2013-03-03 37 2013-03-04 37 2013-03-05 37 2013-03-06 37 2013-03-07 37 2013-03-08 37 2013-03-09 37 しかし、これは私の問題に多くの複雑さを加えています。私は過去6か月の値、または月次データの6つの値からGoogle検索を予測しようとしていました。日次データは、180の過去の値に対する作業を意味します。(私は10年のデータを持っているので、月次データで120ポイント/週次データで500+ /日次データで3500+) もう1つのアプローチは、日次データを週次/月次データに「マージ」することです。しかし、このプロセスからいくつかの疑問が生じます。合計が何かを表すため、一部のデータは平均化できます。たとえば、降雨量は、特定の週の雨量は、週を構成する各日の量の合計になります。 私の場合、私は価格、金融レートなどを扱っています。価格については、私の分野では交換された量を考慮することが一般的であるため、週次データは加重平均になります。財務レートの場合は少し複雑ですが、日次レートから週次レートを作成するためのいくつかの式が含まれています。その他については、基になるプロパティがわかりません。これらの特性は、無意味な指標を回避するために重要だと思います(たとえば、フィアンシャルレートの平均は意味をなさないでしょう)。 したがって、3つの質問: 既知のプロパティと不明なプロパティの場合、日次から週次/月次のデータにどのように進むべきですか? 実生活では意味のない量を導入しているため、毎週/毎月のデータをこれまでのように毎日のデータに分割するのは少し間違っているように感じます。だからほとんど同じ質問: 既知および未知のプロパティについて、毎週/毎月のデータから毎日のデータにどのように進むべきですか? 最後に重要なことですが、タイムステップが異なる2つの時系列が与えられた場合、何が良いですか:最小または最大のタイムステップを使用しますか?これはデータの数とモデルの複雑さの間の妥協点だと思いますが、これらのオプションから選択する強い議論はありません。 編集:簡単に実行できるツール(R PythonではExcelでも)を知っている場合は、大変助かります。


2
サーバー監視用のニューラルネット
サーバーモニターアラームを取得し、問題の根本的な原因を特定するためのpybrainを調べています。教師あり学習を使用してトレーニングしたり、トレーニングデータセットをキュレーションしたりして満足しています。データは次のような構造になっています。 サーバータイプA#1 警報タイプ1 警報タイプ2 サーバータイプA#2 警報タイプ1 警報タイプ2 サーバータイプB#1 アラームタイプ99 警報タイプ2 だから、あるn個のサーバーがして、XのことができるアラームUPまたはDOWN。どちらnとx可変です。 サーバーA1のアラーム1および2がDOWNである場合、そのサーバーでサービスaがダウンしており、問題の原因であると言えます。 すべてのサーバーでアラーム1がダウンしている場合、サービスaが原因であると言えます。 原因には複数のオプションが存在する可能性があるため、単純な分類は適切ではないようです。 また、後のデータソースをネットに結び付けたいと思います。一部の外部サービスにpingを実行するスクリプトだけなど。 シリアルサービスチェックのため、適切なアラームがすべて一度にトリガーされるとは限らないため、あるサーバーがダウンしてから5分後に別のサーバーがダウンする可能性があります。 私は最初にいくつかの基本的なことをしようとしています: from pybrain.tools.shortcuts import buildNetwork from pybrain.datasets import SupervisedDataSet from pybrain.supervised.trainers import BackpropTrainer INPUTS = 2 OUTPUTS = 1 # Build network # 2 inputs, 3 hidden, 1 output neurons net = buildNetwork(INPUTS, 3, …

1
RにおけるMLEのフィッシャースコアリング対座標降下
R基本関数glm()はMLEにフィッシャースコアリングglmnetを使用しますが、は同じ方程式を解くために座標降下法を使用しているようです。フィッシャースコアリングは、他のいくつかの行列演算に加えて2次微分行列を計算するため、座標降下はフィッシャースコアリングよりも時間効率が高くなります。これは実行に費用がかかりますが、座標降下はO(np)時間で同じタスクを実行できます。 R基底関数がフィッシャースコアリングを使用するのはなぜですか?この方法は他の最適化方法よりも優れていますか?座標降下とフィッシャースコアリングはどのように比較されますか?私はこのフィールドを実行するのが比較的新しいので、ヘルプやリソースは役に立ちます。

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の合理的な継承

3
正のラベルなしデータのみでバイナリ分類器を作成する
2つのデータセットがあり、1つは検出したい対象のポジティブインスタンス、もう1つはラベル付けされていないインスタンスです。どのような方法を使用できますか? 例として、いくつかの構造化された電子メールの特性に基づくスパム電子メールの検出を理解したいとします。スパムメールが10000のデータセットが1つと、スパムであるかどうかがわからない10万通のデータセットが1つあります。 (ラベルのないデータを手動でラベル付けせずに)この問題にどのように取り組むことができますか? ラベルなしデータのスパムの割合に関する追加情報がある場合はどうすればよいですか(つまり、1万個のラベルなしメールの20〜40%がスパムであると推定した場合はどうなりますか?)

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つの回避策は、単純に相関ルール学習アルゴリズムを使用して、エンドバケットを含まないルールを無視することですが、それは少しハックに思えます。そこにあるアルゴリズムのファミリーを見逃したことがありますか?それとも、最初から間違って問題に取り組んでいますか?


3
MongoDB用に作成されたmap-reduceアルゴリズムを後でHadoopに移植できますか?
私たちの会社には、多くの非構造化データを含むMongoDBデータベースがあり、その上でマップ削減アルゴリズムを実行して、レポートやその他の分析を生成する必要があります。必要な分析を実装するために選択する2つの方法があります。 1つのアプローチは、MongoDBからHadoopクラスターにデータを抽出し、Hadoopプラットフォームで完全に分析を行うことです。ただし、これには、プラットフォーム(ソフトウェアとハ​​ードウェア)の準備と、Hadoopで作業し、そのためのマップ縮小タスクを作成するようにチームを教育するために、かなりの投資が必要です。 別のアプローチは、map-reduceアルゴリズムの設計に私たちの努力を注ぎ、MongoDB map-reduce機能でアルゴリズムを実行することです。このようにして、レポートを生成できる最終システムの初期プロトタイプを作成できます。MongoDBのmap-reduce機能はHadoopに比べてはるかに遅いことは知っていますが、現在のところ、データはそれほど大きくないため、少なくとも次の6か月間はボトルネックになりません。 問題は、2番目のアプローチを使用してMongoDBのアルゴリズムを作成することで、それらを後で必要な変更とアルゴリズムの再設計をほとんど行わずにHadoopに移植できるかどうかです。MongoDBはJavaScriptをサポートするだけですが、プログラミング言語の違いは簡単に処理できます。しかし、MongoDBとHadoopのmap-reduceモデルには、Hadoopへの移植のためにアルゴリズムを大幅に再設計する必要がある根本的な違いはありますか?

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