Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでのデータ平滑化のためのビニング方法


多くの場合、データ平滑化と呼ばれる方法を使用して、統計分析のためにデータを適切かつ定性的にします。喫煙プロセス中に、ビンとも呼ばれる範囲を定義し、範囲内のすべてのデータ値がビンに収まるように作成されます。これはビニング方式と呼ばれます。以下はビニングの例です。次に、Pythonプログラムを使用してビニング方法を実現する方法を説明します。

ビニングの例

一連の数字を見てみましょう。最大値と最小値を見つけます。分析に必要なデータポイントの数に応じて、必要なビンの数を決定します。これらのグループを作成し、これらの各番号をこのグループに割り当てます。上限値は除外され、次のグループに属します。

Given numbers: 12, 32, 10, 17, 19, 28, 22, 26, 29,16
Number of groups : 4
Here
Max Value: 32
Min Value: 10
So the groups are –
(10-15), (15-21), (21-27), (27-32)

出力

数値をビンに入れると、次の結果が得られます-

12 -> (10-15)
32 -> (27-32)
10 -> (10-15)
17 -> (15-21)
19 -> (15-21)
28 -> (27-32)
22 -> (21-27)
26 -> (21-27)
29 -> (27-32)
16 -> (15-21)

ビニングプログラム

このプログラムでは、2つの関数を定義します。 1つは、上限と下限を定義してビンを作成するためのものです。もう1つの機能は、入力値を各ビンに割り当てることです。各ビンにもインデックスが付けられます。各入力値がビンにどのように割り当てられているかを確認し、特定のビンにいくつの値が割り当てられているかを追跡します。

from collections import Counter
def Binning_method(lower_bound, width, quantity):
   binning = []
   for low in range(lower_bound, lower_bound + quantity * width + 1, width):
      binning.append((low, low + width))
   return binning
def bin_assign(v, b):
   for i in range(0, len(b)):
      if b[i][0] <= v < b[i][1]:
         return i
the_bins = Binning_method(lower_bound=50,
   width=4,
   quantity=10)
print("The Bins: \n",the_bins)
weights_of_objects = [89.2, 57.2, 63.4, 84.6, 90.2, 60.3,88.7, 65.2, 79.8, 80.2, 93.5, 79.3,72.5, 59.2, 77.2, 67.0, 88.2, 73.5]
print("\nBinned Values:\n")
binned_weight = []
for val in weights_of_objects:
   index = bin_assign(val, the_bins)
   #print(val, index, binning[index])
   print(val,"-with index-", index,":", the_bins[index])
   binned_weight.append(index)
freq = Counter(binned_weight)
print("\nCount of values in each index: ")
print(freq)

出力

上記のコードを実行すると、次の結果が得られます-

The Bins:
   [(50, 54), (54, 58), (58, 62), (62, 66), (66, 70), (70, 74), (74, 78), (78, 82), (82, 86), (86, 90), (90, 94)]
Binned Values:
89.2 -with index- 9 : (86, 90)
57.2 -with index- 1 : (54, 58)
63.4 -with index- 3 : (62, 66)
84.6 -with index- 8 : (82, 86)
90.2 -with index- 10 : (90, 94)
60.3 -with index- 2 : (58, 62)
88.7 -with index- 9 : (86, 90)
65.2 -with index- 3 : (62, 66)
79.8 -with index- 7 : (78, 82)
80.2 -with index- 7 : (78, 82)
93.5 -with index- 10 : (90, 94)
79.3 -with index- 7 : (78, 82)
72.5 -with index- 5 : (70, 74)
59.2 -with index- 2 : (58, 62)
77.2 -with index- 6 : (74, 78)
67.0 -with index- 4 : (66, 70)
88.2 -with index- 9 : (86, 90)
73.5 -with index- 5 : (70, 74)
Count of values in each index:
Counter({9: 3, 7: 3, 3: 2, 10: 2, 2: 2, 5: 2, 1: 1, 8: 1, 6: 1, 4: 1})

  1. Pythonでの統計的思考

    統計は、mlとAIを学ぶための基本です。 Pythonはこれらのテクノロジーに最適な言語であるため、統計分析を組み込んだPythonプログラムの作成方法を説明します。この記事では、さまざまなPythonモジュールを使用してグラフやチャートを作成する方法を説明します。このさまざまなグラフは、データをすばやく分析し、内部を導き出すのに役立ちます。 データの準備 さまざまなシードに関するデータを含むデータセットを取得します。このデータセットは、以下のプログラムに示されているリンクのkaggleで入手できます。さまざまなシードの特徴を比較するためのさまざまなタイプのチャートを作成するために使用される

  2. Pythonで国勢調査データを分析する

    国勢調査とは、特定の人口に関する情報を体系的に記録することです。キャプチャされたデータには、人口統計、経済、居住の詳細など、さまざまなカテゴリの情報が含まれます。これは、最終的に政府が現在のシナリオと将来の計画を理解するのに役立ちます。この記事では、Pythonを活用してインドの人口の人口調査データを分析する方法を説明します。さまざまな人口統計学的および経済的側面を見ていきます。次に、分析をグラフィカルに投影する電荷をプロットします。 kaggleから収集されたソース。ここにあります。 データの整理 以下のプログラムでは、最初に短いPythonプログラムを使用してデータを取得します。さらに分