房价预测(1)
https://blog.csdn.net/qilixuening/article/details/75153131
1、有缺失值的检查,以百分数的形式表示。
2、缺失值的补全与变换
类型(离散)变量缺失值补全
连续变量缺失值补全
3、相关分析
对于离散变量,我们可以进行一元方差分析,获得各个离散变量对房价方差的影响:
图
对离散变量编码,因此,我们可以按照各离散变量相应取值下房价的均值来给各个取值划定一个1,2,3,4来定量描述他们对房价的影响,也就是将离散变量转化为数值型的有序变量:
4、特征相关性分析与特征选取
对比上述两种不同的缺失值处理手段可以发现,最终,方法1是保留了无缺失值的特征,但其中有大量离散变量,我们无法对其进行特征互相关分析,从而特征的选取与剔除都只能在数值型变量上进行;而方法2则由于进行了一系列操作使得类型变量变为了数值型有序变量,可以进行相关分析。因此,以下操作主要针对方法2进行。
首先,对于有序变量,不能采用常规的相关系数进行计算,而应该采用斯皮尔曼等级相关系数,它不但能处理一般的连续性变量,同时还能很好地表征顺序变量的相关性。
离散:斯皮尔曼等级相关系数(spearman)
连续:皮尔逊相关系数
5、数据的归一化
最重要的便是调整数据的分布为正态分布
不符合正态分布的用log
6、哑变量
部分特征还是存在问题,因此可以考虑构建新的特征来解决上述问题,并为这些连续变量提供新的连续或离散特征
除了上述连续变量的处理,对于此时的数据集中的类型变量(缺失值处理采用方法1的情况)应该进行“哑变量”处理,此步采用pd.get_dummies()
与使用sklearn
下的OneHotEncoder()
作用是相同的。
房价预测(2)
https://www.kaggle.com/marsggbo/kaggle
1、分析房价
下面还可以看到两个统计学中的概念: 峰度(Kurtosis)和 偏度(Skewness)。
峰度:描述分布形态走缓程度
它是和正态分布相比较的。
Kurtosis=0 与正态分布的陡缓程度相同。
Kurtosis>0 比正态分布的高峰更加陡峭——尖顶峰
Kurtosis<0 比正态分布的高峰来得平台——平顶峰计算公式:β = M_4 /σ^4
偏度:分布对称性
它是和正态分布相比较的。
2,分析特征数据
用excel分析的
3、对提取的特征的分析
关系矩阵
对离散变量用了labelencode(没有之前的好)
但是有下图的画法
绘制关系点图
房价预测(3)
https://zhuanlan.zhihu.com/p/61152599
1、立群点处理
2、对类别型变量(category variable)需要进行标签编码(LabelEncoder)和独热编码(OneHotEncoder),而标签编码和独热编码主要是基于类别变量的特征值进行编码,
3、缺失值处理
4、小心leak数据
5、特征工程
5.1、顺序特征编码:有序特征不适合标签编码(LabelEncode),它无法识别特征的顺序关系,需要自定义函数进行编码转换
5.2、增添特征
5.3、时间特征编码
5.4、数据转换 比较常用的有log转换,box-cox转换等变换方式
5.5、 one-hot编码
5.6、将数值变量标准化
6、构建模型(elasticNet)
6.1、弹性网络(elasticNet)是一种使用 L1,L2范数作为先验正则项训练的线性回归模型.
6.2、模型融合:为了得到更精准的预测,我们再拿随机森林建立一次模型,并将结果与ElasticNet进行融合
泰坦尼克Titanic(1)
https://zhuanlan.zhihu.com/p/31743196
1、缺失值处理
2、分析数据相关性
3、变量转换
变量转换的目的是将数据转换为适用于模型使用的数据
3.1、 定性(Qualitative)转换:
1. Dummy Variables
就是类别变量或者二元变量,当qualitative variable是一些频繁出现的几个独立变量时,Dummy Variables比较适合使用
2. Factorizing
dummy不好处理Cabin(船舱号)这种标称属性,因为他出现的变量比较多。所以Pandas有一个方法叫做factorize(), 它可以创建一些数字,来表示类别变量,对每一个类别映射一个ID
3.2、定量(Quantitative)转换:
1. Scaling
Scaling可以将一个很大范围的数值映射到一个很小的范围(通常是-1 - 1,或则是0 - 1),很多情况下我们需要将数值做Scaling使其范围大小一样,否则大范围数值特征将会由更高的权重。
2. Binning
Binning通过观察“邻居”(即周围的值)将连续数据离散化。存储的值被分布到一些“桶”或“箱“”中,就像直方图的bin将数据划分成几块一样。
在将数据Bining化后,要么将数据factorize化,要么dummies化。
4、特征工程
4.1、对Sex也进行one-hot编码,也就是dummy处理:
4.2、Name
(1)首先先从名字中提取各种称呼:
(2)使用dummy对不同的称呼进行分列:
4.3、Fare
使用binning给票价分等级:
4.4、Parch and SibSp(合并就是升纬)
由前面的分析,我们可以知道,亲友的数量没有或者太多会影响到Survived。所以将二者合并为FamliySize这一组合项,同时也保留这两项。
5、特征间相关性分析
5.1、特征之间的数据分布图
6、模型融合
7、验证学习
8. 超参数调试
https://blog.csdn.net/sinat_41774213/article/details/88552652
1、数据预处
2、箱线图
3、热力图
4、特征选择
4.1、根据每个变量的欺诈样本和正常样本的分布的差异情况,如果欺诈样本和正常样本的分布差异不大,则可以去除该特征
4.2、用Lasso进行变量选择和随机森林分类器对特征重要性进行排序
4.3、处理样本不平衡问题(SMOTE模块)https://douzujun.github.io/page/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/%E7%B1%BB%E4%B8%8D%E5%B9%B3%E8%A1%A1%E9%97%AE%E9%A2%98_%E4%BF%A1%E7%94%A8%E5%8D%A1%E6%AC%BA%E8%AF%88%E6%A3%80%E6%B5%8B.html
https://www.cnblogs.com/kamekin/p/9824294.html
不平衡的数据集的定义: 所谓的不平衡数据集指的是数据集各个类别的样本量极不均衡。以二分类问题为例,假设正类的样本数量远大于负类的样本数量,通常情况下通常情况下把多数类样本的比例接近100:1这种情况下的数据称为不平衡数据。不平衡数据的学习即需要在分布不均匀的数据集中学习到有用的信息。