所有数据均由kaggle获取
1)数据清洗:
1.通过热力图观察特征值之间的关系
在图中,我们定义了下面的特征:
Index(['Id', 'MSSubClass', 'MSZoning', 'LotFrontage', 'LotArea', 'Street',
'Alley', 'LotShape', 'LandContour', 'Utilities', 'LotConfig',
'LandSlope', 'Neighborhood', 'Condition1', 'Condition2', 'BldgType',
'HouseStyle', 'OverallQual', 'OverallCond', 'YearBuilt', 'YearRemodAdd',
'RoofStyle', 'RoofMatl', 'Exterior1st', 'Exterior2nd', 'MasVnrType',
'MasVnrArea', 'ExterQual', 'ExterCond', 'Foundation', 'BsmtQual',
'BsmtCond', 'BsmtExposure', 'BsmtFinType1', 'BsmtFinSF1',
'BsmtFinType2', 'BsmtFinSF2', 'BsmtUnfSF', 'TotalBsmtSF', 'Heating',
'HeatingQC', 'CentralAir', 'Electrical', '1stFlrSF', '2ndFlrSF',
'LowQualFinSF', 'GrLivArea', 'BsmtFullBath', 'BsmtHalfBath', 'FullBath',
'HalfBath', 'BedroomAbvGr', 'KitchenAbvGr', 'KitchenQual',
'TotRmsAbvGrd', 'Functional', 'Fireplaces', 'FireplaceQu', 'GarageType',
'GarageYrBlt', 'GarageFinish', 'GarageCars', 'GarageArea', 'GarageQual',
'GarageCond', 'PavedDrive', 'WoodDeckSF', 'OpenPorchSF',
'EnclosedPorch', '3SsnPorch', 'ScreenPorch', 'PoolArea', 'PoolQC',
'Fence', 'MiscFeature', 'MiscVal', 'MoSold', 'YrSold', 'SaleType',
'SaleCondition', 'SalePrice'],
dtype='object')。
2.当某些特征比较相似且无法分别时,可以删除相对来说比较弱的特征
3.因为大部分的统计原理和参数检验都是基于正态分布推得的。所以当数据不符合正态分布时,就需要将数据进行数据转换(对数据取log,可以解决大部分问题)
如图下图,数据在初始时,数值分散大,二图数值分散多:
对数值取log后:
2)数据丢失:
1.丢失数据操作,当特征内的数据丢失大于某个百分比,可以删除一些比较偏远的数值
eg:在预测某个地方的房价时,某些features的数据可能会产生一些奇怪的数值,如下图所示,图中的右边有两颗数据点离整体极远,且无法分析原因时候,则可以把这两个数据定义为离群值,并进行删除操作
2.当是偏态且有相当的观察值为0时,无法进行对数操作。为了在这里应用一个log转换,我们将创建一个变量,该变量可以获得拥有或没有地下室(二进制变量)的效果。然后,我们将对所有非零的观测做一个对数变换,忽略那些值为0的观测值。这样我们就可以转换数据,而不会失去地下室的影响。
3.对两个变量进行方差检验的最佳方法是将其图形化显示出来