将某种指数分布转换为正态分布

时间:2018-11-15 08:31:34

标签: python numpy scipy

我具有以下指数分布,它是通过以下代码生成的:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import random

np.random.seed(1)
tags_ratio = np.random.exponential(1/25, 1000)
plt.hist(tags_ratio, range=(0, 1), bins=100)
plt.show()

enter image description here

我正在尝试将tags_ratio中的数据转换为正态分布,但没有成功。

尝试使用对数函数和平方函数。它给出了不错的结果。但是我对更多的想法很感兴趣。也许更复杂。

1 个答案:

答案 0 :(得分:1)

您可以尝试看看是否有帮助:

from scipy.stats import boxcox
tags_ratio = boxcox(tags_ratio, 0.3)
plt.hist(tags_ratio)
plt.show()

结果:

enter image description here

有关Box-Cox click here.

的更多解释和理论