問題タブ [data-analysis]
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.
data-visualization - 大規模データの探索と分析のためのアーキテクチャ
私たちは、大規模な一連のイベント (数百万のオーダー) 用のデータ探索システムを構築することを計画しています。イベントは、時間、緯度/経度座標、および type や userId などのドメイン制約値を持つその他のプロパティで構成されます。
目標は、3 つのパネルでデータを視覚化することです。
- マップ (マーカーまたはヒート マップでクラスター化されたイベント)
- 時間ヒストグラム (日付ごとのイベントの分布)
- 属性ヒストグラム (属性のヒストグラム: タイプ、ユーザーなど)
ユーザーは、属性 (ファセット)、時間間隔、または空間範囲でフィルタリングすることにより、対話的にデータをドリルダウンします。
OLAP サーバーを考えていますが、これが最も適切なソリューションかどうかはわかりません。
このような大規模なデータセットでこの操作を処理できるアーキテクチャ/システムはどれですか? これに関する経験や提案はありますか?できればオープンソースのコンポーネントを使用してください。
ありがとう
java - データを操作するアプリを構築するための Java ライブラリの検索
クラスター分析を介してデータを分析する必要があるプロジェクトがあります。基本的に、データはこの図が示すように視覚化する必要があります
。たとえば、人を例にとると、各データセットは 1 つの水平行であり、垂直線は性別、年齢などの属性を示します。このデータを表示できる場合は、行を水平方向と垂直方向にも移動したいと思います。a) コードを使用し、b) ドラッグ アンド ドロップを使用します。
そのための良いライブラリを知っている人はいますか?
重要
- 対象はデスクトップアプリ
- 予想されるデータセットは約 500 です
- 約60のデータセットごとの属性
- Java/SWT には既にアプリがあるため、この方向のソリューションが優先されます。
- OSはWin7なのでC#などで応急処置
- 私はd3.jsが本当に好きで、同様のロックとフィールを好みます (ただし 3D で)
誰かがデータの分析に役立つライブラリの推奨事項を持っている場合は、前進してください!
python - 非スーパー コンピューターで大量のデータを処理するための一般的な手法
私はいくつかの AI クラスを受講しており、実験したいいくつかの基本的なアルゴリズムについて学びました。私は、データ分析コンテストを主催するKaggleを通じて、多くの優れた現実世界のデータを含むいくつかのデータ セットにアクセスすることができました。
機械学習のスキルを向上させるためにいくつかのコンテストに参加しようとしましたが、コード内のデータにアクセスする良い方法を見つけることができませんでした。Kaggle は、競技ごとに 50 ~ 200 MB の 1 つの大きなデータ ファイルを csv 形式で提供します。
コードでこれらのテーブルを読み込んで使用する最良の方法は何ですか? 私の最初の本能はデータベースを使用することだったので、csv を単一のデータベースの sqlite にロードしようとしましたが、これはコンピューターに多大な負荷をかけ、コミット中にコンピューターがクラッシュすることがよくありました。次に、共有ホストで mysql サーバーを使用してみましたが、クエリを実行するのに時間がかかり、分析コードが非常に遅くなりました。さらに、帯域幅を超えてしまうのではないかと心配しています。
これまでの私のクラスでは、通常、インストラクターがデータをクリーンアップし、RAM に完全にロードできる管理可能なデータセットを提供してくれました。明らかに、これは私の現在の興味では不可能です。どのように進めればよいか提案してください。現在、4 GB RAM とデュアルコア 2.1 Ghz CPU を搭載した 4 年前の MacBook を使用しています。
ところで、私はこの言語を最もよく知っているので、分析の大部分を Python で行うことを望んでいます。この言語ですべてまたはほぼすべてのコーディングを実行できるソリューションが必要です。
metadata - ファイルに注釈を付ける方法 - 長いファイル名では不十分な場合
私は一般的なデータ分析を行う多くのファイルを扱っています。
自分のファイルについて知りたいことは次のとおりです。
- ファイルにはどのデータが含まれていますか (長くて非常に長い説明的な英語のテキストで)?
- ファイルはどこかからダウンロードされたものか (どこで? いつ?)、またはプログラムによって生成されましたか?
- なぜこのファイルを作成したのか、何をしたいのか、口頭での説明、データ分析ワークフローのどこに属しているか (追加の英語のテキストの説明も非常に長くなる可能性があります)
このため、長いファイル名は単に解決策ではありません! 長いファイル名でも完全な説明には短すぎます。実際にファイル (perl、awk、R) を操作する場合、長いファイル名は邪魔になります。
私が今行っていることは、ファイル名、タブ区切り、および長い説明を使用して、各ディレクトリに readme を作成することです。ただし、説明がファイルシステムやすべてから完全に分離されているため、このソリューションは非常に面倒であり、readme は個別に維持および更新する必要があります。
ファイル名の非常に冗長で体系的な説明に使用できるツールはありますか? たぶん、ファイルシステムに統合されていますか?
使用するオペレーティング システム: Windows 7 と Cygwin、SSH と X のインポートによるさまざまなフレーバーの linux/unix
algorithm - 一連のデータが線形関数または対数関数からのものかどうかを判断しますか?
データ ポイントのセットがあり、データが線形関数または対数関数のどちらを表しているか知りたいです。
データセットは 2 次元です。
理想的なデータ ポイントのセットが関数 f(x) = x に従っているとします。データ ポイントをプロットすると、線形であることがわかります。
同様に、データ ポイントが関数 f(x) = log(x) に従っている場合、対数であることが視覚的にわかります。
一方、一連のデータが線形であるか対数的であるかをプログラムに判断させることは自明ではありません。これにどのようにアプローチしますか?
algorithm - 接続されたノード/プロセス図のセットを通るすべての非反復パスを見つける
特定のプロセス図を通る一連の非反復パスを確立する合理的な方法で可能かどうかを理解しようとしています。
ここに私が持っているプロセス図に関するいくつかの基本的な事実があります:
- 1 つ以上の開始点がある
- 1 つ以上のエンドポイントがある
- すべての始点には、そこからつながる 1 つのコネクタがあります
- すべてのステップには、少なくとも 1 つ以上の受信コネクタと 1 つ以上の送信コネクタがあります。
- 次のものが複数ある場合は、それぞれに名前を付ける必要があります。
- ターミネーターを開始
- 終了ターミネーター
- ステップからつながる接続
必要と思われるすべてのデータにアクセスできます (すべての開始点の検索、すべての接続の取得、接続の名前など)。
基本的には、始点から終点までの過程で、円を繰り返し回らないユニークなパスをできるだけ多く見つけたいと考えています。したがって、同じステップを数回実行できますが、特定のルートで完全な回路を複数回繰り返すことはできません。
これは、人々が論文を書き、それができるかできないかの証拠を持っているようなものです.私はそれをグーグルで検索する必要がある魔法の言葉を知りません;-) Sudoコードまたは同様のものは理想的です(そして素晴らしいです)しかし、誰かが私を正しい方向に向けることができれば、私は喜んで自分の読書をします.
検索用語の提案は非常に歓迎され、非常に高く評価されています
後で人間がレビューする必要がある多くの余分な「ばかげた」可能性を示唆するソリューションに興味があることに注意してください-それが生成したものを見るのはまだ興味深いでしょう.
物事を明確にするためのちょっとした例:
経由するいくつかのルート:
- 開始、A、B、C:1、D、終了
- 開始、A、B、C:2、F:1、E:1、B、C:1、D、終了
- 開始、A、B、C:2、F:1、E:2、G、A、B、C:1、D、終了
- 開始、A、B、C:2、F:2、D、終了
素晴らしいですが、もっと興味深いものはどうですか:
- 開始、A、B、C:2、F:1、E:2、G、A、B、C:2、F:1、B、C:2、F:2、D、終了
私は C を 3 回押し、そのたびにオプション 2 を選択しましたが、繰り返しはありません。
余分なポイント:複数のアウトバウンドコネクタを持つノードのいくつかを、プロセスの特定の実行内で一貫しているとマークできると考えていました..たとえば、2つの決定ポイント「言語」を持つ「コードを書く」プロセスがある場合アウトバウンド コネクタ "c#" および "java" このプロセスの特定の実行内では、常に c# または Java のいずれかであると言えます。これは、プロセスの実行中に変更されることはありません。「バグはありますか?」のように変化する可能性があるものとは対照的です。最初のパススルーでは「はい」となる可能性があり、2 回目のパススルーでは (いくつかのバグ修正手順の後 ;-) 結果が「いいえ」になる可能性があります。
この種の特別な分析/処理/定義に関連する用語またはテクニックを知っていますか?
編集: @Ishtar の回答に基づいて、JS で実装されたサンプル ソリューションを回答者として追加しました。
csv - 良いcsvデータ分析ツール/フレームワークは何でしょうか
いくつかのcsv形式のデータファイルを分析するための優れたツールはありますか。csvファイルのデータを表示するための使いやすいオープンソースのものはありますか?(Excelについては言及しないでください...)。最も重要なのは、簡単なファイルのインポート(またはフォルダの読み取り)メカニズムです。
php - PHP/MySQL - 複数のセットにまたがる共通セットの分析
2 つのテーブルがあるpeople
としfamilies
ます。
families
には と の 2 つのフィールドがid
ありname
ます。フィールドには家族のname
姓が含まれます。
people
には 3 つのフィールドがあります - id
、family_id
およびname
-family_id
は、その人が属する家族の ID です。name
フィールドはその人の名前です。
基本的には、多くの人がいる 1 つの家族との 1 対多の関係です。
ファミリ全体で最大の名前セットの出現頻度が高い順に並べられた、名前セットのリストを取得したいと考えています。
あまり意味がないかも…
私が何を望んでいるかをさらに説明するために、名前の各セットにスコアを付けることができます。「スコア」は、配列サイズ * ファミリ全体の発生数です。
たとえば、「John」と「Jane」という 2 つの名前が両方とも 3 つのファミリーに存在するとします。このセットの「スコア」は 2*3 = 6 になります。
各セットのスコア順に並べられた名前のセットの配列とセットの「スコア」を取得するにはどうすればよいですか?
サンプルの結果セット (テーブル レイアウトに配置しましたが、これは PHP の多次元配列である可能性があります) - これはランダムに考え出されたものであり、統計的な名前データを反映していないことに注意してください。
明確にするために、次のようなセットには興味がありません。
- 出現数は 1 です (明らかに、1 つのファミリだけです)。
- セットサイズは1(通称のみ)。
少し複雑な問題を説明できたことを願っています。説明が必要な人は言ってください。
iphone - ジオコーディングされた住所から交差点を取得する
交差点とその位置情報に関連する JSON データがたくさんあるとします。
ユーザーが現在の場所を使用するアプリがあり、ユーザーがいるブロック (つまり、ユーザーがいる通り、および 2 つの交差する通りの間) を把握できるようにしたいと考えています。これを行う最善の方法は何ですか?良い方法はありますか?
例: ユーザーの地理位置情報を取得し、逆ジオコーディングして 435 W. 42nd st. そのデータを使用して、ユーザーが 42 番街の 9 番街と 10 番街の間にいることを知りたいです。
どんな助けでも大歓迎です!
python - 時系列データの変化が重要でなくなったかどうかを検出する方法は?
統計がある一連のニュース記事があります。たとえば、ある範囲の記事に言及している twitter 投稿の数です。統計値の自然な動作は、新しい投稿の数が急速に増加し、ニュースが古くなるにつれて減少することです。
データセット全体について、統計への変更が重要でなくなるまでの日数を計算する方法を知りたいです (例: 投稿全体の 0.1% 未満)。
情報と方法を探すためのヒントを教えてください。Python のコード サンプルもよろしくお願いします :)