問題タブ [binning]

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.

0 投票する
3 に答える
27387 参照

python - Pythonで一連のフロート値をヒストグラムにビン化する方法は?

float に値を設定しました (常に 0 未満)。ヒストグラムにビン化したいもの、つまり。ヒストグラムの各バーには、値の範囲 [0,0.150) が含まれます。

私が持っているデータは次のようになります。

以下の私のコードでは、次のような結果が得られると期待しています

私はこのコードでそのようなビニングをやろうとしました。しかし、うまくいかないようです。それを行う正しい方法は何ですか?

0 投票する
10 に答える
54647 参照

mysql - ヒストグラムプロットのデータを取得する

MySQLでビンサイズを指定する方法はありますか?現在、次のSQLクエリを試しています。

生成されているデータは十分ですが、行が多すぎます。必要なのは、データを事前定義されたビンにグループ化する方法です。スクリプト言語からこれを行うことはできますが、SQLで直接行う方法はありますか?

例:

私が探しているもの:

これは簡単な方法では達成できないと思いますが、関連するストアドプロシージャへの参照も問題ありません。

0 投票する
1 に答える
6230 参照

matlab - このビニングと平均化を MATLAB で実行するにはどうすればよいですか?

ビニング平均を実行しようとしています。私はコードを使用しています:

最後の行は、大きさが 1 の次元を取り除きます。

ご覧のとおり、平均点は 300 点を超えています。ポイントの総数が 144*300 の倍数に等しくない場合を除いて、問題なく動作します。

ポイントの総数が 144*300 の倍数でない場合でも、このビニング平均を機能させる方法はありますか?

編集:私の質問が紛らわしかったら申し訳ありません。明確にするために...

43200 行 27 列のファイルがあります。一度に 300 行をビニングして平均化しています。つまり、最終的にサイズが144 行 27列の行列が残ります。

上記のコードは、正確に 43200 行ある場合にのみ機能します。場合によっては、43199、43194 などがあります。総行数が 300 (ビン サイズ) の倍数である場合、reshape 関数が機能します。行の総数が 300 の倍数でない場合に、このビニング平均を機能させる方法はありますか?

0 投票する
2 に答える
32726 参照

python - ポイントをビンに割り当てる

数値を特定の範囲にビン化する良い方法は何ですか? たとえば、値のリストがあり、それらを範囲ごとに N 個のビンにビン化したいとします。今、私は次のようなことをしています:

ここで、min_index は最小値のインデックスを返します。アイデアは、どのビンとの差が最も小さいかを確認することで、ポイントが該当するビンを見つけることができるということです。

しかし、これには奇妙なエッジケースがあると思います。私が探しているのは、ビンの適切な表現です。理想的には、半分閉じて半分開いているビンです (したがって、1 つのポイントを 2 つのビンに割り当てる方法はありません)。

numpy/scipyを使用してPythonでこれを行う良い方法は何ですか? ここでは、整数値のビニングのみに関心があります。

どうもありがとうございました。

0 投票する
10 に答える
233520 参照

gnuplot - gnuplotを使用したヒストグラム?

.datファイルにすでに適切にビニングされたデータがある場合は、gnuplotでヒストグラムを作成する方法を知っています(「ボックス付き」を使用するだけです)。数値のリストを取得し、gnuplotにユーザーが提供する範囲とビンサイズに基づいたヒストグラムを提供させる方法はありますか?

0 投票する
1 に答える
1820 参照

r - R を使用したビン化された GAM 結果の二乗平均平方根偏差

バックグラウンド

PostgreSQL データベースは PL/R を使用して R 関数を呼び出します。スピアマンの相関を計算するための R 呼び出しは次のようになります。

また、R では、当てはめられた一般化加法モデル (GAM) の単純な計算:

xこれは 1900 年から 2009 年までの年を表し、その年のy平均測定値 (最低気温など) です。

問題

次の図に示すように、近似傾向線 (GAM を使用) はかなり正確です。

問題は、相関関係 (左下に表示) が、モデルがデータにどの程度適合しているかを正確に反映していないことです。

考えられる解決策

相関の精度を向上させる 1 つの方法は、ビニングされたデータに対して二乗平均平方根誤差 (RMSE) 計算を使用することです。

質問

Q.1. ビニングされたデータに RMSE 計算を実装して、R 言語で GAM の測定値への適合の相関関係 (0 と 1 の間) を取得するにはどうすればよいでしょうか?

Q.2. GAM のデータへの適合の精度を見つけるためのより良い方法はありますか? もしそうなら、それは何ですか (例えば、二乗平均平方根偏差)?

試行された解決策 1

  1. 観測量とモデル (GAM) 量を使用して PL/R 関数を呼び出します。/li>
  2. 次のように定義plr_corr_rmseします (ここでo、 とmは観測データとモデル化データを表します)。/li>

o - m間違っています。mean5 つのデータ ポイントごとにを計算して、両方のデータ セットをビンに入れたいと思います(最大で 110 のデータ ポイントがあります)。例えば:

次に、RMSE の計算を次のように修正します。

適切な数のビンで任意の長さのベクトルを計算するにはどうすればよいでしょうかc( mean(o[1:5]), mean(o[6:10]), ... )(たとえば、5 は 67 回の測定だけでは理想的ではない可能性があります)。

histここにはふさわしくないと思いますよね?

試みられた解決策 2

次のコードは問題を解決しますが、リストの最後からデータ ポイントを削除します (リストを 5 で割り切れるようにするため)。数字の「5」は魔法のようなものなので、この解決策は理想的ではありません。

他にどのようなオプションがありますか?

前もって感謝します。

0 投票する
2 に答える
3817 参照

r - Rで事前にビン化されたヒストグラムをプロットする方法

かなり大きなデータセット用の事前にビニングされた頻度表があります。つまり、ビンの 1 つの列ベクトルと、それらのビンに関連付けられたカウントの 1 つの列ベクトルです。さらにビニングを行い、既存のカウントを合計して、R にこのデータのヒストグラムをプロットしてもらいたいと思います。たとえば、事前にビン化されたデータに [(0.01, 5000), (0.02, 231), (0.03, 948)] のようなものがある場合、最初の数値はビンで、2 番目の数値はカウントです。新しいビンの幅として 0.04 を選択すると、[(0.04, 6179)] になると思います。Rでこれを行うための最速かつ最も簡単な方法は何ですか?

0 投票する
2 に答える
13228 参照

sorting - MATLABでアイテムをビンに並べ替える

データYのセットとXを中心とするビンのセットがある場合、HISTコマンドを使用して、各ビンにある各Yの数を見つけることができます。

私が知りたいのは、各Yがどのビンに入るかを教えてくれる組み込み関数があるかどうかです。

Y(I == 1)がビン1のすべてのYを返すことを意味します。

私はこの関数の書き方を知っているので、MATLABにこれを行う組み込み関数がすでにあるかどうかだけ疑問に思っています。

0 投票する
3 に答える
4848 参照

python - numpy.digitizeは範囲外の値を返しますか?

次のコードを使用して、配列を16個のビンにデジタル化します。

ビンが16個あるので、出力は[1、16]の範囲にあると思います。ただし、返される配列の値の1つは17です。これはどのように説明できますか?

0 投票する
4 に答える
1295 参照

c# - それぞれに同様の番号を持つデータのバンド/グループを動的に生成するにはどうすればよいですか?

バンドを動的に生成したいので、それをレポートにグループ化します。

私が最初に考えたのは、最小値と最大値を取り、その差を除算してバンドを生成することでした。

たとえば、大勢の人の給料があるとします。

  • 最低支払額は年間12,000ポンド、最高額は3,000,000ポンドです。
  • だから私はそれを同じようなサイズの10のバンドに分割しました:(£3mill-£12k)/10=£298800
  • だから私の最初のバンドは£12kから£310,800になり、何千人もの人々が参加します
  • 私の2番目のバンドは£31万から£61万になり、数百を持っています
  • 他のすべてのバンドには、それぞれに数人がいます

したがって、これは実際にはあまり役に立ちません。手動でバンドを作成する場合は、それぞれにほぼ同じ数が必要です。たとえば、£12k-£14k、£14k-£18k、£18k-£25k、£25-£35k、...、£ 150万〜300万ポンド

これはほんの一例です。さまざまなディストリビューションが存在する可能性があります。

バンドを生成するアルゴリズムを探しているので、ユーザーは必要なバンドの数を入力し、データはそれぞれに同じ数のバンドにグループ化されます。

バンディングは迅速である必要があります-データセット全体をループすることはできません。

アプリケーションはSQLの上にC#ですが、他の言語のソリューションも歓迎します。