彩票网站模版,东莞建筑设计院排名,简单个人网页设计模板,东莞公司注册地址可以是住宅吗进度24/12/18
昨日复盘#xff1a; 补充并解决Day7Kaggler日志–Day7统计的部分问题
今日进度#xff1a; 继续完成Day8Kaggler日志–Day8统计问题的解答
明日规划#xff1a; 今天报名了Regression with an Insurance Dataset算是新手村练习比赛#xff0c;截止时间是2…进度24/12/18
昨日复盘 补充并解决Day7Kaggler日志–Day7统计的部分问题
今日进度 继续完成Day8Kaggler日志–Day8统计问题的解答
明日规划 今天报名了Regression with an Insurance Dataset算是新手村练习比赛截止时间是25年1月1日还有13天。
问题解决
整体流程
四个部分
EDA探索性数据分析预处理移除行、列填补空缺值特征工程新增特征特征放缩变换类似更高级的预处理建模模型选择集成训练与评估
昨天的问题
EDA部分 对不同变量类型判别的举例说明 分类可视化时离散型数值类型、连续型数值类型、类别类型填补空缺时填补NA的填补众数的类别型填补平均数的数值型分组填补的。 对于不同类型变量使用的可视化图表的理解 连续分布kde核密度估计画柱状图、箱线图离散分布柱状图 多变量分析可视化 两两相关性分析相关性热力图–找多重共线性变量单变量与目标值的相关性相关性指标、散点图 箱线图与离群点、skewed箱线图要素以及偏态的判断
待解决问题
EDA部分 空缺值填补策略 特征工程CV验证的应用集成模型模型融合
空缺值填补
Pandas中使用NaN表示空缺值。 空缺值的产生可能是由于维护不当或用户没有响应造成的。
缺失值类型
完全随机缺失MCAR当数据缺失的概率在所有观测值中均匀分布时为这种缺失。该数据的缺失与数据集中任何其它观察到的或者未观察到的数据之间没有关系。这种缺失是纯随机的没有任何可辨别的模式。随机缺失MAR数据缺失取决于观测到的数据而不是缺失的数据本身。该缺失值可以通过已拥有的信息变量来解释。缺失值中存在某种模式。eg.一份数据中性别为空的记录中才可能缺少年龄项年龄的缺失取决于性别但缺少性别的记录中年龄的缺失仍是随机的非随机缺失MNAR数据的缺失与未观测数据本身有关此类缺失有固定的模式但是通过观测变量来解释。在有关图书馆的调查中逾期图书较多的人不太可能回应调查因此逾期图书数量缺失取决于逾期图书的数量 了解缺失数据类型至关重要因为它决定了处理缺失值的适当策略并确保统计分析的完整性 处理类型
删除丢弃太多数据会影响结论的可靠性归纳法 均值/中位数/众数插补如果数据缺失不是随机分布的可能会引入偏差。K近邻KNN插补根据可用特征找到最近的数据点邻居并使用它们的值来估计缺失值。当拥有大量数据且缺失分散时KNN很有用基于模型的插补根据数据中的其它特征来预测缺失值这可能是一种强大的技术但是需要更多的专业知识并且计算成本可能很高。
为什么要处理缺失值
如果数据包含缺失值许多机器学习算法都会失败最终可能构建一个有偏见的模型如果缺失值处理不当会导致不正确的结果缺失数据可能导致系统缺乏精度
处理方法
删除缺失值填补缺失值填补分类特征的缺失值使用Sci-kit学习库填补缺失值使用缺失值作为特征
删除缺失值
一般来说不推荐如果缺失值属于非随机确实类型MNAR则更不应删除。 如果为随机缺失或者完全随机缺失则可以考虑删除当然删除就可能丢失有用数据
删除也有两种方法
整行删除df.dropna(axis0)整列删除df.drop([‘col_name’], axis1)
估算缺失值
用任意值替换df[col_name].fillna(0)用平均值(适用数值)/众数(适用类别)/中位数(适用出现异常的数值)替换df[col_name] df[col_name].fillna(df[col_name].mean())用前一个值向前填充(适用于时间序列数据)Series.fillna(methodsffill)。用下一个值是bfill插值有多种不同的插值方法–多项式、线性、二次。默认是线性Series.interpolate() 插值是利用周围的数值来估计中间的空缺值一般用在序列数据或图像数据上
分类特征缺失值
估算最常见的值
from sklearn.impute import SimpleImputer
imputer SimpleImputer(strategymost_frequent)
imputer.fit_transformer(X)估算缺失值SimpleImputer(strategyconstant, fill_valuemissing)
使用Sci-kit学习库填补缺失值
通过创建另一个模型来根据另一个变量预测一个变量的观测值称为回归填补
单变量方法imp SimpleImputer(missing_valuesnp.nan, strategymean)多变量方法 KNNImputer找到已有观测值最相似的行利用这些行估计缺失值IterativeImputer构建从已有观测值计算缺失观测值的模型来估计缺失值
使用“缺失值”作为特征
某些情况下可以保留缺失值的缺失情况作为特征。因为有时缺失值缺失的原因与尝试预测的目标变量之间可能存在关系。 eg. 假设正在预测疾病由于没有贫困人口记录年龄缺失很可能可是一个很好的指标因为年龄缺失不是随机的贫困人口很可能缺失年龄并且贫困核疾病相关
imputer SimpleImputer(add_indicatorTrue)
imputer.fit_transform(X)特征工程
特征工程是指从原始数据转化为特征向量的过程特征工程是机器学习中最重要的起始步骤会直接影响机器学习的效果并通常需要大量的时间。典型的特征工程包括数据清理、特征提取、特征选择等过程。
数据清理
缩放特征值处理极端离群值分箱离散化填补遗漏值移除重复样本、不良标签、不良特征值等平滑正则化
降维 高维情形下经常会碰到样本系数、距离计算困难的问题解决方法就是降维 主成分分析法PCA核化线性降维KPCA等…
特征选择
特征选择是一个从给定的特征集合种选择与当前学习任务相关的特征的过程。一些“冗余特征”需要剔除。 常见的特征选择方法有三类
过滤式选择先对数据集进行特征选择再训练学习器特征选择与后续机器学习无关。典型算法为Relief算法 方差选择法相关系数法卡方检验互信息法 包裹是选择选择直接把最终要使用的学习器的性能作为特征子集的评价标准。典型算法为LVM 递归特征消除法 嵌入式选择将特征选择过程与学习器训练过程融为一体两者再同一个优化过程中文昌即再学习器训练过程中自动地进行了特征选择。典型算法为岭回归、LASSO回归等 基于惩罚项地特征选择法基于树模型的特征选择法
良好特征的特点包括
避免很少使用的离散特征值良好的特征值应该再数据集中出现大约5次以上最好具有清晰的定义良好的浮点特征不包含超出范围的异常断点或“神奇”的值特征的定义不应随时间变化
特征组合
特征组合称为特征交叉通过将两个或多个输入特征相乘来对特征空间中的非线性规律进行编码的合成特征。
常见的特征组合方程
A X BA X B X C X D X EA X A
CV的深入理解
有一个问题CV可以用在最终评估和超参数调优的网格化搜索过程中但是如果这两个过程都使用同一个数据集进行CV。就是最终验证要用到的数据参与到了模型的建模调优过程中这样是可以的吗
集成建模 模型集成是一种通过结合多个独立训练的机器学习模型来提高整体性能的技术。这种方法通过利用多个模型的额不同优势和学习特征以期望在继承后获得更好的泛化能力、稳健性和性能表现。 常见类型
投票集成多个模型独立训练预测时每个模型投票最终的预测结果有多数投票决定平均集成多个模型的预测结果取平均值分类问题可以使用概率的平均值自适应集成这种方法动态地选择哪个模型对于给定输入更合适。这可以基于输入数据的特性例如使用某个模型在某些特定子集上表现更好Stacking 更复杂的集成方法在一个一元模型的框架下结合多个基本模型。基本模型的预测结果成为元模型的输入。元模型通过学习如何结合基本模型的输出来产生最终预测结果Boosting其中弱分类器按顺序进行训练每个新模型都试图纠正前一个模型的错误最终的预测结果时所有模型的加权组合。Bagging通过在训练集上进行重采样训练多个模型然后将它们的预测结果平均或投票
优势如下
提高泛化能力降低过拟合风险提高鲁棒性性能提升
模型融合 模型融合是指将多个模型的输出结果结合起来以产生最终的预测结果。模型融合通常是集成建模的一个具体实现强调如何将不同模型的结果进行合并。 集成建模更强调模型的组合策略和训练过程通常涉及多种模型和集成方法。 模型融合侧重于如何将多个模型的输出结果结合在一起强调的是结果的整合。
附录
有关EDA和特征工程的思考
EDA更多的是查询数据发现数据模式和异常而实际的对数据的各种修改操作都算是特征工程的范畴。
二者相互促进 EDA为特征工程和模型选择提供直到特征工程构建新的特征后可以再次EDA以验证新特征对模型性能的影响。