机器学习小白如何阅读天池获奖方案代码

计算机专业学生如何选择与备战编程竞赛:从入门到高阶实战指南 编程竞赛是计算机领域一种高效的项目式学习方式,其核心在于通过解决具体问题来锻炼算法思维与工程实践能力。从原理上看,竞赛通常围绕数据结构、算法设计与特定技术栈展开,要求参赛者将理论知识转化为可运行的代码。其技术价值不仅体现在提升个人编程水平,更能培养系统性的问题拆解、团队协作与抗压能力。在应用场景上,竞赛可分为算法类、项目创新类及企业级赛事,分别对应不同的技术侧重与能力要求。例如,算法竞赛如蓝桥杯和ACM/ICPC,着重考察动态规划、贪心算法等核心算法;而项目类竞赛如“互联网+”和“挑战杯”,则更强调技术实现 阅读详情

本人也是小白,阅读他人的代码并不容易,虽然作者会有解释(博客、视频等),但并非人人都能理解。

本文试图通过一个案例来学习他人的方案来达到学习的目的,我也当是写给自己看了,反正没人看当做笔记好了。

注:阅读代码非常消耗时间,但对于学习的提升会很大。


1、找到其中一个竞赛,里面一定要有作者提供源码,不然没法去学习。

竞赛页面: 

https://tianchi.aliyun.com/competition/introduction.htm?spm=5176.100067.5678.1.3f1c2163BGVGtT&raceId=231647

这是我从某公众号中看到的,因为附带源码,所以就去看看了。是一个亚军的方案。

作者方案及其讲解:https://github.com/YouChouNoBB/ijcai-18-top2-single-mole-solution


2、不要一上来就阅读源代码,否则会一脸懵逼。先看看了解下竞赛题目及其数据解释


先了解数据非常重要,可以下载数据去理解一下。

注意:打开数据要小心,因为数据可能非常大,用什么软件打开可能会导致失去响应,耗内存,卡死电脑也不奇怪。

我这里用notepad++打开,


有提示,起码不会直接卡死软件,太大的话可以自行用pandas来切分成多个文件。

不想这么麻烦的话,直接看竞赛的数据介绍也行。


因为我们是了解做法,知道作者如何处理数据和为什么要这样处理数据即可。


3、拿到源代码了,要按什么顺序去阅读也是一个很重要的问题。

千万不要被作者的代码量吓到,其实大部分操作并不难,阅读下去会发现没什么,可能有大部分的重复操作。


一般的读程序方式是先看main函数的,然后再逐个看调用函数。

但这里的函数可能很多,分的文件可能也多,从源头找起可能很费劲,而且机器学习其实函数单独看也不算太难。

当然首先要看作者的README.md,但这里面作者是叫你去看他的博客或者视频。

当然这是非常好的方式,但我选择直接看。

我们先看run.sh,一般机器学习的人会选择linux系统,所以最后都会有一个.sh文件用以批处理运行。

没有的话只能从名字来判断顺序了,一般都是先数据后模型,再验证。


我们这里直接按这个文件里的顺序来看,因为这是作者的运行顺序,有助于我们从头(数据处理)开始了解。

当然可能还存在着作者在文件中用来辅助运行的文件,这些要看头文件是否有导入来阅读。


4、首先,当然是数据的处理,这里需要对照着数据的意思去理解作者这样处理数据的原因。

很幸运的是,作者采用的是易懂的英文作为各种名字,这样我们阅读起来更方便快捷。


这里的注释都是我自己加的,帮助自己理解,这个函数是作者在查找相同的类别数。

边阅读边写上自己理解的注释,是阅读他人代码的好方法。

我们需要知道数据代表什么,而且数据的形式是什么?


这些在竞赛页面都会写得很清楚。


5、阅读过程中肯定会遇到自己不懂的api,这个通过上网查询。


只需要了解它的作用即可(不必深究,不然又得学习一个库了)


竞赛算法并不会写得太复杂,这样我们可以去理解作者的做法。

当然查询还得看下调用的头文件,因为可能不同库的函数名一样。


6、通常作者的每个文件都是可以单独运行的,除了最后含main的那个(最主要的那个)。

但不建议运行,因为肯定是能跑的,不然作者拿什么去参赛;

还有你跑的话,可能在本地会发生错误(确实什么本地文件,没有什么库),修改其代码然后跑通并没有必要。

我们要做的是理解其思想,没必要浪费自己的时间,等你下载文件,下载库都已经没什么时间了。


更可况,有些参赛选手是拿几个GPU去跑的,普通电脑根本带不动。


这里作者跑多线程,作者是采用线程分开处理数据的,即不同线程处理不同数据,以免混淆。


7、处理完数据后(字符型数据标签化、填充缺省值等),接下来是特征工程。

所以说要理解数据很重要,不然都无法去实现高效模型。

直接阅读代码可能看不到作者的分析数据过程,可以参考作者博客或视频。

但代码是作者分析数据后的结果操作,所以直接阅读也不是问题。

特征工程的工作量可能会非常大,阅读时知道作者产生的新特征代表什么挺重要。

所幸作者用英文加下划线表达,省去了我大量的阅读。

要避免深究代码,没必要,每个人都有自己的实现方式,又不是什么底层操作。

理解作者函数的作用,输入和返回值即可。

因为特征工程(尤其是参赛的)动则上百行。

特征工程会涉及到大量的pandas的操作,如果你想跟着作者学习分析数据,

可以自己在竞赛页面取少量数据进行操作,包括数据融合,创建新特征,可视化分析等。


8、最后看到,作者大量的代码,大量的文件都投入到了特征工程当中。

最后处理模型只有一个文件,但模型处理看似代码量少,其实各种调整模型参数可是很伤脑筋的。

可想而知,要想参加比赛,除了有能运行的电脑之外,数据的分析能力也是非常重要的。

可能大部分时间都会用在特征工程上,现实情况也的确如此,机器学习也并非学习模型。


通过该文件的导入库情况可知,作者采用了lgb模型来分析。

不懂作者使用的模型也没关系,可以自己慢慢学习。基本上

模型的操作基本上是拟合数据,调参,训练,预测等。

最后是交叉验证。


9、还有一个作者没跑的文件,其实也是处理模型,里面是简单的逻辑回归模型。

这里提出建议,不要一上来就对数据采用各种复杂的模型,先用逻辑回归看看,

然后对比一下模型之间的错误率、准确率等再进行模型的选择。


总算阅读完了,不简单啊,这里膜拜一下这位作者(其实是一个三人团队):请受小弟一拜。

这里阅读的是参赛代码,并非所有代码都这么友好,有注释用英文名等等,

但机器学习算法的途径殊途同归,可以同样地去理解。

现在算法层出不穷,不要强迫自己什么都记住,什么都会,

毕竟人又不是机器人,重要的是手段和学习能力。

计算机竞赛全攻略:从赛道选择到项目实战的进阶指南 算法与数据结构是计算机科学的核心基础,其本质是通过高效的数据组织和计算逻辑解决复杂问题,在提升程序性能和解决实际问题中具有关键价值,广泛应用于搜索引擎、推荐系统等场景。软件工程则将理论转化为实践,强调系统设计、代码规范与团队协作,是构建可靠、可维护软件产品的基石。本文聚焦计算机竞赛领域,深入解析算法竞赛、软件开发、数据科学等主流赛道,探讨如何将数据结构、算法原理与软件工程实践相结合,通过Git版本控制、Docker容器化等工具,高效构建竞赛项目,实现从技术学习到项目实战的跨越。 阅读详情

相关推荐

TianChiCompetition:我们天池大赛的响应代码和资源

TianChiCompetition Our responding code and resources for TianChi competition #Update 2015/04/10 基本框架的构建: 特征工程部分 Generate_raw_train.py (从原始数据中按照分割点,得到分割点前的数据) Generate_feature_All.py (从raw_train数据中提取特征,并构建基于特征向量的训练集合) 算法框架部分 Algorithm_LRTest.py (利用LR回归,进行分类预测) Function_CalF1.py (F1函数的计算) 负样本影响问题 测试产生 '候选集'的过程中,发现虽然只用子集,但是一早上起来,数据量还是把硬盘给爆了,经测试,代码应该没有产生大问题。估计是负样本太多,过多的想预测没有发生过预测行为的(U,I)对。尝试取消这部分内容 #U

天池 Docker 练习场比赛详细攻略+代码

文章目录1. Docker 基础知识2. Docker 基本命令2.1 容器管理2.2 容器操作2.3 镜像管理2.4 仓库操作3. 天池 Docker 练习场3.1 比赛内容3.2 编写代码3.3 构建镜像并推送 本文将详细讲述 Docker 入门知识以及天池 Docker 练习场的比赛流程,并贴出代码以供参考 1. Docker 基础知识 Build, Ship and Run ...

深刻的博客 1670

天池比赛 美年健康完整代码

这个是我参加天池的比赛 美年健康的完整程序,包括最初的修改代码,最终代码,数据,几乎涵盖了我整个项目流程,包括数据的处理,分析,模型的选择比较。

阿里天池:Task 04:Python数据分析:从0完成一个数据分析实战(第4部分)

阿里天池:Task 04:Python数据分析:从0完成一个数据分析实战(第4部分) 学习内容:从函数到高级魔法方法 Python训练营内容: 题目及内容介绍部分 宝可梦数据分析-平民最强宝可梦选择方案 数据时代的到来刷新了人们探索未知的方式,从基础能源建设到航天航空工程。在关都地区真新镇大木研究所一直孜孜不倦对精灵宝可梦进行研究的大木博士也不例外,在剧中我们就常常可以看到大木博士制作的精灵图鉴一直在给探险家们提供宝可梦的简单分析,包括宝可梦的身高,体重,特性等等。但是作为从小就向往前往大木博

我就吃一口的BLOG 1164

tianchi:天池大赛

tianchi 天池大数据竞赛 使用spring框架 research模块下的filter.dev文件用于替换变量 dataset.file.path=C:/Users/Administrator/Desktop/tianchi/tianchi_mobile_recommend_train_user.csv 将此行的值换成自己的数据文件地址,然后从research模块下的Test文件启动

天池竞赛二手车价格预测项目源码+项目说明+数据集(高分项目)

天池竞赛二手车价格预测项目源码+项目说明+数据集(高分项目),该项目是一个二手车交易价格预测比赛,参赛者需要使用给定的训练集和测试集数据集,通过构建合适的机器学习模型,预测二手车的交易价格。 在该项目中,我们使用了两种基于梯度提升树的机器学习算法:LightGBM 和 XGBoost。我们还进行了特征工程和模型调参等一系列操作,以提高预测效果。最终,我们获得了较好的预测结果。 天池竞赛二手车价格预测项目源码+项目说明+数据集(高分项目)天池竞赛二手车价格预测项目源码+项目说明+数据集(高分项目)天池竞赛二手车价格预测项目源码+项目说明+数据集(高分项目)天池竞赛二手车价格预测项目源码+项目说明+数据集(高分项目)天池竞赛二手车价格预测项目源码+项目说明+数据集(高分项目)天池竞赛二手车价格预测项目源码+项目说明+数据集(高分项目)天池竞赛二手车价格预测项目源码+项目说明+数据集(高分项目)天池竞赛二手车价格预测项目源码+项目说明+数据集(高分项目)天池竞赛二手车价格预测项目源码+项目说明+数据集(高分项目)天池竞赛二手车价格预测项目源码+项目说明+数据集(高分项目)天池竞赛二手车价格

天池竞赛查漏补缺:CSV结果数据融合

Python数据结构与算法填坑

qq_39349673的博客 457

FreeModbus源码详解

本篇按照FreeModbus协议栈的工作流程,对源代码进行总结解析;FreeModbus协议栈作为从机,等待主机传送的数据,当从机接收到一帧完整的报文后,对报文进行解析,然后响应主机,发送报文给主机,实现主机和从机之间的通信; 1:demo.c中三个函数,完成协议栈的准备工作; eMBInit()函数:(mb.c) /*函数功能: *1:实现RTU模式和ASCALL模式的协议栈初始化; *2

2万+

天池竞赛语义分割代码仓库

天池竞赛语义分割代码仓库 去发现同类优质开源项目:https://gitcode.com/ 欢迎来到天池竞赛语义分割代码仓库!此仓库包含了参加天池竞赛所使用的语义分割相关代码。以下是对该资源文件的详细介绍: 资源文件简介 资源文件名为code_天池竞赛 语义分割,其中包含了为天池竞赛开发的语义分割算法的代码。这些代码旨在帮助开发者在图像分割领域取得优异的竞赛成绩。 功能特点 高效性:采用先进的深...

gitblog_06732的博客 522

保姆级教程:用STM32标准库搞定TIM1的PWM输出(附完整代码和避坑点)

本文提供STM32F103高级定时器TIM1的PWM输出保姆级教程,涵盖从工程搭建到完整代码实现的详细步骤。重点解析TIM1作为高级定时器的特殊配置要点,包括时钟初始化、PWM通道设置和GPIO复用功能,并附常见问题排查指南和动态调整占空比的实用技巧,帮助开发者高效实现精准PWM控制。

weixin_30673611的博客 432

STM32L151C8T6低功耗实战:RTC闹钟唤醒停机模式的配置与优化

本文详细介绍了如何在STM32L151C8T6微控制器上配置与优化RTC闹钟唤醒停机模式,以实现极致的低功耗设计。文章从核心原理出发,结合STM32CubeMX配置实战,深入讲解了进入停机模式前的关键准备工作、唤醒后的系统恢复流程,并分享了将功耗降至个位数微安级的深度优化技巧与常见问题解决方案。

weixin_29166013的博客 298

从阿里天池到DataFountain:AI_competitions带你读懂国内AI大赛生态

AI_competitions 是一份专注于**国内AI大赛与数据科学竞赛**的信息汇总资料库,系统整理了从阿里天池、DataFountain 到 AI Challenger、Biendata 等主流竞赛平台的定位、比赛类型与参赛建议。对于想迈出第一步的算法/数据新手来说,它就像一张"国内AI比赛地图"——看完就知道有哪些AI比赛值得参加、怎么入门、去哪找数据集。 ## 🗺️ 国内AI大赛平台

gitblog_00718的博客 480

qPCR定量方法在肠道微生物特定种属定量应用

大家都知道肠道中有上千种细菌,肠道微生物可参与人体代谢,促进营养物质的消化吸收,肠道微生态均衡关系到身体健康,肠道微生态失衡可能会导致疾病产生。此外有文献指出肠道微生物可能与人体免疫及炎性反应等有关。目前也越来越多人关注到疾病与肠道微生物的关系,也做了很多研究及实验,一般高通量结果得到的是每个物种在样本中的相对百分含量,而不同微生物的绝对含量其实也对疾病有很重要的影响。在此分享几篇有采用qPCR方法研究疾病与肠道微生物关系的文章。 早在2013年Kim-Anne Lê1、Yan Li等人发表文章Alter

tinygene的博客 2143

10大顶级数据科学竞赛平台解决方案汇总:尽在gh_mirrors/dat/Data-Science-Competitions

想要在**数据科学竞赛**中脱颖而出?寻找**Kaggle竞赛解决方案**和**机器学习竞赛**的最佳实践?这个开源项目为你收集了来自10大顶级平台的**数据科学竞赛解决方案**,涵盖从回归、分类到计算机视觉的各种挑战。无论你是初学者还是经验丰富的数据科学家,这里都有宝贵的资源帮助你提升技能。 ## 🏆 为什么这个项目是数据科学学习者的宝藏? **gh_mirrors/dat/Data-Sc

gitblog_00921的博客 738

matianl:SAP 最详细的权限管理解析

上文所说的系统自带权限对象与权限字段仅能满足有限的需要,其权限审核的逻辑也是系统硬编码了的,我们能做的只是是否启用某项权限对象的检查(使用SU22)。如果需要自定义,通过SU20、SU21定义即可。

matinal 當冬夜漸暖 。公众号:matinal 2153

华为 MetaERP 财务模块的核心业务对象,按子模块与架构维度分类,以表格呈现,适配架构设计与实施落地

华为MetaERP财务模块基于4A架构(业务/应用/数据/技术)与TOGAF框架,实现业财一体化与全球合规。业务架构涵盖组织模型与核心流程,应用架构支撑财务操作,数据架构确保数据一致性,技术架构提供高性能技术底座。模块覆盖总账、应收应付、资产等子模块,支持多组织、多币种、多准则核算,通过实时会计引擎实现"交易即核算"。4A架构与TOGAF框架对应,实现业务能力、应用组件、数据模型与技术栈的深度融合,为华为全球化财务核算提供核心支撑。

金牌架构师 435

构建多模态模型,生成主机观测指标,欢迎来战丨2024天池云原生编程挑战赛

在当前云计算和微服务架构日益普及的背景下,企业和开发者对云资源的依赖日益加深。Elastic Compute Service(ECS)作为提供计算能力的核心服务,承担着众多的业务。随着微服务架构的广泛应用,任务的部署和执行变得更为灵活和动态,资源的动态伸缩成为常态,能够根据业务需求实时调整,提升资源利用效率和应用的可用性。

阿里巴巴云原生的博客 1329

华为OD机考2025C卷 - 精准核酸检测(Java & Python& JS & C++ & C语言)

华为OD机考2025C卷 - 精准核酸检测,提供在线OJ Java & Python& JS & C++ & C

算法大师! 2881

为什么选择gh_mirrors/dat/Data-Science-Competitions?5大理由助你成为竞赛高手

在数据科学竞赛的道路上,拥有一个强大的资源库是成功的关键。gh_mirrors/dat/Data-Science-Competitions正是这样一个为数据科学爱好者打造的终极宝库,汇集了Kaggle、Data Hack、Machine Hack、Driven Data等各大平台竞赛的顶级解决方案。无论你是刚入门的竞赛新手,还是希望提升排名的进阶选手,这个项目都能为你提供宝贵的经验和指导。 ##

gitblog_00826的博客 866

PHM2010刀具磨损预测完整实现

本文介绍了PHM2010刀具磨损预测项目的完整实现方案。项目采用PHM2010公开数据集,包含6个子数据集,记录了铣削加工过程中7个通道的传感器数据(切削力、振动和声发射信号)。技术路线包括数据预处理(截取中间10万点、小波降噪)、特征提取(时域9个、频域4个特征)、特征融合和皮尔逊相关系数筛选,最终使用BiLSTM模型进行训练和评估。环境配置基于Python 3.9,依赖NumPy、Pandas、PyTorch等库。数据加载和预处理阶段重点处理了传感器信号分段和磨损标签对齐问题,为后续建模奠定基础。

huanghm88的专栏 416

深度学习工具包 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")

北京内推 | 第四范式大模型团队招聘机器学习算法工程师

合适的工作难找?最新的招聘信息也不知道?AI 求职为大家精选人工智能领域最新鲜的招聘信息,助你先人一步投递,快人一步入职!第四范式第四范式成立于2014年9月,是企业级人工智能领域的行业先驱者与领导者。第四范式提供以平台为中心的人工智能解决方案,并运用核心技术开发了端到端的企业级人工智能产品,致力于解决企业智能化转型中面临的效率、成本、价值问题,提升企业的决策水平。现已广泛应用于金融、零售、制造、...

Paper weekly 689

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

人工智能本科培养方案全解析:大一到大四学习路线

人工智能专业的课程设置看似庞杂,实则围绕数学、编程、算法与工程实践层层递进。从高等数学、线性代数到概率统计与最优化,数理基础决定了机器学习、深度学习等核心课程的理解深度;从Python入门到数据结构与算法,编程能力则是将理论落地的必要工具。对于刚进入该专业或计划转入该方向的学生而言,理解培养方案背后的能力训练逻辑,比盲目刷课更重要。本文以国内主流高校的人工智能培养思路为参考,按大一到大四四个阶段拆解学习重点:低年级夯实数理与代码基本功,高年级聚焦机器学习、深度学习、自然语言处理等细分方向,并通过科研训练、竞

weixin_34327761的博客 441

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

数学建模竞赛实战指南:从模型构建到代码实现,告别“完整代码”依赖

数学建模是将实际问题抽象为数学形式,并通过算法求解的核心方法,广泛应用于优化、预测、分类等场景。其技术价值在于提供了一种系统化的问题解决框架,能有效处理资源分配、路径规划、风险评估等复杂决策问题。在工程实践中,Python、MATLAB等工具结合优化求解器(如Gurobi)或机器学习库(如scikit-learn),成为实现模型的主流选择。针对数学建模竞赛,掌握从问题抽象、模型选择(如混合整数规划、时间序列分析)到代码自主实现的完整链路至关重要,这不仅能避免对“完整代码模型”的盲目依赖,更能培养真正的建模思

leonard61306500的专栏 341

第四届实时计算 Flink 挑战赛报名倒计时,49 万奖金等你来拿!

Beyond Stream Processing2022第四届 实时计算FLINK挑战赛 天池大赛生活中的事件都可以通过实时计算来解决,以 Flink 为工具解决一个实际问题,成为了今年实时计算 Flink 挑战赛的赛题。小到日常学习、工作、生活中的点滴琐事,大到城市管理、金融交易、疫情防控等国计民生,都可以成为你的选题。Beyond Stream Processing——第四届实时计算 Flin...

Ververica的博客 262

零基础转行成为AI大模型产品经理,你也可以!

本文将分享作者从零基础转行成为AI大模型产品经理的心得体会,为广大有意向投身AI领域的产品经理提供一些建议和参考。

2401_85373691的博客 1171

你与30W奖金只差一个 Apache Flink 极客挑战赛的报名

万众瞩目的第二届 Apache Flink 极客挑战赛来啦!去年,第一届 Apache Flink 极客挑战赛,汇集了全球11个国家和地区,233所高校,397家企业,4393位顶尖选手...

过往记忆大数据 532
上一篇: 机器学习入门问答(一)
下一篇: CNN图片分类
流左沙
博客等级 码龄11年 46粉丝 55原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值