import pandas as pd
import numpy as np
train_data = pd.read_csv('train.csv',index_col = 0)
test_data = pd.read_csv('test.csv',index_col = 0)
train_data.head()
train_y_test = train_data['SalePrice'] #对比数据前后变化
train_y = np.log1p(train_data.pop('SalePrice')) #拿出Y然后进行分布均化
import matplotlib.pyplot as plt
plt.figure(figsize=(8,10))
plt.subplot(211)
plt.hist(train_y_test)
plt.subplot(212)
plt.hist(train_y)
在进行数据处理的时候,我们需要把y剔除在外,因为测试集中不存在这一列。预测测试集中的y是我们的工作。使用pop直接取出这一列并对y进行分布均化处理,结束了我们需要返回来,这里用了log1p,最后我们需要用expm1反向处理回来,当然也可以有其他的处理方法
MSSubClass这个特征的值虽然是数字的,可是这些数并不存在大小关系,其实这个特征是个类别变量(有些题会注明),在我们利用pandas载入数据的时候,pandas是会把它当成数值,破坏了特征原有的含义,我们需要将之手动转化为str,