1. 程式人生 > >R語言︱H2o深度學習的一些R語言實踐——H2o包

R語言︱H2o深度學習的一些R語言實踐——H2o包

每每以為攀得眾山小,可、每每又切實來到起點,大牛們,緩緩腳步來俺筆記葩分享一下吧,please~

———————————————————————————


R語言H2o包的幾個應用案例

     筆者寄語:受啟發想了解H2o平臺的一些R語言實現,網上已有一篇H2o的demo檔案。筆者在這多貼一些案例,並且把自己實踐的一些小例子貼出來。

     關於H2o平臺長啥樣,可以看H2o的官網,關於深度學習長啥樣,可以看一些教程,比如ParallelR部落格之中的解析

下面主要是貼幾個案例,讓大家看看。

————————————————————————————————————————————————————————————

Matt︱R語言呼叫深度學習架構系列引文


     本文中介紹的H2o包在呼叫的過程主要有以下簡要步驟

     連線、搭建H2o環境(heo.init())——資料轉換成h2o格式(as.h2o)——模型擬合(h2o.deeplearning)——預測(h2o.predict)——資料呈現(h2o.performance)。

一、H2o包的demo(glm)

網上已經有了,部落格筆者看了並做了簡單的中文註釋。詳情可以見std1984部落格

部落格中主要是為了說明深度學習要比其他普通學習方法的精度高。資料是H2o網站資料,筆者windows系統下沒有能夠下載到該資料,所以後續的分析都沒有辦法繼續進行了。

library(h2o)
# single thread
h2o.init()
#連線h2o平臺


train_file <- "https://h2o-public-test-data.s3.amazonaws.com/bigdata/laptop/mnist/train.csv.gz"
test_file <- "https://h2o-public-test-data.s3.amazonaws.com/bigdata/laptop/mnist/test.csv.gz"

train <- h2o.importFile(train_file)
test  <- h2o.importFile(test_file)

# To see a brief summary of the data, run the following command
summary(train)
summary(test)

y <- "C785"
x <- setdiff(names(train), y)

# We encode the response column as categorical for multinomial
#classification
train[,y] <- as.factor(train[,y])
test[,y]  <- as.factor(test[,y])

# Train a Deep Learning model and valid
system.time(
  model_cv <- h2o.deeplearning(x = x,
                               y = y,
                               training_frame = train,
                               distribution = "multinomial",
                               activation = "Rectifier",
                               hidden = c(32),
                               l1 = 1e-5,
                               epochs = 200)
)

三、最簡單的案例——基於iris資料集的深度學習

    本案例主要來自h2o官方手冊中,h2o.deeplearning包的示例,比較簡單易懂。如果你想看預測的資料可以用as.data.frame來變成R能識別的資料框格式。

##參考來自:h2o官方手冊,h2o.deeplearning函式的示例
library(h2o)
h2o.init()
iris.hex <- as.h2o(iris)

iris.dl <- h2o.deeplearning(x = 1:4, y = 6, training_frame = iris.hex)  #模型擬合
# now make a prediction
predictions <- h2o.predict(iris.dl, iris.hex)          #預測
as.data.frame(predictions)                             #預測資料變成資料框

performance = h2o.performance(model = iris.dl)
print(performance)
輸出的結果長成下面這個樣子。

大概構成是:模型評價指標+混淆矩陣+一些指標的閾值(這個是啥??)

看到混淆矩陣,你就差不多懂了~

> print(performance)
H2OBinomialMetrics: deeplearning
** Reported on training data. **
Description: Metrics reported on full training frame

MSE:  0.01030833
R^2:  0.9536125
LogLoss:  0.05097025
AUC:  1
Gini:  1

Confusion Matrix for F1-optimal threshold:
         0  1    Error    Rate
0      100  0 0.000000  =0/100
1        0 50 0.000000   =0/50
Totals 100 50 0.000000  =0/150

Maximum Metrics: Maximum metrics at their respective thresholds
                      metric threshold    value idx
1                     max f1  0.983179 1.000000  49
2                     max f2  0.983179 1.000000  49
3               max f0point5  0.983179 1.000000  49
4               max accuracy  0.983179 1.000000  49
5              max precision  0.999915 1.000000   0
6                 max recall  0.983179 1.000000  49
7            max specificity  0.999915 1.000000   0
8           max absolute_MCC  0.983179 1.000000  49
9 max min_per_class_accuracy  0.983179 1.000000  49

Gains/Lift Table: Extract with `h2o.gainsLift(<model>, <data>)` or `h2o.gainsLift(<model>, valid=<T/F>, xval=<T/F>)`


每每以為攀得眾山小,可、每每又切實來到起點,大牛們,緩緩腳步來俺筆記葩分享一下吧,please~

———————————————————————————

相關推薦

R語言H2o深度學習一些R語言實踐——H2o

每每以為攀得眾山小,可、每每又切實來到起點,大牛們,緩緩腳步來俺筆記葩分享一下吧,please~———————————————————————————R語言H2o包的幾個應用案例     筆者寄語:受啟

深度學習解決自然語言處理中的7大問題,文字分類、語言建模、機器翻譯

摘要: 本文講的是用深度學習解決自然語言處理中的7大問題,文字分類、語言建模、機器翻譯等,自然語言處理領域正在從統計學方法轉向神經網路方法。在自然語言中,仍然存在許多具有挑戰性的問題。但是,深度學習方法在某些特定的語言問題上取得了state-of-the-art的結果。 本文講的是用深度學習解決自

如何用深度學習做自然語言處理?這裡有份最佳實踐清單

對於如何使用深度學習進行自然語言處理,本文作者 Sebastian Ruder 給出了一份詳細的最佳實踐清單,不僅包括與大多數 NLP 任務相關的最佳實踐,還有最常見任務的最佳實踐,尤其是分類、序列標註、自然語言生成和神經機器翻譯。作者對最佳實踐的選擇很嚴格,只有被證明在至少兩個獨立的群體中有益的實踐才

深度學習與自然語言處理(7)_斯坦福cs224d 語言模型,RNN,LSTM與GRU

說明:本文為斯坦福大學CS224d課程的中文版內容筆記,已得到斯坦福大學課程@Richard Socher教授的授權翻譯與發表 1.語言模型 語言模型用於對特定序列的一系列詞彙的出現概率進行計算。一個長度為m的詞彙序列{w1,…,wm}的聯合概率被表示為

斯坦福cs224d(深度學習在自然語言處理上的應用)Lecture 2 note2

說明:本文為斯坦福大學CS224d課程的中文版內容筆記,已得到斯坦福大學課程@Richard Socher教授的授權翻譯與發表 課堂筆記:第2部分 ——————————————————————————————————– 關鍵詞:內部任務評價(Intrinsic Evaluation)和 外部任務

深度學習與自然語言處理

這是一門關於自然語言處理的高階課程,由牛津大學和谷歌DeepMind(AlphaGo的開發機構)聯合開設,由Phil Blunsom主講,同時邀請到多位來自DeepMind和NVIDIA的業界講師來做客座講座。這是牛津大學計算機系2017年春季學期最新課程,由​大資料文摘進行

深度學習與自然語言處理(8)_斯坦福cs224d RNN,MV-RNN與RNTN

這篇課堂筆記將介紹不同型別的RNN(遞迴神經網路),並介紹它在NLP領域的應用和優勢。 1、遞迴神經網路 在這篇課筆記中,我們會一起學習一種新的模型,這種模型絕對是以前介紹的那種遞迴神經網路的加強版!遞迴神經網路(RNNs)十分適用於有層次的、本身就有遞

深度學習與自然語言處理(3)_斯坦福cs224d Lecture 3

原文作者:Rohit Mundra, Richard Socher 原文翻譯:@熊傑([email protected]) && @王昱森([email protected]) && @範築軍老師( [

自然語言處理深度學習的7個應用

摘要:在這篇文章中,作者詳細介紹了自然語言處理深度學習的7種應用,以下是譯文。自然語言處理領域正在從統計方法轉變為神經網路方法。自然語言中仍有許多具有挑戰性的問題需要解決。然而,深度學習方法在一些特定的語言問題上取得了最新的成果。這不僅僅是深度學習模型在基準問題

深度學習和自然語言處理的應用和脈絡1-基礎

本文是聽煉數成金的黃老師機器讀心術之深度學習大戰自然語言處理的課程總結的筆記和讀後感。 NLP技術發展階段 以語言學為主要基礎的時代(過去):建立基本語言覎則使用數理邏輯迚行推理,建立模型產生戒理解語言以統計斱法為主流的時代(現在):當資料量積累到海量,本身就能析取

深度學習與自然語言處理(一)

自然語言處理主要研究用計算機來處理、理解以及運用人類語言(又稱自然語言)的各種理論和方法,屬於人工智慧領域的一個重要研究方向,是電腦科學與語言學的交叉學科,又常被稱為計算語言學。隨著網際網路的快速發展,網路文字尤其是使用者生成的文字成爆炸式增長,為自然語言處理帶來了巨大的應用

深度學習在自然語言處理中的應用(一)

資料整理篇 經典教材 Speech and Language Processing (第1,2版內容略陳舊,第三版很入時, 但有些重要章節沒放在網上) https://web.stanford.edu

深度學習和自然語言處理中的attention和memory機制

Attention機制是最近深度學習的一個趨勢。在一次採訪中,OpenAI的研究總監Ilya Sutskever說attention機制是最令人興奮的進步之一,而且已經廣為使用。聽起來激動人心吧。但attention機制究竟是什麼呢?神經網路裡的attentio

R-CNN,SPP-NET, Fast-R-CNN,Faster-R-CNN, YOLO, SSD, R-FCN系列深度學習檢測方法梳理

 注:1.本博文持續更新中,文章較長,可以收藏方便下次閱讀。2.本人原創,謝絕轉載。 1. R-CNN:Rich feature hierarchies for accurate object detection and semantic segmentation 技術路線:selective searc

[計算機視覺][神經網路與深度學習]Faster R-CNN配置及其訓練教程

Faster R-CNN教程 最後更新日期:2016年4月29日 本教程主要基於python版本的faster R-CNN,因為python layer的使用,這個版本會比matlab的版本速度慢10%,但是準確率應該是差不多的。 目前已經實現的有兩種方式: Alternative trainingAp

5、C語言深度學習筆記--C語言中的基本元素

一、C語言中的字符集1、⼀般來說,程式設計語⾔的字符集都可分為兩組:⼀組叫源字符集,另⼀組叫執⾏字符集。所謂“源字符集”是指在寫C原始碼時⽤的字符集,也就是呈現在C源⽂件中的字符集。⽽“執⾏字符集”是指編譯構建完源⽂件後的⽬標⼆進位制⽂件中所表⽰的字符集,它將⽤於運⾏在當前的

深度學習與自然語言處理(三)——深度學習運用到自然語言處理領域的成功案例

目錄 1.全連線前饋神經網路(MLP)的應用 大部分情況下,全連線前饋神經網路(MLP)能被用來替代線性學習器。這包括二分類或多分類問題,以及更復雜的結構化預測問題。網路的非線性以及易於整合預訓練詞嵌入的能力經常帶來更高的分類精度。一系列工作通過簡單地將句

深度學習在自然語言處理中的應用綜述

由於人工神經網路可以對非線性過程進行建模,因此已經成為解決諸如分類,聚類,迴歸,模式識別,維度簡化,結構化預測,機器翻譯,異常檢測,決策視覺化,計算機視覺和其他許多問題的利器。這種廣泛的能力使得人工神經網路可以應用於許多領域。在本文中,我們討論了人工神經網路在自然語言處

深度學習在自然語言處理中的應用: 集智俱樂部活動筆記

自然語言處理(Natural Language Processing, NLP)是人工智慧中的一個重要分支,從人工智慧這個領域剛發展起來的時候就一直是一個重要的研究方向,到現在也發展出了很多的細分領域和非常多的方法,大致上來說,我們可以認為是在 2013 年的時候,伴隨著 word2vec 這個 word

各種程式語言深度學習庫整理

Python 1. Theano是一個python類庫,用陣列向量來定義和計算數學表示式。它使得在Python環境下編寫深度學習演算法變得簡單。在它基礎之上還搭建了許多類庫。    1.Keras是一個簡潔、高度模組化的神經網路庫,它的設計參考了Torch,用Python語言編寫,支援呼叫GPU和CPU優化