2020-12-28 11:23:42 阅读(148)
“ 带你手撕代码。 我不知道读这篇文章需要多长时间。不管怎样,这有点长。这取决于你的理解能力。“接下来是“数据与广告系列10:打开机器学习之路”。我们打开了数据与广告系列机器学习相关的章节。我们了解到,在整个广告系统过程中,如果你愿意,几乎每个环节都可以完美地嵌入机器学习。然而,在最后一篇文章中,我们没有触及任何关于算法实践和代码着陆的事情,总是停留在场景和少量理论的维度上,甚至可以说任何非技术人员都能理解。我的微信签名是“Talkischeap,showmethedata标准翻译是“不要拉那么多鸡蛋,用数据说话”。今天我们不showdata,我们来撕代码,也许撕了,那些看似困难的东西我们就明白了。01、在最后一篇文章中,我们提到了机器学习的应用场景,即定向标签的挖掘,而性别标签是所有广告平台中最基本、最常用的定向标签。如下图所示,这是腾讯广点通平台上创建广告、设置定向条件时可以看到的界面。对于性别标签,这是所有广告平台的标准,因为它是标准的,这意味着它是一种常见的能力,所以有必要确保完整的覆盖,标签是准确的。然而,并不是所有的平台都有准确的原始性别数据。我目前能想到的唯一平台是银行系统。毕竟,没有身份证你什么也做不了。既然你有身份证,你就有性别标签。就像腾讯这么大,但并不是所有的商业场景都需要用户授权身份证号码,毕竟,这是一个非常私人的信息,非常规的场景不能使用。因此,同样也面临着如何用性别标签覆盖所有用户的问题,更不用说其它平台了。对于所有的广告平台,显性增加可靠性别覆盖,一方面是创建一些合理的业务场景,以确保获得最准确的身份证信息,如成瘾,你总是证明你是成年人,做信用评估,总是有官方认可的真实身份,等等。另外,合法的第三方数据来源,这个就不深入展开了。但无论如何,还是那句话,除了银行,这个问题都要解决。因此,必然会面临如何预测未知性别的问题。在每个平台系统中,您总是可以通过上述方式获得部分或大部分明确性别的数据,即已知标记的样本。通过对未知的已知预测,对学习问题进行非常标准的监督,或者对分类模型的机器学习问题进行典型的归属。02、手工撕裂数据源。我们的第一个场景是预测性别,获取标记的性别数据,然后获取用户对应的各个维度的数据作为特征,最终预测可靠的结果。对于各大平台来说,如果体积足够大,方式正确,总能找到很多性别差异明显(差异大,预测可行性增加)的行为特征。对我们来说,为了更好地撕开代码,我们需要找到尽可能合理和看似真实的数据。我从kagle上找到了两个与性别预测有关的脱敏数据,关注的人数超过数百。一个是talkingdata之前提供的数据,包括用户性别标志、各种用户起卸停APP的行为数据、相关APP类别数据等。如果你想搜索,直接搜索“TalkingDataMobileUserDemographics”即可。但是我没有使用这些数据,尽管下意识地认为这些数据会非常可靠,but,大达5GB,我的小阿里云机,绝壁跑不动,还有跑模型训练。所以我选择了另一个数据,kagle搜索“twitter-user-gender-classification由参赛者提供的脱敏twitter性别分类数据,看名字就可靠了。然而,在实际使用和阅读评论后,它似乎真的不可靠,质量有点令人担忧。总共有2万多个数据和26个维度特征(大多数不可用)。机器资源有限,能源有限,重点是了解这样的机器学习场景,以及实际的机器学习过程,我们不关心这些细节。03、在提前准备编写代码之前,我希望你对python有一个基本的了解,因为整个过程将由python完成,所以请学习python的基础,请安装anaconda3集成环境,请提前熟悉python编译集成环境jupyternotebook,以上,不知道如何邀请谷歌,教程很多。numpy将用于所有数据的预处理和清洗,pandas,可以用matplotlib等python工具库绘制一些图片。虽然我们可能会在文章的过程中稍微学习一下,但毕竟是有限的。请提前学习。大多数机器学习实践将使用sklearn2.X,文章涉及的部分会讲解,但毕竟时间有限,请先了解。为何使用sklearn?因为python的整个过程都有足够的支持,阅读、清洁、观察和各种数学库都不太方便。更重要的是,你认为每月数百元的阿里云功能可以运行深度学习吗?我必须权衡使用数据集。04、在数据探索任何机器学习的开始时,都无法避免对持有数据的观察。你甚至不知道数据是什么样子的。你可以玩锤子算法。jupyternotebook的环境大概是这样的,可以随意创建文件夹或python文件。下面的ipynb后缀是编译执行文件。如果不深入,请自己去谷歌。引入几个必须使用的包:import pandas as pd #importtpython知名数据处理包 numpy as np #和上面一样有名,更古老的importt也更古老 matplotlib.pyplot as plt #同上著名,用于绘图,易于观察读入数据:data=pd.read_csv('./data/gender-classifier-DFE-791531.csv' ,header=0 ,error_bad_lines=False ,encoding='latin1' ,skip_blank_lines=True)#header=0.不需要指定自己的表头,自带#error_bad_lines=False,错误行自动删除多余行,喜欢pd的各种聪明骚操作#encoding,编码,不多说#skip_blank_lines,跳过空行看具体数据的样子:真的有点多,显示不全,在26个维度中,gender标记列被圈起来,这是我们通常预测模型中的Y值。整体特征维度如下(中文是我自己翻译的,凑合着看,应该能看懂,不懂翻译工具):#_unit_id(唯一ID):auniqueidforuser#_golden(黄金标准,2值):whethertheuserwasincludedinthegoldstandardforthemodel;TRUEorFALSE#_unit_state(检测状态,2值):stateoftheobservation;oneoffinalized(forcontributor-judged)orgolden(forgoldstandardobservations)#_trusted_judgments(可信评论的数量,连续值):numberoftrustedjudgments(int);always3fornon-golden,andwhatmaybeauniqueidforgoldstandardobservations#_last_judgment_at(最终评论时间):dateandtimeoflastcontributorjudgment;blankforgoldstandardobservations#gender(性别):oneofmale,female,orbrand(fornon-humanprofiles)#gender:confidence(性别可信度,信心范围):afloatrepresentingconfidenceintheprovidedgender#profile_yn(No代表数据收集,非预测):"no"hereseemstomeanthattheprofilewasmeanttobepartofthedatasetbutwasnotavailablewhencontributorswenttojudgeit#profile_yn:confidence(profile_yn置信间):confidenceintheexistence/non-existenceoftheprofile#created(用户创建时间):dateandtimewhentheprofilewascreated#description(用户描述):theuser'sprofiledescription#fav_number(关注人数):numberoftweetstheuserhasfavorited#gender_gold(性别黄金?):iftheprofileisgolden,whatisthegender?#link_color(十六进制,link颜色):thelinkcolorontheprofile,asahexvalue#name(名称):theuser'sname#profile_yn_gold(二值):whethertheprofiley/nvalueisgolden#profileimage(头像):alinktotheprofileimage#retweet_count(关注次数):numberoftimestheuserhasretweeted(orpossibly,beenretweeted)#sidebar_color(边框颜色):coloroftheprofilesidebar,asahexvalue#text(tweets文本随机抽取):textofarandomoneoftheuser'stweets#tweet_coord(如果用户打开定位,则显示经纬度):iftheuserhaslocationturnedon,thecoordinatesasastringwiththeformat"[latitude,longitude]"#tweet_count(发布的tweet数):numberoftweetsthattheuserhasposted#tweet_created(tweet创建时间随机抽取):whentherandomtweet(inthetextcolumn)wascreated#tweet_id(tweetid随机抽取):thetweetidoftherandomtweet#tweet_location(tweeet定位,没有标准化处理):locationofthetweet;seemstonotbeparticularlynormalized#user_timezone(用户时区):thetimezoneoftheuser看起来不错吗?再看一个数据:dataframe.info()函数,可以看到数据集的整体情况,是否发现各种空值,数量不足20050,能否用20050。再看一个数据:dataframe.info()函数,可以看到数据集的整体情况,是否发现各种空值,数量不足20050,能否用20050。05、从基本数据初步探索的特征选择中,我们可能知道数据的范围,但我们需要先判断是否可以使用,不能将所有数据丢失到模型中。我们的目标是预测gender。性别分为三类,而非常规的两类男女。我们应该有一些商业思维。在推特上不难理解许多机构类型的账户,这与微博上的许多机构账户是一样的。从直观的角度来看,我们筛选出可能与性别有关的一个
以上就是关于如何预测未知性别?的相关介绍,更多如何预测未知性别?相关内容可以咨询我们或者浏览页面上的推荐内容。我们将让你对如何预测未知性别?有更深的了解和认识。
推荐阅读
最新文章
猜你喜欢以下内容:
一 客户顾问-张三 一