먼저 훨씬 간단한 공식을 사용하십시오 (ϵ
은 "실제 레이블"에서 얼마나 많은 확률로 이동하여 나머지 모든 레이블에 배포 할 것인지 나타냄). 당신이해야 할 모든
x -> x * (1 - ϵ) + (1-x) * ϵ/(k-1)
을하기 때문에
1 -> 1 - ϵ
0 -> ϵ/(k-1)
당신은 단순히 따라서 귀하의 더미 열 a, b, c, d
경우 만 수행 위의 멋진 수학적 속성을 사용할 수 있습니다
indices = ['a', 'b', 'c', 'd']
eps = 0.1
df[indices] = df[indices] * (1 - eps) + (1-df[indices]) * eps/(len(indices) - 1)
하는
>>> df
a b c d
0 1 0 0 0
1 0 1 0 0
2 0 0 0 1
3 1 0 0 0
4 0 1 0 0
5 0 0 1 0
은
a b c d
0 0.900000 0.033333 0.033333 0.033333
1 0.033333 0.900000 0.033333 0.033333
2 0.033333 0.033333 0.033333 0.900000
3 0.900000 0.033333 0.033333 0.033333
4 0.033333 0.900000 0.033333 0.033333
5 0.033333 0.033333 0.900000 0.033333
을 예상대로 반환합니다.
실제로, 제안한 방정식은 훨씬 간단합니다. 고맙습니다! –