特征工程在实际业务中的应用!

深度了解特征工程 什么是特征工程?特征工程解决了什么问题?为什么特征工程对机器学习很重要?怎么做特征工程?怎么做好特征工程?集众多博友智慧,一文全面了解并应用特征工程。特征工程(Feature Engineering)特征工程是将原始数据转化成更好的表达问题本质的特征的过程,使得将这些特征运用到预测模型中能提高对不可见数据的模型预测精度。特征工程简单讲就是发现对因变量y有明显影响作用的特征,通常称自变量x为特征,特征工程的目的是发现重要特征。如何能够分解和聚合原始数据,以更好的表达问题的本质?这是做特征工程的目的。... 阅读详情

 Datawhale干货 

作者:知乎King James,伦敦国王大学

知乎|https://www.zhihu.com/people/xu-xiu-jian-33

导读:大概知道特征工程,但是不清楚特征工程在实际业务中怎样应用,怎么和业务知识结合?本文将结合作者实际经历尝试回答。

首先明确一下问题,“特征工程在实际业务中的应用”,也就是领域业务知识和机器学习建模的相互结合。下面会对特征工程简单介绍,并且用自己工作中实际参与的项目给大家分享在银行贷款申请反欺诈场景&零售线上APP推荐场景的机器学习建模里,业务知识是如何帮助特征工程的。

01 简单介绍特征工程是什么?

特征工程是工业界建模中最最最重要的一个模块。模型效果的好坏,一部分是由数据质量决定的,另一部分是由特征工程决定的,大家使用的算法有时候都是一样的。

什么是特征工程?比如金融信贷申请反欺诈场景下,当一个新的用户来申请贷款,我们如何评估一个用户是欺诈用户还是正常用户,那么就需要找到这二者在哪些特征上表现存在差异,通过这些特征来进行区分。寻找基本特征、构建组合特征来有效地区分不同label的样本,这个就是特征工程。

02 业务知识如何帮助特征工程?

几乎所有工业界的建模,数据科学家都会去请教一下业务专家。除非是特别资深的数据科学家,在该场景下建模经验十分丰富,对业务很了解。不然,数学科学家一般都会去请教对于该场景熟悉的业务专家,有他们的输入对建模会有很大的帮助。

比如我们给银行做贷款申请反欺诈项目,我们会对对方的风控人员进行访谈。了解他们在没有反欺诈模型,人工审核时是通过哪些特征来区分欺诈用户和正常用户的。我们给商超做线上推荐项目,我们会访谈对方的运营人员,在没有推荐模型时他们为每个门店不同时间段设置推荐商品时是依据什么样的原则。专家懂的东西,业内我们一般叫做 “专家规则” 。

为什么要去了解业务知识?

(1)有的放矢,提高建模效率和保证模型效果下限

业务专家的输入,可以帮数学科学家快速做一层特征筛选和特征组合工作。比如银行贷款申请反欺诈场景下,用户的基础特征、征信报告特征加上资产等特征,加起来好几百个特征。很多数学科学家第一次接触征信报告,征信报告都看不懂,无法理解特征字段意义。这时候业务专家就会做输入,哪些特征上欺诈客户和正常客户表现差异很大,哪些特征组合在一起看比较有效。

业务专家的输入,降低了建模试错成本。也一定程度上保证了模型效果的下限。

(2)避免特征过多过拟合

当没有业务输入的时候,很多时候数据科学家只能通过训练集上效果的表现来判断特征有效性,有时候为了模型效果会加入很多特征进去,导致训练集上效果还不错,测试集上可能效果就一般,实际上线后模型效果可能会更差,这就是模型出现了过拟合。这两条原因中,第一条是最主要原因。

03 实例介绍

下面给大家分享一些实际工作中专家规则如何映射到特征工程上。

3.1 银行贷款申请反欺诈场景

场景说明: 用户来银行申请贷款,数据科学家根据用户申请信息、征信数据等等,构建一个反欺诈信用评分模型。分数取值在【0,100】之间,100分代表用户欺诈程度极高,0分代表用户欺诈程度极低,为每一个客户进行信用评分。

使用模型: LR模型;

专家规则:专家规则有很多,我列举几个常见且易懂的规则。

  • 信息是否一致: 银行风控人员在审核贷款申请时,特别关注用户的申请信息和央行征信报告上的数据是否一致,比如申请表上写的离异,但是征信报告上却是已婚。申请表上写的是A公司,征信报告上却是B公司。如果出现此类情况,说明用户存在隐瞒真实信息的可能;

    (不了解征信报告的读者可以看看这篇,讲的还算清楚 https://zhuanlan.zhihu.com/p/91911632;想了解央行的征信报告和芝麻信用等区别的可以看这篇文章:https://zhuanlan.zhihu.com/p/22280599)

  • 不同时间段内的还款行为: 做过金融行业信贷风控审批的肯定都知道一条专家规则 “半年内不能连三累六” ,这句话的意思是说用户在半年内不能有六次的贷款逾期,且不能有连续三个月贷款逾期不还。稍微解释一下这条规则,可能部分读者觉得半年内贷款逾期六次也太夸张了,实际上满多用户不注意还款时间,加上很多小企业主有很多贷款信用卡等,还款晚了一两天很正常,所以半年内有个2,3次逾期还蛮正常的,但是6次就超过银行风控的底线了。

  • 基本信息: 用户的年龄、学历、籍贯等等都会综合考虑;

专家规则转化为特征工程

关键的一步来了,如何将专家规则转化为特征工程?

  • 信息是否一致: 转化为冲突类特征,模型中会将申请信息的很多关键信息与征信报告中的信息进行比对;

  • 基本信息:转化为基本特征,同时在此之上我们会衍生很多复合类特征;

  • 不同时间段内的还款行为: 转化为聚合特征,按照时间来分桶。将用户的还款行为和时间组合在一起,模型中我们可能会按照近1个月、3个月、6个月、12个月、24个月来分桶。其实不仅是将用户的还款行为来按照时间分桶,我们还会将用户的历史负债行为、申请贷款记录等等,按照时间来分桶,只是有的可能是6个桶,有的可能是12个桶等等。

3.2 零售线上移动端购物车推荐

场景说明: 用户在生鲜电商APP上如叮咚买菜、盒马生鲜,购买相关生鲜商品。购物车的下方,会有“经常一起买“栏位,根据用户已经加购的商品为用户推荐其他商品。数据科学家构建一个推荐模型,为用户千人千面地推荐相应的商品。传统的零售运营,都是后台运营系统根据门店手动配置的,定位在这个门店的用户,不管购物车加购什么商品,最后“经常一起买”栏位展示的商品都是完全一样的。

使用模型: 协同过滤算法+LR模型

专家规则

  • 不同季节不同门店推荐不同的商品: 电商运营会根据不同季节以及门店所处地域来配置商品。比如春节快到了,就会配置“春联”、“饺子皮”、“酵母粉”等。川渝地域就会配置“火锅底料”等;

  • 推荐热销的商品:有时候会配置一些这个门店热销的商品,比如该门店最近”特仑苏“卖的特别好,就会统一为用户推荐“特仑苏“。

专家规则转化为特征工程

在零售推荐场景下,专家规则起到的作用就远远没有贷款申请反欺诈领域大了。不是说规则不重要,而是说该场景比较容易理解,那些专家规则数据科学家也比较容易想到。

  • 不同季节不同门店推荐不同的商品: 转化为“门店画像的时窗统计特征”,数据科学家按照门店维度统计不同历史时窗内(如近3、7、30天)商品的销售量、销售额;门店维度不同历史时窗内(如近3、7、30天)售出商品品类、价格的聚合类衍生特征等等

  • 推荐热销的商品: 热销商品其实在推荐场景下更多是用在召回策略里面,千人千面的排序策略中,我们会构造一个“用户商品画像的时窗统计特征”,如统计用户商品组合维度不同历史时窗内(如近3、7、30天)的购买频次、价格等。

04 特征重要性

我们一般在做最终项目总结汇报时,有一页PPT会专门介绍该模型中Top N重要的特征;

0ab6cc775539027663ef4b64d707936f.png
比如该模型只使用某一个特征,可以达到的AUC是多少

因为很多时候业务方都需要我们的模型可解释,你使用了哪些特征需要和业务方解释,业务方会从业务层面来判断你这个模型背后的业务逻辑是否合理。尤其是金融领域,模型可解释是必备的。金融都是和钱、风险挂钩的,如果模型使用的特征在业务层面解释不过去,业务方就会质疑模型的有效。

05 如果数据科学家对领域内业务知识完全不懂怎么办?

不同领域不同场景对领域内业务知识的了解和最终建模的效果影响程度是不一样的。

在金融领域,对领域内业务知识了解就十分重要。之前给银行做反洗钱领域建模时,反洗钱这个场景普通人接触的就够少了,所以没有业务输入,数据科学家建模就很痛苦,只能不停尝试各种特征组合。而像零售领域,普通人都可以接触到,已经具备了一定的业务知识,所以建模起来就相对简单一些,但也是领域内业务知识懂的越多越好。

现在已经有AutoML技术了,完全无任何人工干预,机器直接自己构造特征计算等等。但在工业界目前AutoML落地还存在很大问题,最大的问题就是模型效果不可保证,很多时候只能做到一个及格分,想进一步提升,模型自身无从下手,只能人工干预。

所以如果你既是业务专家,又是建模大师,那你在目前的AI市场将会相当地吃香。

e657c4d2c149389424ea28264a769321.png

觉得还不错就给我一个小小的鼓励吧!
助贷业务特征工程 助贷业务的特征工程是一个复杂、动态且高度依赖数据合规的过程。它不仅仅是技术活,更需要深入理解业务逻辑、资金方需求、风险类型和监管要求。成功的特征工程能够构建起强大的风险识别能力和精准的资金匹配能力,是助贷平台核心竞争力的重要组成部分。务必在追求模型效果的同时,将合规性、可解释性和稳定性放在首要位置。 阅读详情

相关推荐

特征工程

特征工程 1 机器学习 机器学习简单来说就是选择一种学习算法,从数据中学习并建立成模型来对新的数据进行预测的计算机科学 。 机器学习是人工智能的一个分支。人工智能的研究是从以“推理”为重点—以“知识”为重点—再到以“学习”为重点,一条自然、清晰的脉络。机器学习是实现人工智能的一个途径,即以机器学习为手段解决人工智能中的问题。机器学习算法是一类从数据中自动分析获得规律(模型),并利用规律对未知数据进行预测的算法。 我们的数据量越来越多,硬件越来越强悍。急需要解放人的生产力,自动去寻找数据的规律。解决更多专业领

学习服务 4188

完整图解:特征工程最常用的四个业务场景演示 | 文末留言送书

第二期文末留言送书活动~开启~数据检测、筛选、处理是特征工程中比较常用的手段,常见的场景最终都可以归类为矩阵的处理,对矩阵的处理往往会涉及到阈值处理特征拼接、记录拼接多条...

算法channel 811

HBase在特征工程中的应用

目录 前言 应用场景介绍 Get 进阶-前缀匹配扫描-Scan 灵活的动态列 多版本 快照 总结 前言 HBase是一款分布式的NoSQL DB,可以轻松扩展存储和读写能力。 主要特性有: 按某精确的key获取对应的value(Get) 通过前缀匹配一段相邻的数据(Scan) 多版本 动态列 服务端协处理器(可以支持用户自定义) TTL:按时间自动过期 ...

鲸鱼写程序的专栏 1467

《投资-359》量化交易 - 特征工程 - 特征工程的五种类型以及在量化投资中的应用

在中,特征工程是构建阿尔法因子、风险模型和交易策略的核心环节。虽然原始市场数据(如价格、成交量)看似简单,但通过系统的,可以挖掘出大量具有预测力的信号。——每一环都在逼近市场的真相。以下是基于前文归纳的,结合。

文火冰糖(王文兵)的博客 1063

特征工程在大数据分析中的5大实战应用场景解析

什么是特征工程?(用生活例子说清楚)特征工程在实战中怎么用?(用5大场景讲透)。范围覆盖特征工程的全流程(提取→选择→转换),以及其在电商、金融、医疗等高频领域的具体应用。用“班主任预测学生成绩”的故事引入特征工程;拆解核心概念(特征、提取、选择、转换),用“做蛋糕”类比;用Mermaid流程图展示特征工程流程;结合Python代码讲解核心算法(TF-IDF、互信息、标准化);用5大实战场景(电商、金融等)展示特征工程的具体操作;探讨未来趋势(自动化、深度学习特征学习)。

大数据洞察的博客 1048

特征工程的特征提取实例

因为整个项目包中包括一个python3.7的lib库,文件太大,所以需要自己将linear.py和放到PyCharm项目中,有问题可以问我

特征工程概念----day03

PCA的优势在于能够去除数据中的冗余信息,减少数据的复杂性,同时保留数据中的主要结构。如果有三种颜色(红、绿、蓝),则独热编码会将这三种颜色分别编码为[1, 0, 0]、[0, 1, 0]、[0, 0, 1]。为依据的,从而使得映射后的数据在第一个主成分(方差最大的方向)上具有最大的方差,依次类推。如果有三个等级(低、中、高),则标签编码可以将它们分别映射为0、1、2。的情况,例如颜色(红、绿、蓝)、国家(美国、加拿大、澳大利亚)等。的情况,例如等级(低、中、高)或年龄组(青年、中年、老年)等。

qq_56750282的博客 624

ST7789驱动实战:从SPI时序到RGB565显示的完整配置解析

本文详细解析了ST7789液晶驱动芯片的SPI时序配置与RGB565显示实现,从数据手册解读到代码实战,涵盖SPI接口配置、关键寄存器设置及完整初始化流程。通过优化DMA传输和常见问题排查,帮助开发者高效驱动ST7789显示屏,适用于嵌入式显示项目开发。

weixin_29162439的博客 184

关于特征工程方法和应用的总结

特征工程 根据事物所具有的共性,所抽象出来的能代表这个事物的概念,就叫特征。而特征工程,顾名思义,是对原始数据进行一系列工程处理,将其提炼为特征,作为输入供算法和模型使用。从本质上来讲,特征工程是一个表示和展现数据的过程,在实际工作中,特征工程旨在去除原始数据中的杂质和冗余,设计更高效的特征以刻画求解的问题与预测模型之间的关系。数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。 1.1 数据 结构化数据 结构化数据类型可以看作是关系型数据库的一张表每一列都有清晰的定义,包含了数值型、类别型两

KangKermit的专栏 2436

Keystone变换(4)MATLAB仿真

关于Keystone变换三种方法(DFT-IFFT法、Sinc插值法和Chirp-Z法)的仿真

qq_45846079的博客 1570

保姆级教程:用Python和PyTorch复现PTB-XL心电信号分类论文(附完整代码)

本文提供了一份详细的PTB-XL心电信号分类教程,涵盖从数据预处理到模型优化的完整流程。通过PyTorch实现三种深度学习架构(Conv1D、SincNet和熵特征融合网络),并针对医疗AI特有的类别不平衡问题提供解决方案。教程包含可运行的代码示例,帮助开发者快速复现论文结果并应用于实际心电信号分析场景。

weixin_30555125的博客 405

特征工程在实际业务中的应用

导读:大概知道特征工程,但是不清楚特征工程在实际业务中怎样应用,怎么和业务知识结合?本文将结合作者实际经历尝试回答。 首先明确一下问题,“特征工程在实际业务中的应用”,也就是领域业务知识和机器学习建模的相互结合。下面会对特征工程简单介绍,并且用自己工作中实际参与的项目给大家分享在银行贷款申请反欺诈场景&零售线上APP推荐场景的机器学习建模里,业务知识是如何帮助特征工程的。 01 简单介绍特征工程是什么? 特征工程是工业界建模中最最最重要的一个模块。模型效果的好坏,一部分是由数据质量决定...

dfly_zx的博客 708

浅谈Mike 3D中制作垂向水温分层边界

本次以水温分层为例进行讲解,可应用于水库的水温分层模拟中

zhuzhujiayoua的博客 1414

特征工程的案例分析: 如何应对实际业务需求

1.背景介绍 特征工程是机器学习和数据挖掘领域中的一种重要技术,它涉及到对原始数据进行预处理、转换和创建新的特征,以提高模型的性能和准确性。在实际业务中,特征工程的应用范围非常广泛,包括金融、医疗、电商、人力资源等各个领域。本文将从实际案例的角度分析特征工程的核心概念、算法原理、具体操作步骤和数学模型,并提供一些实际代码示例,以帮助读者更好地理解和应用特征工程技术。 2.核心概念与联系 特征...

AI天才研究院 631

ArcGIS中根据DEM和地形起伏度进行地貌分类划分

大家好我是GIS蒲公英,数字高程模型(digital elevation model, DEM)经常都被用到专题地图的底图中,下面来我们来交流一下仅选择海拔和地形起伏度两个指标,用DEM来进行地貌类型的自动判别划分

GIS蒲公英的博客 3万+

第29章:PCL PrincipalCurvatures 曲率估计

PrincipalCurvatures(主曲率估计)是一种用于计算点云表面曲率的算法。曲率描述了曲面局部的弯曲程度,是表面几何特征的重要指标。在点云处理中,估计表面的曲率对于形状分析、物体识别、表面重建等任务非常重要。主曲率是曲面上某一点的最大和最小曲率方向。通过计算点云的主曲率,我们可以获得点云中每个点的局部形状特征。通常情况下,主曲率包括两个主要参数:最大主曲率(最大曲率方向上的曲率)和最小主曲率(最小曲率方向上的曲率)。优点缺点提供了对点云表面局部形状的深入分析。

yumeiguo的博客 213

【特征工程】特征衍生+案例

特征衍生+案例

1万+

【Python爬虫教程】第3篇-解决使用reqeusts遇到的ProxyError异常

Python request代理错误提示“HTTPSConnectionPool, Cannot connect to proxy, no such file or directory”

分享技术,记录思考和感悟 1508

深度剖析:机器学习中的特征工程技巧与应用

特征工程是机器学习项目中提升模型性能的关键步骤,其目标是将原始数据转换为更有意义的特征,从而提高模型的准确率、召回率和泛化能力。本文详细探讨了特征工程的核心技巧,包括数据预处理(如缺失值处理、异常值处理、标准化和归一化)、特征选择(如相关性分析、L1正则化、递归特征消除)、特征构造(如多项式特征、交互特征、分桶特征)以及特征降维(如主成分分析、线性判别分析)。此外,文章强调了在实际项目中结合业务背景、团队合作和持续迭代的重要性。通过掌握这些技巧,开发者可以更好地应用特征工程,优化模型性能。

2501_91624122的博客 1142

【WSN定位】基于AOA算法实现目标无源定位附matlab代码

1 简介 2 部分代码 clear all; close all; clc;​stations = [0 0 0;20 0 0]; %基站位置​X = -100:100; %生成目标位置Y = X.*sin(X);Z = X+Y;N = length(X);Locations = zeros(N,3);angs = zeros(N,4);for i = 1:N angs(i,:) = Angs(stations*1e3,[X(i),Y(i),Z(i)]*1e3);end​for

qq_59747472的博客 2308

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

机器学习之特征工程

特征工程是什么:特征工程是将原始数据转化为更能代表预测目标的特征的过程,涉及数据预处理、特征提取、特征选择和特征构造等多个环节,目的是让数据更好地适应机器学习模型,提高模型的性能和效果。特征工程的价值提升模型性能:通过提取和选择有代表性的特征,帮助模型更准确地捕捉数据中的规律,从而提高模型的准确性、泛化能力等性能指标。降低模型复杂度:去除无关或冗余的特征,减少模型训练的参数数量,降低模型过拟合的风险,同时提高模型的训练速度和效率。增强数据理解。

d20062056的博客 1928

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

「推荐系统特征工程」07. 一些与特征工程相关的实际问题

作者 |gongyouliu编辑|gongyouliu我们在上一章中介绍了特征选择,讲到了选择特征的一些基本方法及在具体模型中怎么选择合适的特征。本章我们来介绍几个与特征工程相关的实际问题,这些问题在实际构建模型过程中是比较重要的,需要很好地处理,才能更好地构建出有业务价值的特征。7.1 可变维度的离散特征有些特征的维度是动态变化的,训练样本数量不同特征维度不同。典型的比如标签,一般标签可能...

大数据与人工智能 655

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

上一篇: MIT开源最强虚拟人生成器,登Nature子刊
下一篇: 如何在Github上学习Python?这些热门仓库不要错过
Wang_AI
博客等级 码龄12年 991粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值