预测移动用户人口属性的Kaggle竞赛作品解析

2019年华为算法精英大赛--用户人口属性预测组比赛复盘 算法精英大赛比赛有两个赛题,赛事题目如下:赛题一:账号用户人口属性预测尝试解决的问题:对于手机设备厂商,获取当前手机用户的人口属性信息(demographics)非常困难,当前华为手机3.5亿用户中,大概只有5000万用户的性别和年龄信息,如何基于用户的手机及使用偏好准确地预测其人口属性信息是提升个性化体验、构建精准用户画像的基础赛题二:CTR预测任务描述:基于用户对广告任务的历史行为和广告任务属性,选择合适的算法预测用户在特定上下文下对某个广告任务的点击概率。 阅读详情

大家晚上好,我是TalkingData数据科学部的路瑶,很荣幸能和在座这么多位朋友聚在一起,今年的7月-9月,来自全球70多个国家和地区的约2000名选手,在全球影响力最大的算法竞赛平台上竞技,今天我们一起来回顾这场比赛。

在具体开始讲算法大赛之前,我想让大家跟我一起探讨这几个问题。

首先数据科学、人工智能、机器学习能做什么?其实这个问题相信大家已经有了一定了解,可以下棋、聊天、开车,甚至可以看病。从事数据科学的这些人有什么样的特质?在解决这些非常有挑战的问题的时候用的又是哪些方法?其实数据科学家之间经常也是喜欢过过招,那么又是在平台上面去表现的呢?相信通过我今天的分享大家会对这几个话题有更多的了解。

数据算法平台

我想先介绍一下数据算法平台,其实做数据算法竞赛的平台有很多,在国际影响力最大的一家非Kaggle莫属了,在Kaggle算法众包平台了举办了超过1200场比赛,他们为来自于工业界、政府、学术的各种各样的问题提供了数据科学的解决方案。注册在Kaggle上面的用户,现在已经超过60万,他们来自于全球194个国家,来自于各种各样的各行各业的背景,一般来说他们会是自己这个领域的专家。Kaggle平台因为赛制的科学和开放的态度,也成为了很多重要数据科学竞赛的支持平台,比如说KDD CUP,就多次在这个平台上举办。

在这样的平台里面会涌现很有名的竞赛和人物,同时也是现在非常火热方法最开始崭露头角的地方。比如在2012年由一家著名的制药公司-德国默克制药-支持的比赛,内容是新药发现,获得冠军的队伍的主要成员来自于多伦多大学,这支队伍的大部分队员可能大家并不熟悉,但是他们的教练我相信很多从事数据科学的人都不陌生,就是Geoffrey Hinton。

这位大神的头像出来之后相信大家都猜到他们用的是什么方法了,是Deep Learning,他们用这个方法获得了冠军赢得了其他选手。

这个比赛是在2012年,当时Deep Learning在业内有相当高的热度,但是没有像现在这么广泛的关注。这项比赛也是推动Deep Learning走向聚光灯下的功臣。

TalkingData Mobile User Demographics

TalkingData为什么在这样的平台上举办比赛呢?我们希望借助开放的平台把我们的数据开放出去,开放给全世界最优秀的数据科学家,让他们用最聪明的办法解决最有挑战性的问题。

请允许我花一点时间介绍一下合作伙伴Turi,这是一家机器学习公司,CEO Carlos Guestrin教授是大规模机器学习,特别是大规模图计算的领军人物之一。这个公司有一个著名产品是GraphLab,如果有做图计算的话,应该对这个产品不陌生。这家公司被苹果收购,基于这个团队现在建立了机器学习的部门。

7月13号,Turi举办了数据科学峰会,在峰会上面许多最优秀的数据科学家,比如说Jeff Dean, Jure Leskovec等等都参加了峰会。我们的比赛就在这样的峰会上面正式拉开了帷幕。

这个比赛的一开始,大概也就是三天的时间我们报名队伍就超过了200,之后差不多一个月的时间报名队伍过千。具体是什么样的话题能够引起这么多数据科学家的兴趣呢?请看这张图。

本次比赛题目是通过行为习惯对移动用户人口属性进行预测,这个话题相信很多朋友都并不陌生,在许多实际业务场景里面,比方说广告投放、推荐系统、线下一些品牌的选址等等,我们都希望能知道用户的人口属性信息,特别是像年龄、性别一些基本的信息。很遗憾的是在现实中这些数据经常是缺失的,一个解决办法是通过行为数据把这个年龄性别预测出来。我们这次的比赛就是这样的挑战。

我们提供了大约20万用户的数据,分成了12个组,比如男性22到25岁,女性30到35岁等等。同时提供了用户行为属性,比如在什么样的时间点出现在什么样的地理位置上,他用的是什么品牌的手机,机型是什么,安装或者使用了什么APP。选手要通过这些信息去推测用户是分在哪一个组里面。

我们的评估方式是什么呢?选手需要算出用户在不同分组上的概率,现实中一个用户只能在一个分组。理想状态下如果能算出这个概率是1,其他是0的话,这个答案就是没有任何概率损失的。 一般来说,提交的答案中,某个用户会有或大或小的概率属于多个组别,这个时候就有概率上的损失,这个损失的高低代表答案的水平。我们的优化函数或者说评估指标就是下面的Loss Function。

最终的比赛经过账号排重之后,有1689支队伍,1961个选手参加了比赛,一共有24000多次提交,这个数量是很高的。很值得一提的是有2811个Kernels。Kernels是什么呢?

Kaggle是提供开发环境的,可以在上面写Python,R的代码。很多选手愿意把自己数据解读、数据可视化以及一些工具的使用、特征工程的方法去分享出来。我们这个比赛的分享气氛非常好,一共有这么多Kernels,应该说在Kaggle历届的比赛中是分享气氛最浓的比赛之一。

这次比赛是由中国在Kaggle举办的最大的一次比赛,特别是吸引了很多顶级的Kaggler的参与。这里要介绍一下,Kaggle平台建立了一个大榜,把所有的选手参加过所有的比赛以及综合考虑所有的成绩打了分,在Kaggle上有一个大的榜单。根据这个榜单,前10名的Kaggle里面有7名参加我们的比赛,前20名中有14名。还有很多虽然在现在的排名不高,但是他们是在Kaggle上面传诵良久的大神,已经沉寂了很久但是还是被我们比赛吸引了,这是让我们欣喜的一点。

最后有70多个国家提交了结果,大家猜一下选手最多的是来自于哪个国家?

最多的是美国。

第二是印度。第三是才中国含台湾、香港地区。

第四是俄罗斯。第五是英国。再后面是一些欧洲国家。

我觉得特别有意义的是,除了数据科学的强国之外,我们还收到了来自东南亚、南美、非洲等等许多国家提交的结果,是真正意义上的全球算法大赛。

Kaggle竞赛作品方法解析

下面我们进入下一个话题,数据科学家的魔法。

选手们是用什么样的方法呢?我把它总结了五个方面,首先要解读数据,然后要做特征工程,做模型的调优,包括单独的模型和集成后的模型,要避免过拟和,还要选择更好的工具。

数据解读是重要的第一步。这次为了还原工业界数据是什么样的,也是参考了Kaggle和Turi的建议,并没有把集成和整理的特别干净的数据给选手。而是尽可能还原日志的形式,一个用户会在不同的条目里面都有信息。特别是我们的手机的品牌和型号用的是中文,这个时候选手需要把数据集成起来,去深入了解数据。

Kernels里面涌现了大量的优秀的可视化的作品,这里我举几个例子,更多内容可以参考我之前发过的公众号文章(点击文章尾部“阅读原文”查看),第一次全球算法大赛战报。

我们先来一起看看这张图,图中显示的是在中国的数据,实际上数据是全世界都有的,我拿中国为例。右上角可以选择想看哪个内容,是年龄、性别还是机型,可以看到在中国,大部分设备集中在中东部——特别是东南沿海,设备的数量呈现相对较为密集的分布。那么这些地方的人用什么设备呢,从下图看出,西南边境地区有一定数量的vivo,小米,然而在东部地区绿做一片的华为和三星两个大户,在那里却用户较少。

有很多的选手在讨论中国不同地区的发展状况,其中有一位选手给了非常丰富详细而且准确的介绍,只看内容的话会以为他是中国人,通过了解是一位法国人 。

我们再来看一张图。

这是不同的品牌年龄上面的分布,左边是数量分布,右边是比例。左边的图是女性用户,右边的图是男性用户。比如说小米在不同的年龄段的差异不是很明显,但是三星很明显的是年龄大的用户会更喜欢。

下面的这张图也很有意思,这是不同的机型在性别上面的分布,蓝色表示男性的比例,红色表示女性的比例,每一个黑线隔开的条是机型,条越宽说明用这个机型的总人数是越多的。仔细看会发现有条白线,这是表示如果是男女比例平衡的时候会在什么样的位置上。对于大部分的机型来说,真正男女完全平衡没有性别倾向的机型是很少的,大部分或多或少有一些倾向。尤其是在图的两侧有密集的黑线,是表示总用户数量虽然不多,但是有明显性别倾向的机型。

良好的数据解读可以给这些数据科学家很好的直觉以及对数据的认知,是成功的第一步。在下一步,是很多数据科学家都会花许多时间去做的特征工程。特征工程的重要性就不用多说了,在具体介绍他们做特征工程之前,再来看一下这个数据是什么样子的。

这个表格介绍了本次比赛的数据结构。

首先是年龄性别分组,每个用户用一个ID来表示。一个用户的行为是在一系列的Events里面,每一个Event里面的信息是包括这一个ID在什么样的时间点出现在什么样的经纬度上,APP安装了哪些、使用了哪些,还包括用的是什么品牌和机型的手机。APP的ID、用户ID包括经纬度都做了严格和科学的脱敏。

APP看到的是脱敏后的ID,选手对APP本身没有什么概念,为了让选手更好地解读数据,我们给了一些标签,比如说是社交、游戏等等,总共有1000多个标签在里面。

我们看一下选手提取了的有什么特征,比如用户是在什么时间活跃,在休息日还是工作日,是白天还是晚上。数据还包括海外数据,有时差的问题。用户有了轨迹,他们的分布是什么样子的,是聚集在某一块,还是说聚集在几个点,他们之间有多远。甚至是说这个人是不是经常在世界各地去飞。同时,常出现的位置是在中国的东南沿海还是在西北,这些地点又有什么样的特性。

另外这些APP安装了一些、使用了一些,有一些是安装了但是好长时间没有用,这又能给我们提供什么样的信息。这些特征的取值是很有学问的,是取0-1值还是更加具体的权重。刚才所说的有1000多个APP的标签,有一些用户APP多一些,有一些APP少一些,有些APP本身有一个标签,也有一些有很多标签,这些标签又能够构建出什么特征。

最后介绍一个有想象力的做法 。当预测出结果之后,结果是不是可以作为特征反馈到模型里面。比如预测年龄和性别的分组,性别相对是好预测的,准确率高一些。预测之后把性别特征返回来是不是可以提高年龄的预测,年龄准确率会低一些,但是一些特殊的年龄段特征比较明显。如果把这些找出来之后再返回到模型里面,是不是也能提高整体的结果。

当然类似的方法还有很多了,通过这些介绍,大家可以看到特征工程考验的不仅仅是数据科学家,在数据方法上、处理方法上面的技巧,还考验这个人的常识、专业领域的知识、是不是有很好的直觉、是不是有很好的想象力。

做完特征工程之后就到了调模型的环节了,我这里列出了在这次竞赛中提及比较多的模型,有些是集成的方法。一般数据科学家最花时间的除了特征工程就是调参数,在单一模型调参的时候,最简单的初始参数怎么选?是给一个随机值,还是给一个特别的值,这对于收敛速度有可能会有很大的影响。在模型集成上面学问就更多了,比如说我先用神经网络举例子,我们知道在神经网络里面要设计神经元,要知道每一层有多少个、有多少层,在模型集成里面也需要有类似的思想。这些模型分成几层,谁和谁是并联、谁和谁是串联关系的,如果是串联关系的,下一层是处理上一层什么样的信息,是直接处理结果,还是处理误差或者是什么。模型调节是非常考验数据科学家经验和技巧的部分。

有了好的模型、有了好的特征,提交了结果,在排名上很靠前,是不是这个事就搞定了,就可以拿到奖金了?这真的不一定。因为还有一个大的敌人叫做过拟合,这是非常注意的一个问题。一个过拟合的方法在特定的数据集里面会表现得非常好,但是这个数据集稍微一变,模型性能就迅速下降。在参加Kaggle比赛的时候,这个更加要注意。

Kaggle里面分测试集和训练集,训练集是把所有的信息都显示了,利用这些信息在测试集里做预测。选手可以看到的一个榜单,是公开榜单,而另外有一个只有管理员身份可以看到私密榜单。最终比赛成绩是私密榜单所决定的,公开的榜单只是给选手成绩的参考。

公开榜单是怎么生成的呢?是测试集大约1/4到1/3很小部分的数据,Kaggle不限制次数可以不停提交,在公开榜单排得很高,有可能在私密网站排名很惨。要解决这个问题怎么办呢?Kaggle的老同志说永远要做cross validation。

最后,选的好的工具也是很重要的,我们在比赛里面涌现的工具也非常多,只简单介绍两个。一是Keras。赛题设置和比赛方法是非常适合深度学习的。Keras是用Python写的适合做深度学习开发的高层工具,封装了许多的模型库,所以你可以像搭积木一样很快地搭出神经网络的原型。它可以在Tensorflow和Theano上面运行,并行化做得也不错,可以在CPU或GPU上运行。在这次竞赛里面表现得也很好。

另外一个,Xgboost,应该是Kaggle的老朋友了,XGboost处女秀是在2014年的Higgs Boson信号识别比赛里面拿到了冠军,在此之后许多比赛都会有人提到这个方法。它本身在算法的调优和并行化上做的都非常优秀,可以在Spark、Hadoop等不同平台上去运行。

最后再来回顾一下这次比赛中总结的几个方法,要去做数据解读、特征工程、调模型、避免过拟合,最后要选择合适的工具。在比赛中,来自于工业界的选手这次表现得非常优秀,排名前几名都是工业界的选手并且保持很长时间。我们猜测正是因为他们在这几方面,特别在模型调优和特征构建上面比学生选手会拥有更多的经验,当然同时他们也有更好的计算资源。

最后一个问题,这些数据科学家是什么样的人?

这个比赛一共的时间差不多有2个月,在这个期间我每天都会看榜单,看他们在论坛里讨论的问题。这些数据科学家的形象也给我留下了深刻的印象,最大的印象是他们真的非常开放,而且互相帮助的意愿很强。有很多新手说这个中文读不出来怎么办,这个方法卡在了某一个成绩上应该怎么办,什么方法应该怎么用等等,都会得到满意的解答。同时这些人是非常聪明,并且有想象力,而且他们愿意去解决实际的问题。特别是面对像我们这样数据比较稀疏,也还算是比较Dirty的数据,里面还有中文,他们表现出非常兴奋的态度。

在这个过程当中,大家关于不同观点、方法也有过很激烈的争论。一共在论坛里面差不多有2000多条讨论,数量好像不是很多,但是有大量的大篇幅详尽的讨论,在讨论过程中表现的礼貌和理智也给人留下了很深刻的印象。

这些数据科学家们非常勤奋,像我之前提到2千多人、2万多次提交,特别是排在前面的数据科学家们有超过100次的提交,比赛只有不到2个月,提交次数会超过100多次。每次看榜单,每次可以看到几个小时之前提交的,一般是八九个小时之前,一般不会超过48个小时一定会有提交。也正是这些最勤奋的人得到了最好的结果。

在这次比赛中,TalkingData为全世界的数据科学家提供了来自于工业界的数据,也提供了有价值的业务问题。同时我们也对这些科学家的专业,以及科学精神表达了敬意。于是也收获了全世界最优秀科学家的Mind and Heart,最后谢谢大家来参加我的分享,也欢迎更多的数据科学家参与到我们的团队中。

Q&A

Q1:能不能讲一下冠军的思路?

路瑶:几位优秀选手的方案我也是这周才拿到的,代码还没有仔细看。接下来两周的时间我们会和选手们电话交流。不过现在可以简单说下思路。

本次比赛的评估方式是非常适合深度学习的,很多选手也都是用的这个思路。像我刚才提到的,排名靠前的几位选手用Keras搭建神经网络+XGboost做集成。

有些方案并没有做特别多的特征工程,而是尽量使用原始的信息,也有的方案在像我们刚才提到的,对特征进行了进一步的提取 。在我们提供的数据中,应用列表是最有预测效果的数据。

大家知道深度学习本身理论并不完善,深度神经网络的调参非常tricky,很多技巧都很靠经验,所以也很难说到底哪种方法就一定能提高成绩。

Q2:请问数据竞赛常用算法?分布式算法充电给点建议?

路瑶:这次比赛数据量并不大,配置好一点的笔记本就能做,对分布式要求不高,本次比赛在分布式方法上目前没有看到特别突出的方法。 分布式计算这个话题很大,一时不知道从哪说起,XGboost可以在GPU上计算,在分布式上做了很突出的优化,感兴趣的朋友可以多了解一下。

Q3:关于TalkingData这次活动的地址提供一下,想详细了解一下

路瑶:活动地址https://www.kaggle.com/c/talkingdata-mobile-user-demographics。

Q4:老师您说赛题很适合用深度学习方法,请问具体怎么用到深度学习的呢,是用来学习特征,还是用的RNN之类的算法呢

路瑶:这个问题参考前面两个问题的答案。

Q5:最后一个问题TalkingData的机器学习/数据挖掘这块,都是用spark在做吗?

路瑶:spark是很重要的工具,不过不限于spark。

讲师介绍

路瑶,TalkingData 数据科学家。前阿里巴巴算法专家,瑞士洛桑联邦理工大学访问学者,清华大学自动化系硕士。2016年加入TalkingData任数据科学家,负责图算法、时间序列分析等方向。TalkingData全球算法大赛技术负责人。

使用深度学习预测自然灾害 在本文中,我们将探讨如何使用深度学习技术预测自然灾害。我们将讨论数据准备、模型选择、模型构建、模型训练、模型优化以及实际应用。本文还将提供Python代码示例,以帮助读者更好地理解和实践。通过这些方法和技巧,我们可以为自然灾害预警和减灾工作提供技术支持。 阅读详情

相关推荐

talkingdata-mobile-user-demographics.zip

基于用户app的下载和使用情况预测用户的人口属性(性别和年龄) gender_age:训练和测试集 events, app_events: 当用户使用TakingData SDK时,系统记录的日志。包括经纬度和对应app情况。 phone_brand_device_mode:用户的手机属性 数据集介绍:https://www.infoq.cn/article/predict-mobile-users-Kaggle-contest

最新!Kaggle所有竞赛开源方案和Top思路汇总,共477场竞赛!

数据竞赛能帮助我们快速提升数据分析和建模能力,非常多的朋友也非常希望学习Top比赛的方案。之前也有非常多的朋友问我某某竞赛的方案有没有,有时我不是很忙的时候就会把对应的竞赛中把Top的链接找出来一起整理发过去,但也有的时候可能会比较忙,不一定会回复,久而久之可能就忘记回复了。不过最近我发现一个汇总了几乎所有Kaggle历史竞赛解决方案和Top思路的网页,新的比赛一结束,这...

夕小瑶科技说 1512

TalkingData:2019年互联网报告

报告关键词 移动互联网 聚类分析 机器学习 圈层人群 人群画像 市场潜力 月活 趋势 榜单 市场分析 应用类别 网络购物 移动工具 学习教育 手机游戏 人力资源 移动视频 Z世代 她经济 下沉人群 知识人群 疫情影响 报告概述 2019年国内移动设备量达16亿,年度增长3525万,较去年1.49亿的增长有明显回落,且2019年第二季度首次出现负增长,国内移动用户已近饱和。“移动用户饱和”看似已经“老生常谈”,但在此背景下,下沉市场潜力不断被挖掘,短视频爆发式增长与带货渠道的崛起、小众高价值人群频频崭露头角等等都给“成熟”的互联网不断带来新的冲击和启示。人口红利消失后,分众化和精细化开发是移动互联网从业人群的关注焦点,如何看懂“人群特征”,如何挖掘“价值人群”成为值得研究和探讨的话题之一,此次报告,我们打破传统思路,结合非监督机器学习的方法对主要潜力增长行业进行人群聚类分析,探索高价值人群特征。

项目02_TalkingData Mobile User Demographics R代码

#######step 1 start############# #内存空间查看 gc() memory.size(T)   #查看已分配内存,6972  memory.size(F)   #查看已使用内存,6852.55  memory.limit()   #查看内存上限,返回8075 memory.limit(size=20000) #扩大内存上限 #批量导入.csv数据 library("...

阿拉丁 712

TalkingData-Mobile-User-Demographics

有关更多详细信息,请直接阅读报告 运行项目,设置数据集路径并直接运行main()函数

中国移动客户细分模型

综合运用聚类模型,CRM,ARPU分析,客户细分,设计不同套餐,达到效益优化。

数据(机器学习/深度学习)竞赛平台——Kaggle

这篇文章适合那些刚接触Kaggle、想尽快熟悉Kaggle并且了解项目情况的朋友。本文分为两部分介绍Kaggle,Part One简单介绍Kaggle,Part Two将简单介绍正规的竞赛的项目,大家可以针对性的解决感兴趣的题目。 1、Kaggle简介Kaggle是一个数据分析的竞赛平台,网址:https://www.kaggle.com/企业或者研究者可以将数据、问题描述、期望的指标发布到Kagg

g11d111的博客 3万+

TalkingData Mobile User Demographics TalkingData移动用户群体-数据集

没有什么比当你走过转角咖啡厅的门口时被你最喜欢的饮料迎接更令人欣慰的了。虽然体贴的咖啡师知道你每周三早上8点15分会喝一杯玛奇朵,但在数字空间里,要让你喜欢的品牌让你的体验变得个性化就困难得多了。 中国最大的第三方移动数据平台TalkingData了解到,我们的日常选择和行为描绘出我们是谁以及我们重视什么。目前,TalkingData正寻求利用中国每天活跃的5亿移动设备中超过70%的行为数据,帮助其客户更好地了解其用户,并与他们的用户进行互动。 在这次比赛中,Kagglers被要求建立一个模型,根据他们的应用使用情况、地理位置和移动设备属性来预测用户的人口统计特征。这样做将有助于世界各地数以百万计的开发者和品牌广告商进行数据驱动的营销活动,这些活动与用户相关,并迎合他们的喜好。 TalkingData Mobile User Demographics_datasets.txt

统计手机品牌的市场占有率

首先在kaggle上得到一组数据,https://www.kaggle.com/c/talkingdata-mobile-user-demographics,比赛是2016年开始,所以数据估计是2015左右的。 直接下载phone_brand_device_model.csv.zip,然后统计每个手机品牌出现的次数的比例,作为市场占有率,最后绘制柱状图:#coding=utf-8 import p

masbbx123的博客 4377

AutoCAD Plant 3D自定义零件库实战:手把手教你用Python创建参数化槽式三通

本文详细介绍了如何利用Python脚本在AutoCAD Plant 3D中创建参数化槽式三通组件,从API原理到实战开发,帮助用户构建高效的自定义零件库。通过Python装饰器系统控制零件属性和行为,实现几何建模、参数管理和规格编辑器集成,提升工业管道设计的标准化和效率。

weixin_28267011的博客 332

PS/Ai/PR/AE等adobe出现正版弹窗提示:Your non-genuine Adobe app will be disabled soon解决办法

就是用专门的清理工具下载,清理工具在文章下方。然后新建三个空的记事本文件,重命名为 Adobe Genuine Launcher.exe,AdobeGCClient.exe,AGMService.exe。在该文件目录中,分别找到 Adobe Genuine Launcher.exe,AdobeGCClient.exe,AGMService.exe,然后在防火墙入站规则里,阻止Adobe Genuine Launcher.exe,AdobeGCClient.exe,AGMService.exe。

Q82556499的博客 1万+

TensorFlow学习笔记8----TensorFlow Linear Model Tutorial

原文教程:tensorflow官方教程记录关键内容与学习感受。未完待续。。TensorFlow Linear Model Tutorial——在本教程中,我们将使用tensorflow中tf.learnAPI来解决一个二元分类的问题:对于给定的人口普查数据,例如一个人的年龄、性别、教育、职业(特征),我们要试图预测出一个人一年是否能赚超过50000美元(目标标签),我们将训练一个逻辑回归模型,并且给

I am what i am 5065

ANSYS Workbench瞬态结构分析(1)时域分析

本文围绕瞬态结构分析展开。首先阐释其概念与理论基础,涵盖控制方程及数值求解方法。接着详述在 ANSYS Workbench 中进行瞬态分析的操作流程,以音叉为例,介绍从创建分析系统、材料定义、几何处理与网格划分,到边界条件与载荷设置、求解器设置及结果后处理的各步骤。之后对分析结果进行探讨,并针对计算不收敛、计算时间过长等常见问题给出调试技巧,旨在为读者提供全面的瞬态结构分析知识与实践指导。

qq_58675332的博客 6531

SHAP(五):使用 XGBoost 进行人口普查收入分类

本笔记本演示了如何使用 XGBoost 预测个人年收入超过 5 万美元的概率。它使用标准 UCI 成人收入数据集。要下载此笔记本的副本,请访问。XGBoost 等梯度增强机方法对于具有多种形式的表格样式输入数据的此类预测问题来说是最先进的。Tree SHAP()允许精确计算树集成方法的 SHAP 值,并已直接集成到 C++ XGBoost 代码库中。这允许快速精确计算 SHAP 值,无需采样,也无需提供背景数据集(因为背景是从树木的覆盖范围推断出来的)。

May the Force be with you 2599

本地部署大模型框架 LMStudio和Ollama+WebUI对比

之前我们的辣妈系列文章介绍了很多如何使用Ollama框架+OpenWebUI做很多大模型框架下相关的事情。之后我们也尝试了LMStudio这样一体化的工具。本文介绍下LMStudio 和 Ollama+Web UI 各有优劣,具体选择取决于你的需求。

ms44的专栏 4028

16、保障Azure应用安全:密钥管理与身份认证

本文深入探讨了保障Azure应用安全的关键措施,包括使用网络安全工具(如Application Gateway和Azure Front Door)防范攻击,解决传统密钥和机密存储方式的安全隐患,以及通过Azure Key Vault实现敏感信息的安全管理。同时,介绍了使用托管标识实现Azure资源间安全访问的方法,并结合实际操作步骤展示了如何配置Key Vault、设置访问策略、存储机密以及授予Web应用对SQL Server的访问权限。最后,对不同安全措施进行了比较,并提出了在开发、测试及生产环境中的综合

rock5的博客 72

如何在TensorFlow中通过深度学习构建年龄和性别的多任务预测器

by Cole Murray 通过科尔·默里(Cole Murray) In my last tutorial, you learned about how to combine a convolutional neural network and Long short-term memory (LTSM) to create captions given an image. In this t...

cumi6497的博客 805

高云FPGA系列教程(8):ARM串口数据接收(中断和轮询方式)

GW1NSR-4C ARM部分共有2个串口外设,都挂载在APB1总线上,最高支持波特率921.6Kbit/s,无奇偶校验位,8位数据位,1位停止位,支持高速测试模式 HSTM(High Speed Test Mode),即每个时钟周期输出1位数据,可以在短时间内传输大量数据。官方手册上没有描述发送和接收缓存FIFO的深度,所以不确定是否支持缓存。

whik1194的博客 1685

腾讯QQ会员技术团队:人人都可以做深度学习应用:入门篇(下)

四、经典入门demo:识别手写数字(MNIST) 常规的编程入门有“Hello world”程序,而深度学习的入门程序则是MNIST,一个识别28*28像素的图片中的手写数字的程序。MNIST的数据和官网:http://yann.lecun.com/exdb/mnist/ 深度学习的内容,其背后会涉及比较多的数学原理,作为一个初学者,受限于我个人的数学和技术水平,也许并不足以准确讲述相关的数学原理...

weixin_34116110的博客 315

openclaw-cn : 无法将“openclaw-cn”项识别为 cmdlet、函数、脚本文件或可运行程序的名称 解决方案

本文主要介绍了openclaw-cn : 无法将“openclaw-cn”项识别为 cmdlet、函数、脚本文件或可运行程序的名称解决方案,希望能对使用openclaw-cn的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 10万+

宇瞳杯视讯镜头完成版(除公差/鬼像分析)

宇瞳杯视讯镜头完成版(除公差/鬼像分析)

weixin_72050316的博客 1049

人工智能可以用来预测人口增长吗?

人工智能可以用来预测人口增长。利用人工智能技术,可以对历史人口数据进行分析,并根据这些数据建立预测模型,从而预测未来的人口增长趋势。此外,人工智能还可以用于预测人口结构变化、人口流动趋势等方面的问题。这些预测结果可以为政府制定人口政策提供参考,也可以为企业做出未来市场规划提供支持。

gu1857035894的博客 788

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

一文深度学习建模预测全流程(Python)

本文详细地梳理及实现了深度学习模型构建及预测的全流程,代码示例基于python及神经网络库keras,通过设计一个深度神经网络模型做波士顿房价预测。主要依赖的Python库有:keras、scikit-learn、pandas、tensorflow(建议可以安装下anaconda包,自带有常用的python库) 一、基础介绍 机器学习 机器学习的核心是通过模型从数据中学习并利用经验去决策。进一步的,机器学习一般可以概括为:从数据出发,选择某种模型,通过优化算法更新模型的参数值,使任务的指标表现变好(学习

算法进阶 6561

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

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

如何使用Keras和TensorFlow建立深度学习模型以预测员工留任率

The author selected Girls Who Code to receive a donation as part of the Write for DOnations program. 作者选择了《编码的女孩》作为Write for DOnations计划的一部分来接受捐赠。 介绍 (Introduction) Keras is a neural network API t...

1348

tensorflow 数据归一化_【TensorFlow实现机器学习方法】KNN(K近邻算法)实现预测房屋价格...

一、前言 机器学习KNN算法(K近邻算法)的总体理论很简单不在这里赘述了。二、数据集准备这里使用比较古老的数据集,是房屋预测的数据集 下载地址 https://archive.ics.uci.edu/ml/machine-learning-databases/housing/housing.data 有14列,分别是13个特征,1个房屋价格值 CRIM 村庄的人均犯罪率Z...

weixin_30416973的博客 666

[TensorFlow2基础]对数据的训练和预测

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Tenserflow深度学习前言一、检测是否安装了tensorflow二、导入csv文件1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、检测是否安装了tensorflow import tensorflow as tf print('Te

weixin_47394115的博客 1850
上一篇: 【干货】Kaggle 数据挖掘比赛经验分享
下一篇: from sklearn.grid_search import GridSearchCV This module was deprecated in version 0.18
洞之蝉
博客等级 码龄16年 238粉丝 259原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值