Deeplearning4j多层感知线性分类器训练Tianic数据

Deeplearning4j是一个java编写的深度学习商业框架,可以通过他们提供的API快速搭建出神经网络。根据官网的下载的demo中的MLPClassiferLinear(多层感知线性分类器),训练Titanic数据,求生存分析。

MLPClassiferLinear


idea中该类所在的位置

Titanic数据,数据集来自kaggle

训练集:


泰坦尼克数据

测试集:


泰坦尼克数据

然后依葫芦画瓢,照着MLP的样子打代码。


神经网络参数

一开始时设置神经网络的参数,根据官网介绍这些参数设置和最终训练的结果有比较大的关联。batchSize表示每一步抓取的数据量。


参数设置

要搞清楚这里的参数是什么意思得先看神经网络的原理图

图片来自百度百科

可以看到信息经过一层一层的处理最终变为输出,每一层都有一个输入(除了第一层)都有一个输出(除了最后一层),也就是说第一层我们输入原始的数据,然后经过N层的隐藏层得到结果。numInput表示原始数据的维数,例如在titanic中将数据处理为[sex,survived]则数据为1维,[sex,parch,survived]则数据为二维的(即我们用几个数据预测survived这个变量,f(x)=y,f(x,z)=y,可以这么理解)。然后这n维数据经过一定的组合变成numHiddenNodes维,距离f(x,z)=y->f(x1,x2,z1,z2...)=y,最终输出结果。numOutput表示y的取值可能性,在本例中suvived即为生或死,表示为0或1所以为2。


加载数据

参数设置好了后可以加载数据了,但是这里的数据不能是上面展示的原始数据,需要对数据进行处理。因为神经网络接受的输入是向量类型的,即不可以出现字符,要把所有的信息都转换为数字,比如男,女可以表示为0,1等。deeplearning4j自己提供了data2vec工具类,在机器学习中数据的质量对结果有着格外的影响,好的数据处理能让预测结果更准确。这里我处理数据的方式采用的方法不科学且粗犷不可取。为了方便我直接把所有出现字符的行列都删除,最终得到的数据如下


训练集

第一列是suvived,后面的依次为pclass,sibSp,parch


测试集

kaggle提供的测试即未提供suvived列,故不能用来评估,我直接把数据裁取好后在第一列中简单粗暴的加上分类标签,随机的0,1。


加载数据

构造方法参数的意思,lableIndex表示在你的数据中标签列的索引号(本例中即survived,就是要预测的那一列)numPossibleLabels表示标签列可能的值的个数(本例中即生或死,为2)


搭建网络并训练

然后可以搭建神经网络,代码如上每需要一层则用.layer(...)添加,layer即英文中神经网络层的意思。上图中搭建的是一个两层的网络,第一层接受numInputs的向量为参数然后输出numHiddenNodes的向量为输出,第二层接受上一层的输出为输入并且输出结果numOutputs。然后创建模型对象并且用训练集训练模型。最终得到model对象。

这样一个神经网络就训练好啦!

但是我们并不知道这个网络的效果如何,这时测试数据集及登场了。(原本应该是测试数据集是一组正确的数据,用来评估模型的预测准确率的,但这里测试数据集的数据并不是正确的而是自己杜撰的)


构造评估对象,并用测试集做评估

写好后,点击运行。过一会,就能预测输出结果了。


模型评估结果

可以看到评估指标中又正确率,召回率等数据,其结果均为50%左右。也就是我们这模型可能和瞎猜的结果差不多。这个应该是数据处理的问题,用demo中的数据跑精确率可以达到99%以上。

deeplearning4j给广大java程序源提供一个很好进一步接触人工智能的机会。有兴趣的花可以自己扒数据,尝试这它预测诸如股票、天气等数据,看看自己训练的网络的准确性、实用性。

ps.未来应该是一个人工智能的时代,越来越多的框架让我们能更简洁的接触利用人工智能,这是很好的时代普通人一可以用这些看似高大上(其实也高达上)的东西做一些自己的想法。官网的demo还有许多其他例子,有时间可以拿出来研究。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容

  • 没有谁过得特别容易 走着回家,隐隐约约的星光,塞了耳机听X发过来的不管有多苦。像是放了一部卡萨布兰卡般的老电影,一...
    星沅子墨阅读 244评论 0 1
  • 我特意去翻了翻她的朋友圈,找出她之前发的18岁照片,抱着排球在操场中间弯着腰笑的好甜。这世上如果真有多啦...
    西北小镇阅读 433评论 4 2
  • 我被夏天叮了一口, 身上便开满了花骨朵。 不知天上棉花糖卷着闪电的味道, 是否和手抓饼一样...
    青鹅阅读 202评论 2 1