一.数据可视化
1.数据分布情况


2.直方图

3.PCA(Principal Component Analysis,主成分分析)
1. 降维可以缓解维度灾难问题
2.降维可以在压缩数据的同时让信息损失最小化
3.理解几百个维度的数据结构很困难,两三个维度的数据通过可视化更容易理解
你正在拍摄一个水壶。水壶是三维的,但是照片是二维的,为了更全面的把水壶展示给客户,你需要从不同角度拍几张图片。下图是你从四个方向拍的照片:

第一张图里水壶的背面可以看到,但是看不到前面。第二张图是拍前面,可以看到壶嘴,这张图可以提供了第一张图缺失的信息,但是壶把看不到了。从第三张俯视图里无法看出壶的高度。第四张图是你真正想要的,水壶的高度,顶部,壶嘴和壶把都清晰可见。
PCA的设计理念与此类似,它可以将高维数据集映射到低维空间的同时,尽可能的保留更多变量

二.异常值处理
1.重复值删除:

2.离群值处理:
箱形图
箱形图分析和绘制方法

例子:
一组有序数12,15,17,19,20,23,25,28,30,33,34,35,36,37
下四分位数Q1
Q1所在的位置=(14+1)/4=3.75,
Q1=0.25×第三项+0.75×第四项=0.25×17+0.75×19=18.5
中位数(第二个四分位数)Q2
Q2所在的位置=2(14+1)/4=7.5,
Q2=0.5×第七项+0.5×第八项=0.5×25+0.5×28=26.5
上四分位数Q3
Q3所在的位置=3(14+1)/4=11.25,
Q3=0.75×第十一项+0.25×第十二项=0.75×34+0.25×35=34.25
上限
四分位距IQR=Q3-Q1,那么上限=Q3+1.5IQR
下限
下限=Q1-1.5IQR

三.缺失值处理

少量缺失值的数据可以直接删除(data.dropna()),有多个缺失值的特征数据,利用回归算法填充。
机器学习分为“监督学习”和“无监督学习”。“监督学习”又分为“回归”和“分类”。
回归:银行根据你的工资和年龄,决定贷你多少钱。输出值:1万,2万,n万等。结果是连续的值
分类:银行根据你的工资和年龄,决定是否要给你放款。输出值:是和否。结果是离散的值
典型的回归问题:预测房价

填补月工资缺失值(随机森林法):

四.分类模型评估
1.交叉验证(Cross Validation)
K折交叉验证(K-CV)
将原始数据分成K组(一般是均分),将每个子集数据分别做一次验证集,其余的K-1组子集数据作为训练集,这样会得到K个模型,用这K个模型最终的验证集的分类准确率的平均数作为此K-CV下分类器的性能指标\



2.混淆矩阵
四个基础指标,一级指标
FN:False Negative,模型预测为负样本,但事实上是正样本
FP:False Positive, 模型预测为正样本,但事实上是负样本
TN:True Negative, 模型预测为负样本,事实上也是负样本
TP:True Positive, 模型预测为正样本,事实上也是正样本
将这四个指标一起呈现在表格中,就能得到如下这样一个矩阵,我们称它为混淆矩阵(Confusion Matrix)

预测性分类模型,肯定是希望越准越好。那么,对应到混淆矩阵中,那肯定是希望TP与TN的数量大,而FP与FN的数量小。所以当我们得到了模型的混淆矩阵后,就需要去看有多少观测值在第二、四象限对应的位置,这里的数值越多越好;反之,在第一、三四象限对应位置出现的观测值肯定是越少越好
二级指标
混淆矩阵里面统计的是个数,有时候面对大量的数据,光凭算个数,很难衡量模型的优劣。因此混淆矩阵在基本的统计结果上又延伸了如下4个指标,他们是二级指标
准确率(Accuracy)—— 针对整个模型
精确率(Precision)
灵敏度(Sensitivity):就是召回率(Recall)
特异度(Specificity)

三级指标
这个指标叫做F1 Score。他的计算公式是:

其中,P代表Precision,R代表Recall。
F1-Score指标综合了Precision与Recall的产出的结果。F1-Score的取值范围从0到1的,1代表模型的输出最好,0代表模型的输出结果最差。
混淆矩阵实例

Accuracy
在总共66个动物中,我们一共预测对了10 + 15 + 20=45个样本,所以准确率(Accuracy)=45/66 = 68.2%
以猫为例,我们可以将上面的图合并为二分问题

Precision
所以,以猫为例,模型的结果告诉我们,66只动物里有13只是猫,但是其实这13只猫只有10只预测对了。模型认为是猫的13只动物里,有1条狗,两只猪。所以,Precision(猫)= 10/13 = 76.9%
Recall
以猫为例,在总共18只真猫中,我们的模型认为里面只有10只是猫,剩下的3只是狗,5只都是猪。这5只八成是橘猫,能理解。所以,Recall(猫)= 10/18 = 55.6%
Specificity
以猫为例,在总共48只不是猫的动物中,模型认为有45只不是猫。所以,Specificity(猫)= 45/48 = 93.8%。
虽然在45只动物里,模型依然认为错判了6只狗与4只猫,但是从猫的角度而言,模型的判断是没有错的。
F1-Score
通过公式,可以计算出,对猫而言,F1-Score=(2 * 0.769 * 0.556)/( 0.769 + 0.556)= 64.54%
2.ROC曲线和AUC


横轴是FPR(FP / (FP + TN)),纵轴是TPR(TP /
(TP + FN)),即Recall
AUC值越大说明模型预测效果越好
那么为什么要用AUC作为二分类模型的评价指标呢?为什么不直接通过计算准确率来对模型进行评价呢?
因为机器学习中的很多模型对于分类问题的预测结果大多是概率,即属于某个类别的概率,如果计算准确率的话,就要把概率转化为类别,这就需要设定一个阈值,概率大于某个阈值的属于一类,概率小于某个阈值的属于另一类,而阈值的设定直接影响了准确率的计算。也就是说AUC越高说明阈值分割所能达到的准确率越高
五.刷榜利器XGBoost
特征重要性

网友评论