タグ付けされた質問 「real-time」

14
一般的な時系列のオンライン異常値検出のためのシンプルなアルゴリズム
私は大量の時系列で作業しています。これらの時系列は基本的に10分ごとに発生するネットワーク測定値であり、一部は定期的(帯域幅)であり、一部はそうでない(つまりルーティングトラフィックの量)です。 オンラインの「異常値検出」を行うための簡単なアルゴリズムが欲しいです。基本的に、各時系列の履歴データ全体をメモリ(またはディスク)に保持し、ライブシナリオ(新しいサンプルがキャプチャされるたびに)で異常値を検出します。これらの結果を達成する最良の方法は何ですか? 現在、ノイズを除去するために移動平均を使用していますが、次に何をしますか?データセット全体に対する標準偏差、狂気などの単純なものはうまく機能しません(時系列が定常的であるとは思いません)。 double outlier_detection(double * vector、double value); ここで、vectorは履歴データを含むdoubleの配列であり、戻り値は新しいサンプル "value"の異常スコアです。

6
効率的なオンライン線形回帰
私は通常の線形回帰を実行したいいくつかのデータを分析していますが、入力データの連続ストリーム(メモリにはすぐに大きくなります)と必要なオンライン設定を扱っているため、これは不可能ですこれが消費されている間にパラメータ推定値を更新します。つまり、すべてをメモリにロードして、データセット全体に対して線形回帰を実行することはできません。 私は単純な線形多変量回帰モデル、すなわち、 y = A x + b + ey=Ax+b+e\mathbf y = \mathbf A\mathbf x + \mathbf b + \mathbf e 線形回帰パラメータおよびbの継続的に更新される推定値を作成するための最適なアルゴリズムは何ですか?AA\mathbf Abb\mathbf b 理想的には: 私が最もあるアルゴリズムたい更新当たりの空間と時間の複雑さ、Nは、独立変数の次元である(X)とMは従属変数(の次元であるY)。O(N⋅ M)O(N⋅M)\mathcal O(N\cdot M)NNNバツx\mathbf xMMMyy\mathbf y 新しいサンプルごとにパラメーターが更新される量を決定するパラメーターを指定できるようにしたいと思います。たとえば、0.000001は、次のサンプルがパラメーター推定の100万分の1を提供することを意味します。これは、遠い過去のサンプルの効果に対してある種の指数関数的な減衰を与えます。

7
一般的な時系列の期間検出
この投稿は時系列の外れ値検出のための一般的な方法に関連する別の投稿の続きです。基本的に、この時点で、多くのノイズの影響を受ける一般的な時系列の周期性/季節性を発見するための堅牢な方法に興味があります。開発者の観点から、次のようなシンプルなインターフェースが欲しいです。 unsigned int discover_period(vector<double> v); vサンプルを含む配列はどこにあり、戻り値は信号の周期です。主なポイントは、やはり、分析された信号に関して仮定を立てることができないということです。信号の自己相関に基づいたアプローチ(コレログラムのピークの検出)を既に試しましたが、希望どおりに堅牢ではありません。

4
記録されたエラーの急増をアルゴリズムで識別する簡単な方法
早期警告システムが必要です。負荷がかかるとパフォーマンスの問題が発生することがわかっているサーバーを扱っています。エラーは、タイムスタンプとともにデータベースに記録されます。サーバーの負荷を軽減するために実行できる手動介入手順がいくつかありますが、誰かが問題を認識している場合のみです... エラーが発生した一連の時間を考えると、エラーの急増の始まりを(リアルタイムで)どうやって特定できますか?定期的に、またはエラーが発生するたびに計算できます。 偶発的なエラーについては気にしませんが、特定のしきい値はありません。たとえば、5分間で3つのエラーが発生したときはいつでも誰かに通知できますが、もっと良い方法があるはずです... sysadminsからのフィードバックに基づいてアルゴリズムの感度を調整できるようにしたいと思います。現時点では、ある程度の誤検知が予想されることはわかっていますが、彼らはかなり敏感であることを望んでいます。 私は統計学者ではありませんが、これは明らかであり、既存のツールであるSQL Serverと旧式のASP JScriptを使用してこれを実装するのは比較的簡単である必要があります。コードで答えを探しているわけではありませんが、追加のソフトウェアが必要な場合、おそらく機能しません(ただし、非現実的で理想的なソリューションをコメントとして歓迎しますが、私自身の好奇心のためです)。

1
時系列データのリアルタイム正規化のアルゴリズム?
多数のセンサーストリームから最新のデータポイントのベクトルを取り込み、ユークリッド距離を以前のベクトルと比較するアルゴリズムに取り組んでいます。問題は、異なるデータストリームが完全に異なるセンサーからのものであるため、単純なユークリッド距離をとると、いくつかの値が大幅に強調されることです。明らかに、データを正規化する何らかの方法が必要です。ただし、アルゴリズムはリアルタイムで実行されるように設計されているため、正規化ではデータストリームに関する情報を全体として使用することはできません。これまでのところ、起動段階で各センサーに見られる最大値(最初の500データベクトル)を追跡し、そのセンサーからのすべての将来のデータをその値で除算しました。これは驚くほどうまく機能していますが、非常に洗練されていないように感じます。 このための既存のアルゴリズムを見つけるのにそれほど幸運はありませんでしたが、おそらく適切な場所を探していません。誰か知っていますか?または何かアイデアがありますか?実行平均(おそらくWellfordのアルゴリズムによって計算される)を使用する提案がありましたが、同じ値の複数の読み取り値が同じであると表示されない場合、これはかなり大きな問題のようです何かが欠けています。どんな考えでも大歓迎です!ありがとう!

1
ベンフォード・ロウのリアルタイムのテスト
で与えられる特定の量データがある。ここで、各数量の最初の桁を取得し、最初の桁の経験分布の関係を調べたいと思いここで、は、最初の数字としての正規化された頻度であり、ベンフォードの法則 今、この論文を読みましたXXXx1,...,xnx1,...,xnx_1,...,x_ndidid_ixixix_ip^=(p^1,...,p^n)p^=(p^1,...,p^n)\hat{p}=(\hat{p}_1,...,\hat{p}_n)pi^pi^\hat{p_i}iiipi=log10(1+1/i)pi=log10⁡(1+1/i) p_i = \log_{10} (1 + 1/i) 最初の桁の経験的頻度とベンフォードの法則を比較することについて。ただし、彼らが言及する方法を使用して、データが特定の頻度(たとえば、1秒あたり50データ)で到着する場合に、ベンフォードの法則をリアルタイムで一定の信頼度で棄却できるかどうかについては触れていません。 これらの方法は、次のようにベンフォードの法則とのリアルタイム比較に適用できると思います:(短い)時間間隔(たとえば、3秒)が与えられた場合、最初の桁の経験的頻度を計算します次に、前述のリファレンスに示されている統計の同時信頼区間と値を計算します(サンプルサイズを確認する必要があります)少なくとも60個のデータのため、統計の分布は、その必要があり、比較的近い漸近分布にすることなので、計算され -値がなければならない信頼できます)。p^=(p^1,...,p^n)p^=(p^1,...,p^n)\hat{p}=(\hat{p}_1,...,\hat{p}_n)pppppp 私の質問は、これは有効な手順ですか?それは意味がありますか?そうでない場合、経験的な最初の桁の分布をベンフォードの法則とリアルタイムで比較するための適切な方法はありますか? 私が目にする1つの潜在的な問題は、最初の数字の基になる分布が、指定された時間枠内で(おそらく1回以上)変化する可能性があることです。これが、最初の桁の基になる分布が変化する可能性を低減しながら、適切なサンプルサイズを確保するために、比較的小さな時間ウィンドウを使用することをお勧めする理由です。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.