一种针对不均衡样本执行自动化机器学习的方法与流程

文档序号:15447721发布日期:2018-09-14 23:34阅读:973来源:国知局
本发明涉及数据挖掘领域,特别是涉及一种针对不均衡样本执行自动化机器学习的方法。
背景技术
:机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等。它致力于通过计算手段,利用经验来改善系统自身性能。机器学习主要研究在计算机上从数据产生模型的算法,即学习算法。在面对新情况时,模型会提供相应判决。过去20年内,人类收集,存储,传输,处理数据的能力明显提高,迫切需要从有效数据中总结规律,分析利用。机器学习刚好满足上述需求,因而受到广泛关注。根据问题类型,机器学习算法划分为有监督学习,无监督学习,半监督学习等任务。有监督学习从有标记的训练数据入手,每个样本有一组输入及一个期望输出。根据输入输出训练模型,训练好后,给一组新的输入,可以预测输出。无监督学习只有输入,没有期望输出。根据输入训练模型,解决模式识别的各种问题。半监督学习使用大量未标记数据,同时也使用标记数据,来进行模式识别工作。有监督学习任务训练模型进行二分类时,正反例样本往往不均衡,即一类样本数明显多于另一类样本数(比如欺诈账户识别,癌症识别等案例,正反例样本比例明显超过4:1)。不均衡样本直接影响模型预测效果。例如,正反例样本比例为9:1,即使模型将全部样本判为正例(不预测直接得到输出),判别准确率仍为90%,但此模型没有预测能力。同时,机器学习涉及多种算法,每种算法有各自参数需要调节。在进行二分类预测时,选择哪种算法及相应参数,都需要手工调试,非常耗时。因此,需要一种针对不均衡样本执行自动化机器学习的方法。技术实现要素:本发明所要解决的技术问题是克服现有技术的不足,提供一种针对不均衡样本执行自动化机器学习的方法。为解决上述技术问题,本发明提供一种针对不均衡样本执行自动化机器学习的方法,其特征在于,包括如下步骤:步骤1,准备原始数据,根据业务理解收集、存储原始数据;步骤2,对原始数据进行数据预处理;步骤3,拆分训练集,测试集,供后期建模训练,验证效果;步骤4,样本均衡处理,对样本偏多的类进行欠采样,反之进行过采样;步骤5,以auc值最优为目标,调用python包,执行自动化机器学习;步骤6,模型验证,观察查准率、查全率、f1分数、auc值,如模型效果低于理想值时,返回重新执行步骤5;步骤7,建模完成。所述步骤2中的数据预处理还包括:步骤21进行数据清洗,删除或填充丢失数据;步骤22对数据进行标准化,将数据映射至[0,1]区间,减少指标之间的量纲差异。所述步骤22中对数据进行标准化的方法是调用sklearn.preprocessing.minmaxscaler的fit_transform。所述步骤3中的拆分训练集是指调用sklearn.model_selection的train_test_split方法拆分样本,70%为训练集,30%为测试集。所述步骤4中的样本均衡处理是指调用imblearn.combine.smote_tomek.smotetomek的fit_sample方法,对样本偏多的类进行tomek欠采样,对样本偏少的类进行smote过采样所述步骤5还包括:步骤51变量选择,算法选择;步骤52调参;所述调用python包的方法是调用tpot.tpotclassifier的fit,tpot执行结束,导出pipeline。所述步骤6中的模型验证的方法是调用sklearn.metrics相关包,所述查准率的理想值是0.7,查全率的理想值是0.7,f1分数的理想值是0.8、auc值的理想值是0.8。本发明所达到的有益效果:面向有监督学习的二分类预测,提出一种解决样本不均衡且自动执行最优算法选择及调参的有效实施方案,可以节省大量人力,并且得到可靠的预测效果。附图说明图1为本发明的示例性实施例的流程简图。具体实施方式下面结合附图和示例性实施例对本发明作进一步的说明:如图1所示,本发明提供了一种针对不均衡样本执行自动化机器学习的方法,包括:步骤1,准备原始数据,根据业务理解收集、存储原始数据;步骤2,对原始数据进行数据预处理;步骤21,进行数据清洗,删除或填充丢失数据;步骤22,对数据进行标准化,将数据映射至[0,1]区间,减少指标之间的量纲差异,若直接使用原始数据,模型系数相近时,量纲大的指标对目标变量具备更强影响力,但这不一定符合客观事实;因而需要标准化,使各指标量纲相同,对目标变量影响程度相近,再进行训练,找出真正具备影响力的指标;步骤3,拆分训练集,测试集,供后期建模训练,验证效果;步骤4,样本均衡处理,对样本偏多的类进行欠采样,反之进行过采样,不均衡样本直接影响模型预测效果:例如,正反例样本比例为9:1,即使模型将全部样本判为正例,判别准确率仍为90%,但此模型没有预测能力;步骤5,以auc值最优为目标,调用python包,执行自动化机器学习,机器学习涉及多种算法,每种算法有各自参数需要调节;选择哪种算法及相应参数,都需要反复手工调试,非常耗时;而自动化机器学习将数据人员从手动调试环节解放出来,自动尝试sklearn包中各种算法的组合及调参,并给出最优搭配结果;步骤51,变量选择,算法选择;步骤52,调参;步骤6,模型验证,观察查准率、查全率、f1分数、auc值,模型效果不理想时,返回重新执行步骤5;步骤7,建模完成。下面结合某网站的访问和会员购买数据作为实施例做进一步解释,步骤1,本发明统计2017/11/08之前的30天,每天汇总前7天数据。访问指标如下:访问平台标记(0:多平台混合登录,1:官网,2:触屏)访问平台数前7日平均pv前7日平均停留时长前7日累计访问天数前7日平均人寿险pv前7日平均健康险pv前7日平均意外险pv前7日平均旅游险pv前7日平均人寿险列表页pv前7日平均健康险列表页pv前7日平均意外险列表页pv前7日平均旅游险列表页pv前7日平均人寿险停留时长前7日平均健康险停留时长前7日平均意外险停留时长前7日平均旅游险停留时长前7日平均人寿险列表页停留时长前7日平均健康险列表页停留时长前7日平均意外险列表页停留时长前7日平均旅游险列表页停留时长前7日平均人寿险访问产品数前7日平均健康险访问产品数前7日平均意外险访问产品数前7日平均旅游险访问产品数前7日平均访问模块数前7日平均查看购物车pv前7日平均查看购物车停留时长会员购买指标如下:会员性别会员购买标记(0:不购买,1:购买)步骤21,一些未登录访问无法匹配会员性别,会员性别对目标变量有一定影响力,缺失性别的样本在业务上存在问题,数据指标不可靠,故直接删除会员性别缺失的样本,不考虑拟合填充。步骤22,调用sklearn.preprocessing.minmaxscaler的fit_transform方法,将数据映射至[0,1]区间,减少指标之间的量纲差异。sklearn包囊括机器学习领域分类、回归、聚类、降维、模型选择、数据预处理等众多经典算法的权威实现,本发明调用此包的函数完成以下通用处理流程fromsklearn.preprocessingimportminmaxscalercombined_set[col_remain]=minmaxscaler().fit_transform(np.log1p(combined_set[col_remain]))步骤3,调用sklearn.model_selection的train_test_split方法,拆分样本,样本总量28000,70%为训练集,30%为测试集,经测试,70%划分为训练集已足够保证收敛,30%划分为测试集,可以比较全面的覆盖各类测试样本,使评估模型预测效果具有较强说服力。fromsklearn.model_selectionimporttrain_test_splitx_train,x_test,y_train,y_test=train_test_split(combined_set[predictors],combined_set['buy_mark'],test_size=0.33,random_state=42)步骤4,调用imblearn.combine.smote_tomek.smotetomek的fit_sample方法,对样本偏多的类进行欠采样,对样本偏少的类进行过采样,均衡样本训练的模型鲁棒性更强。fromimblearn.combineimportsmote_tomeksmt=smote_tomek.smotetomek(random_state=42)x_train,y_train=smt.fit_sample(x_train,y_train)步骤5,调用tpot.tpotclassifier的fit方法,执行自动化机器学习,以auc值最优为目标,不需人工选择算法或调参。tpot包以sklearn包的权威算法库为基础,基于遗传算法衍生模型;生成模型后,数据人员可以修改模型结构,进行2次开发,本发明调用tpot包实现自动化机器学习。fromtpotimporttpotclassifiertpot=tpotclassifier(generations=100,population_size=100,random_state=42,verbosity=2,scoring='roc_auc',warm_start=true)tpot.fit(x_train,y_train)print(tpot.score(x_test,y_test))tpot.export(file_name2+file_fmt2)tpot执行结束,导出pipeline如下:步骤6,调用sklearn.metrics相关包进行模型验证,观察查准率、查全率、f1-score、auc值。样本量support:即样本数量;查准率precision(p):检索相关信息量/检索信息总量;高于0.7较理想,查准率越高,检索结果包含的无关信息越少,但相关信息完整性可能偏低;查全率recall(r):检索相关信息量/相关信息总量;高于0.7较理想,查全率越高,检索结果包含的相关信息完整性越高,但可能掺杂无关信息;查全率与查准率为互逆相关,若想提高查全率就必然降低查准率,反之亦然。f1分数,即f1-score,综合考量查准率和查全率,全面反映模型预测能力,高于0.8较理想。auc值:随机抽取一个正样本和一个负样本,模型给出正样本得分高于负样本得分(即预测正确)的概率,高于0.8较理想。fromsklearn.metricsimportclassification_report,confusion_matrix,roc_auc_scoreprint(classification_report(y_test,y_pred))print('auc:%0.2f'%roc_auc_score(y_test,y_pred))模型效果如表1,可见,f1-score,auc值均较为理想,模型可用。表1tpot自动化机器学习建模效果auc=0.84precisionrecallf1-scoresupport00.920.890.90612510.730.780.752306avg/total0.860.860.868413步骤7,建模完成,可用此模型进行预测。本发明以2017/11/09至2017/11/19数据进行预测,效果见表2,较为理想。表2模型预测效果auc=0.84precisionrecallf1-scoresupport00.920.850.88416510.690.840.761754avg/total0.860.840.855919本发明面向有监督学习的二分类预测,提出一种解决样本不均衡且自动执行最优算法选择及调参的有效实施方案,可以节省大量人力,并且得到可靠的预测效果。以上实施例不以任何方式限定本发明,凡是对以上实施例以等效变换方式做出的其它改进与应用,都属于本发明的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1