0
行列が整数値であるとします。確率的行列(行列の各行の和を1にする)を作成します。確率行列正規化への整数行列
ランダム行列を作成し、各行のカウントの合計を計算し、行の各要素を行の合計に分けます。
dt = pd.DataFrame(np.random.randint(0,10000,size=10000).reshape(100,100))
dt['sum_row'] = dt.sum(axis=1)
for col_n in dt.columns[:-1]:
dt[col_n] = dt[col_n]/dt['sum_row']
この行の合計は1に等しくなければなりません。しかし、そうではありません。
(dt.sum_row_normalized == 1).value_counts()
> False 75
> True 25
> Name: sum_row_normalized, dtype: int64
私はいくつかの値が正確に1、それに非常に近いではないことを理解しています。それにもかかわらず、行列を正しく正規化するにはどうすればよいですか?
注意'float'は最初に' dt [col_n]/float(dt ['sum_row']) 'となります。 –