当前位置: 首页 > news >正文

响应式食品企业网站不允许访问网站

响应式食品企业网站,不允许访问网站,o2o网站建设方案讲解,个人网站有备案吗文章目录 样本不均衡的概念及影响样本不均衡的解决方法样本层面欠采样 #xff08;undersampling#xff09;过采样数据增强 损失函数层面模型层面采样集成学习 决策及评估指标 样本不均衡的概念及影响 机器学习中#xff0c;样本不均衡问题经常遇到#xff0c;比如在金融… 文章目录 样本不均衡的概念及影响样本不均衡的解决方法样本层面欠采样 undersampling过采样数据增强 损失函数层面模型层面采样集成学习 决策及评估指标 样本不均衡的概念及影响 机器学习中样本不均衡问题经常遇到比如在金融风险人员二分类问题中绝大部分的样本均为正常人群可用的风险样本较少。如果拿全量样本去训练一个严重高准确率的二分类模型那结果毫无疑问会严重偏向于正常人群从而导致模型的失效所以说训练样本比例均衡对模型的结果准确性至关重要。 首先来看概念 【样本不均衡】所谓的样本不平衡问题指的是数据集中正负样本比例极不均衡样本比例超过4:1的数据就可以称为不平衡数据。 样本不均衡的解决方法 常用的解决方法主要从样本层面、损失函数层面、模型层面以及评价指标等4方面进行优化。 样本层面 欠采样 undersampling imblearn imblearn库中的欠采样方法包含 随机欠采样 下面是一个使用随机欠采样的示例代码 from imblearn.under_sampling import RandomUnderSampler# 创建RandomUnderSampler对象 sampler RandomUnderSampler(random_state42)# 对训练数据进行欠采样 X_resampled, y_resampled sampler.fit_resample(X_train, y_train)在上述代码中X_train和y_train分别表示训练数据的特征和标签。fit_resample()方法将返回欠采样后的特征和标签。 2.集群中心欠采样 集群中心选择欠采样Cluster Centroids Undersampling这是一种基于聚类的欠采样方法它通过聚类算法将多数类别样本聚集到少数类别样本的中心点从而减少多数类别的数量。同样地可以使用imbalanced-learn库来实现集群中心选择欠采样。 下面是一个使用集群中心选择欠采样的示例代码 from imblearn.under_sampling import ClusterCentroids# 创建ClusterCentroids对象 sampler ClusterCentroids(random_state42)# 对训练数据进行欠采样 X_resampled, y_resampled sampler.fit_resample(X_train, y_train) 在上述代码中X_train和y_train分别表示训练数据的特征和标签。fit_resample()方法将返回欠采样后的特征和标签。这些方法都可以根据具体情况选择合适的欠采样策略。值得注意的是欠采样可能会导致信息丢失因此在应用欠采样之前需要仔细评估其对模型性能的影响并选择适当的评估指标来评估模型的效果。 过采样 过采样Oversampling是一种处理样本不均衡问题的方法它通过增加少数类别样本的数量来平衡数据集。在Python中有多种过采样方法可供选择。以下是几种常用的过采样方法及其示例代码 1. 复制样本Duplicate Samples这是一种简单直接的过采样方法它通过复制少数类别样本来增加其数量。 import numpy as np# 找出少数类别样本的索引 minority_indices np.where(y minority_class_label)[0]# 复制少数类别样本 duplicated_samples X[minority_indices]# 将复制的样本添加到原始数据集中 X_oversampled np.concatenate((X, duplicated_samples), axis0) y_oversampled np.concatenate((y, np.ones(len(duplicated_samples))), axis0)在上述代码中X和y分别表示原始数据集的特征和标签。minority_class_label是少数类别的标签。通过复制少数类别样本并将其添加到原始数据集中我们可以实现过采样。 2.SMOTESynthetic Minority Over-sampling TechniqueSMOTE是一种基于合成样本的过采样方法它通过在特征空间中插入新的合成样本来增加少数类别样本的数量。 from imblearn.over_sampling import SMOTE# 创建SMOTE对象 smote SMOTE(random_state42)# 对训练数据进行过采样 X_oversampled, y_oversampled smote.fit_resample(X_train, y_train) 在上述代码中X_train和y_train分别表示训练数据的特征和标签。fit_resample()方法将返回过采样后的特征和标签。3. ADASYNAdaptive Synthetic SamplingADASYN是一种基于合成样本的自适应过采样方法它根据样本密度来生成合成样本更关注于那些在决策边界附近的少数类别样本。 from imblearn.over_sampling import ADASYN# 创建ADASYN对象 adasyn ADASYN(random_state42)# 对训练数据进行过采样 X_oversampled, y_oversampled adasyn.fit_resample(X_train, y_train) 在上述代码中X_train和y_train分别表示训练数据的特征和标签。fit_resample()方法将返回过采样后的特征和标签。这些方法都可以根据具体情况选择合适的过采样策略。需要注意的是过采样可能会导致模型对少数类别样本过拟合的问题因此在应用过采样之前需要仔细评估其对模型性能的影响并选择适当的评估指标来评估模型的效果。 数据增强 损失函数层面 损失函数层面主流的方法也就是常用的代价敏感学习cost-sensitive为不同的分类错误给予不同惩罚力度权重在调节类别平衡的同时也不会增加计算复杂度。如下常用方法 这最常用也就是scikit模型的’class weight‘方法If ‘balanced’, class weights will be given by n_samples / (n_classes * np.bincount(y)). If a dictionary is given, keys are classes and values are corresponding class weights. If None is given, the class weights will be uniform.class weight可以为不同类别的样本提供不同的权重少数类有更高的权重从而模型可以平衡各类别的学习。如下图通过为少数类做更高的权重以避免决策偏重多数类的现象类别权重除了设定为balanced还可以作为一个超参搜索。示例代码请见github.com/aialgorithm clf2 LogisticRegression(class_weight{0:1,1:10}) # 代价敏感学习模型层面 模型方面主要是选择一些对不均衡比较不敏感的模型比如对比逻辑回归模型lr学习的是全量训练样本的最小损失自然会比较偏向去减少多数类样本造成的损失决策树在不平衡数据上面表现相对好一些树模型是按照增益递归地划分数据如下图划分过程考虑的是局部的增益全局样本是不均衡局部空间就不一定所以比较不敏感一些但还是会有偏向性. 采样集成学习 BalanceCascade BalanceCascade基于Adaboost作为基分类器核心思路是在每一轮训练时都使用多数类与少数类数量上相等的训练集然后使用该分类器对全体多数类进行预测通过控制分类阈值来控制FPFalse Positive率将所有判断正确的类删除然后进入下一轮迭代继续降低多数类数量。 在Python中BalanceCascade是一个用于处理样本不均衡问题的集成学习方法它基于级联分类器。BalanceCascade通过多次迭代地训练和删除错误分类的样本来减少多数类别的数量从而实现欠采样。 你可以使用imbalanced-learn库来实现BalanceCascade方法。下面是一个使用BalanceCascade的示例代码 python from imblearn.ensemble import BalanceCascade from sklearn.tree import DecisionTreeClassifier# 创建BalanceCascade对象并指定基分类器 bc BalanceCascade(estimatorDecisionTreeClassifier(random_state42))# 对训练数据进行欠采样 X_resampled, y_resampled bc.fit_resample(X_train, y_train) 在上述代码中X_train和y_train分别表示训练数据的特征和标签。fit_resample()方法将返回欠采样后的特征和标签。BalanceCascade方法会自动进行多轮迭代每轮迭代都会训练一个基分类器并删除错误分类的样本。这样多数类别的样本数量会逐步减少直到达到平衡。 请注意BalanceCascade方法可能需要较长的时间来运行因为它涉及多轮迭代和训练多个分类器。此外选择合适的基分类器也是很重要的你可以根据具体情况选择适合的分类器。 你可以在imbalanced-learn官方文档中找到更多关于BalanceCascade方法的详细信息和示例代码。 EasyEnsemble EasyEnsemble也是基于Adaboost作为基分类器就是将多数类样本集随机分成 N 个子集且每一个子集样本与少数类样本相同然后分别将各个多数类样本子集与少数类样本进行组合使用AdaBoost基分类模型进行训练最后bagging集成各基分类器得到最终模型。示例代码可见http://www.kaggle.com/orange90/ensemble-test-credit-score-model-example 在Python中EasyEnsemble是一种用于处理样本不均衡问题的集成学习方法。它通过将原始数据集划分为多个子集并在每个子集上训练一个基分类器来实现欠采样。 你可以使用imbalanced-learn库来实现EasyEnsemble方法。下面是一个使用EasyEnsemble的示例代码 from imblearn.ensemble import EasyEnsemble from sklearn.tree import DecisionTreeClassifier# 创建EasyEnsemble对象并指定基分类器和子集数量 ee EasyEnsemble(n_estimators10, base_estimatorDecisionTreeClassifier(random_state42))# 对训练数据进行欠采样 X_resampled, y_resampled ee.fit_resample(X_train, y_train) 在上述代码中X_train和y_train分别表示训练数据的特征和标签。n_estimators参数表示要生成的子集数量base_estimator参数表示用于训练每个子集的基分类器。EasyEnsemble方法会生成多个子集并在每个子集上训练一个基分类器。最终的预测结果是所有基分类器的投票结果或平均结果以达到平衡样本不均衡的效果。 请注意EasyEnsemble方法可能需要较长的时间来运行因为它涉及生成多个子集并训练多个分类器。同样地选择合适的基分类器也是很重要的你可以根据具体情况选择适合的分类器。 你可以在imbalanced-learn官方文档中找到更多关于EasyEnsemble方法的详细信息和示例代码。 通常在数据集噪声较小的情况下可以用BalanceCascade可以用较少的基分类器数量得到较好的表现基于串行的集成学习方法对噪声敏感容易过拟合。噪声大的情况下可以用EasyEnsemble基于串行并行的集成学习方法bagging多个Adaboost过程可以抵消一些噪声影响。此外还有RUSB、SmoteBoost、balanced RF等其他集成方法可以自行了解。 决策及评估指标 在处理不平衡样本问题时传统的评价指标如准确率可能会给出误导性的结果。因此为了更准确地评估模型在不平衡数据上的性能我们通常使用以下评价指标 1.混淆矩阵Confusion Matrix混淆矩阵是一个二维矩阵用于显示分类器在每个类别上的预测结果。它包含四个重要的指标真阳性True Positive, TP真阴性True Negative, TN假阳性False Positive, FP和假阴性False Negative, FN。根据这些指标可以计算其他评价指标。 2.精确率Precision精确率是指模型预测为正例的样本中实际为正例的比例。它可以通过以下公式计算Precision TP / (TP FP)。精确率越高表示模型对于正例的判断越准确。 3.召回率Recall召回率是指实际为正例的样本中模型正确预测为正例的比例。它可以通过以下公式计算Recall TP / (TP FN)。召回率越高表示模型对于正例的识别能力越强。 4.F1值F1-ScoreF1值是精确率和召回率的调和平均值用于综合评估模型的性能。它可以通过以下公式计算F1 2 * (Precision * Recall) / (Precision Recall)。F1值越高表示模型在精确率和召回率之间取得了更好的平衡。 5.ROC曲线和AUCReceiver Operating Characteristic Curve and Area Under the CurveROC曲线是以假阳性率False Positive Rate, FPR为横轴真阳性率True Positive Rate, TPR为纵轴绘制的曲线。AUC表示ROC曲线下的面积用于衡量模型在不同阈值下的分类性能。AUC的取值范围在0到1之间越接近1表示模型性能越好。 以上评价指标可以帮助我们更全面地评估模型在不平衡样本上的性能。根据具体问题的需求选择适当的评价指标来评估模型的效果是非常重要的。
http://www.zqtcl.cn/news/443600/

相关文章:

  • 企业网站自己可以做吗服装网站建设的利益分析
  • 网站做软件居众装饰集团有限公司
  • 南山网站制作联系电话芒果国际影城星沙店
  • 珠海网站设计费用建企业版网站多久
  • linux 网站搬家wordpress 卸载plugin
  • 江苏省建设厅网站 投诉编辑网站的软件手机
  • 深圳地图各区分布图seo网络优化师就业前景
  • 北京网站备案代理国家企业信用信息公示系统广东
  • 推销网站重庆网站优化公司哪家便宜
  • 外贸公司网站搭建礼品网站建设
  • 网站建设 今晟网络中国制造网官网登录
  • 东莞网站设计如何常州做网站设计
  • php网站数据库修改网站备案有必要吗
  • 电商会学着做网站呢WordPress又拍云cdn
  • 网站健设推广产品多少钱网站规划有什么意义
  • 诚信网站备案中心内江网站建设新闻
  • 品牌形象网站有哪些百度应用中心
  • 网站建设找什么工作室甜点网站建设的功能及意义
  • wordpress 近期文章seo排名优化推广
  • 网页设计制作网站素材网站程序哪个好
  • 郑州好的网站设计公司软件开发哪里学好
  • 网站新建设请示软件外包平台哪家可信赖
  • 做阿里巴巴还是做网站好安卓手机怎么做网站
  • 社区智慧警务网站如何推进警务室建设方案广东网络推广服务
  • 东莞艺美网站建设wordpress get header
  • 做玩具什么 网站比较好网址域名
  • 网站做用户登录中国建设部官方网站资格证查询
  • 济宁网站建设公司大型餐饮网站建设
  • 昊源建设监理有限公司网站做那种的视频网站有哪些
  • wordpress滑块代码seo外链增加