前提:有一列price的数据
y = Train_data['price']

我们看看他符合什么总体分布
无界约翰逊分布johnsonsu?
正态norm?
对数正态(比正态偏上一点)lognorm?

代码:

import scipy.stats as st
import seaborn as sns
y = Train_data['price']
plt.figure(1); plt.title('Johnson SU')
sns.distplot(y, kde=False, fit=st.johnsonsu)
plt.figure(2); plt.title('Normal')
sns.distplot(y, kde=False, fit=st.norm)
plt.figure(3); plt.title('Log Normal')
sns.distplot(y, kde=False, fit=st.lognorm)

结果:



价格不服从正态分布,所以在进行回归之前,它必须进行转换。虽然对数变换做得很好,但最佳拟合是无界约翰逊分布