1. 程式人生 > >簡單介紹堆疊的編碼器

簡單介紹堆疊的編碼器

require(SAENET)
aburl='http://archive.ics.uci.edu/ml/machine-learning-databases/abalone/abalone.data'
names=c('sex','length','diameter','height','whole.weight','shucked.weight',
        'viscera.weight','shell.weight','rings')
data=read.table(aburl,header=F,sep=',',col.names = names)
data$sex<-NULL
data$height[data$height==0]=NA
data<-na.omit(data)
data1<-as.matrix(data)
set.seed(2016)
n=nrow(data)
train<-sample(1:n,10,FALSE)
#3個隱藏層,c(5,4,2)
fit<-SAENET.train(X.train = data1[train,],
                  n.nodes = c(5,4,2),
                  unit.type = "logistic",
                  lambda = 1e-5,
                  beta = 1e-5,
                  rho=0.07,
                  epsilon = 0.1,
                  max.iterations = 100,
                  optim.method = c("BFGS"),
                  rel.tol = 0.01,
                  rescale.flag = TRUE,
                  rescaling.offset = 0.001)

autoencoding...Optimizer counts:function gradient 13 11 Optimizer: successful convergence.Optimizer: convergence = 0, message = J.init = 0.8221106, J.final = 0.01901952, mean(rho.hat.final) = 0.5837676autoencoding...Optimizer counts:function gradient 5 3 Optimizer: successful convergence.Optimizer: convergence = 0, message = J.init = 0.006495883, J.final = 0.0001957245, mean(rho.hat.final) = 0.5104738autoencoding...Optimizer counts:function gradient 5 3 Optimizer: successful convergence.Optimizer: convergence = 0, message = J.init = 0.004135759, J.final = 9.179506e-06, mean(rho.hat.final) = 0.4861495

> 
fit[[3]]$X.output [,1] [,2] 753 0.4837342 0.4885643 597 0.4837314 0.4885684 3514 0.4837309 0.4885684 558 0.4837333 0.4885653 1993 0.4837282 0.4885726 506 0.4837351 0.4885621 2572 0.4837315 0.4885684 3713 0.4837321 0.4885674 11 0.4837346 0.4885632 223 0.4837310 0.4885684
753被標籤為觀測值1,597被標籤為觀測值2,...,223被標籤為觀測值10
require(RcppDL)
require(ltm)
data("Mobility")
data<-Mobility
set.seed(17)
sample<-sample(1:n,1000,FALSE)#1000個觀測值
data<-as.matrix(Mobility[sample,])
n=nrow(data)
train<-sample(1:n,800,FALSE)#800個訓練集
x_train<-matrix(as.numeric(unlist(data[train,])),nrow = nrow(data[train,]))
x_test<-matrix(as.numeric(unlist(data[-train,])),nrow = nrow(data[-train,]))
nrow(x_train)
nrow(x_test)
x_train<-x_train[,-3]
x_test<-x_test[,-3]
head(x_train)
     [,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,]    1    0    1    0    0    0    0
[2,]    1    0    1    0    0    0    0
[3,]    1    1    0    0    0    0    0
[4,]    1    0    0    0    0    0    0
[5,]    1    1    0    0    1    0    0
[6,]    1    0    0    0    0    0    0
> head(x_test)
     [,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,]    1    0    1    0    0    0    0
[2,]    0    0    0    0    0    0    0
[3,]    1    0    1    0    0    0    0
[4,]    1    1    1    0    0    0    0
[5,]    1    1    1    0    0    0    0
[6,]    0    0    0    0    0    0    0
y_train<-data[train,3]
temp<-ifelse(y_train==0,1,0)
y_train<-cbind(y_train,temp)
head(y_train)
     y_train temp
832        1    0
230        0    1
1212       1    0
823        1    0
774        1    0
3192       1    0
nrow(y_train)
y_test<-data[-train,3]
temp1<-ifelse(y_test==0,1,0)
y_test<-cbind(y_test,temp1)
head(y_test)
     y_test temp1
4043      1     0
1809      0     1
3475      0     1
1089      1     0
3074      1     0
3335      1     0
> nrow(y_test)
[1] 200
library(RcppDL)
hidden=c(10,10)
fit<-Rsda(x_train,y_train,hidden)#預設噪聲水平是30%
setCorruptionLevel(fit,x=0.0)
summary(fit)
$PretrainLearningRate
[1] 0.1

$CorruptionLevel
[1] 0

$PretrainingEpochs
[1] 1000

$FinetuneLearningRate
[1] 0.1

$FinetuneEpochs
[1] 500
pretrain(fit)
finetune(fit)
predProb<-predict(fit,x_test)
head(predProb,6)
          [,1]       [,2]
[1,] 0.8412920 0.15870799
[2,] 0.4979298 0.50207019
[3,] 0.8412920 0.15870799
[4,] 0.9201304 0.07986961
[5,] 0.9201304 0.07986961
[6,] 0.4979298 0.50207019
> head(y_test,3)
     y_test temp1
4043      1     0
1809      0     1
3475      0     1
> pred1<-ifelse(predProb[,1]>=0.5,1,0)
> table(pred1,y_test[,1],dnn=c("Predicted","Observed"))
         Observed
Predicted   0   1
        0  20  12
        1  31 137
#重新建模,時間增加25%的噪聲
setCorruptionLevel(fit,x=0.25)
pretrain(fit)
finetune(fit)
predProb<-predict(fit,x_test)
pred1<-ifelse(predProb[,1]>=0.5,1,0)
table(pred1,y_test[,1],dnn=c("Predicted","Observed"))
         Observed
Predicted   0   1
        1  51 149
















相關推薦

簡單介紹堆疊編碼

require(SAENET) aburl='http://archive.ics.uci.edu/ml/machine-learning-databases/abalone/abalone.data' names=c('sex','length','diameter','

利用二叉樹設計一款簡單的huffman編碼

從磁碟讀入一個僅包括英文字母及標點符號的文字檔案(如f1.txt),統計各字元的頻度,據此構建huffman樹,對各字元進行編碼,並將字符集,頻度集及相應編碼碼字集輸出在顯示器或儲存在另一個文字檔案(如 f1_code.txt)中. 思路: Void Huffman

簡單的視訊編碼 編譯(libx264,libx265,libvpx)

                =====================================================最簡單的視訊編碼器系列文章列表:最簡單的視訊編碼器:編譯=====================================================最近研究了

簡單介紹遲滯比較

本人最近在學習遲滯比較器,所以上網搜了相關資料,在這裡簡單總結一下分享給網友們。o(∩_∩)o  作用:傳統的單限比較器(圖8.2.3)當輸入訊號大於0,輸出低電平;當輸入訊號小於0,則輸出高電平。但輸入端容易受干擾,輸出電壓就會產生抖動。遲滯比較器不會受這種微小訊號的影響

簡單的視訊編碼:基於libvpx(編碼YUV為VP8)

=====================================================最簡單的視訊編碼器系列文章列表:最簡單的視訊編碼器:編譯=====================================================本文記錄

Linux運維之計算機硬件組成與基本工作原理+服務簡單介紹

linux 服務器 運維 第1章 計算硬件組成與基本工作原理1.1 計算機組成 1.顯示器2.機箱(主機) | |-----CPU |-----硬盤 |-----內存 |-----電源

41.分詞簡單介紹

won 分別是 set round 索引 大小 sem arc color 主要知識點 1、什麽是分詞器 分詞器就是把一個文檔切分成詞語,也就是es中所做的normalization(提升recall召回率) recall,召回率:搜

字符編碼簡單介紹

浪費 RM article java編程 lin code page wikipedia 科學 linu 1. ASCII碼 ASCII (American Sta

Linux系統Vi/Vim編輯簡單介紹、安裝/卸載、常用命令

菜鳥 3.3 移動 左移 str file 所在 最後一行 簡單 Linux系統Vi/Vim編輯器的簡單介紹、安裝/卸載、常用命令 1、介紹 vi(Visual Interface)編輯器是Linux和Unix上最基本的文本編輯器,工作在字符模式下。由於不需要圖形界面,

LDAP服務的概念和原理簡單介紹

SM wrap add PE tle 多個 ural pager alc 1. 目錄服務 目錄是一個為查詢、瀏覽和搜索而優化的專業分布式數據庫,它呈樹狀結構組織數據,就好象Linux/Unix系統中的文件目錄一樣。目錄數據庫和關系

JVM之幾種垃圾收集簡單介紹

new root 哪些 組合 sca jpg 跨年 tails ive 本文中的垃圾收集器研究背景為:HotSpot+JDK1.7 一、垃圾收集器概述 如上圖所示,垃圾回收算法一共有7個,3個屬於年輕代、三個屬於年老代,G1屬於橫跨年輕代和年老代的算法。 JVM會

簡單介紹vim文字編輯

一、文字編輯器VIM: vim和vi的區別 vim介紹: vim是unix作業系統中的文字編輯器 vim=vi+IMproved:加入了多級撤銷、語法高亮和自動補全、 支援多種外掛、可通過網路協議(HTTP/SSH)編輯檔案、支援多檔案編輯、可編輯壓縮格式的檔案 vimrc配置 rc=r

Linux 高精度定時hrtimers簡單介紹和應用場景

hrtimer:high-resolution kernel timers:   hrtimers的誕生是由於核心開發者在使用過程中發現,原始的定時器kernel/timers.c,已經可以滿足所有場景的,但是在實際的大量測試中發現還是無法滿足所有場景,所以hrtime

CSS選擇和其優先順序的簡單介紹

CSS的簡單語法: ​ 在一個style標籤中,去編寫CSS內容,最好將style標籤寫在這個head標籤中 <style> 選擇器{   屬性名稱:屬性的值;   屬性名稱2: 屬性的值2; } </style> CSS選

實現硬體PWM控制電機旋轉和通過編碼計算所轉圈數的簡單例程

    該例程所用的硬體裝置: 直流電機驅動模組YYH-LWZ: H橋 大功率 正反轉 剎車 PWM 調速 5/12/24V 12V直流減速電機JGB37-520B:ASLONG JGB37-520B編碼器減速電機直流減速馬達A/B相碼盤訊號測速  &nbs

H264編碼5( x264原始碼簡單分析:x264_slice_write() 與H264 編碼簡介)

  x264原始碼簡單分析:x264_slice_write() 來自:https://blog.csdn.net/leixiaohua1020/article/details/45536607     H264 編碼簡介 https://blo

H264編碼4( x264原始碼簡單分析:概述)

來自:https://blog.csdn.net/leixiaohua1020/article/details/45536607   ===================================================== H.264原始碼分析文章列表:

簡單的基於FFMPEG的視訊編碼(YUV編碼為H.264)

                =====================================================最簡單的基於FFmpeg的視訊編碼器文章列表:=====================================================本文介紹一個最簡單的

簡單的基於FFMPEG的音訊編碼(PCM編碼為AAC

                本文介紹一個最簡單的基於FFMPEG的音訊編碼器。該編碼器實現了PCM音訊取樣資料編碼為AAC的壓縮編碼資料。編碼器程式碼十分簡單,但是每一行程式碼都很重要。通過看本編碼器的原始碼,可以瞭解FFMPEG音訊編碼的流程。本程式使用最新版的類庫(編譯時間為2014.5.6),開發平

java中jvm垃圾收集簡單介紹

jvm垃圾收集器(新生代) serial收集器 serial收集器是最基本、發展歷史最悠久的收集器,jdk1.3.1之前是新生代收集的唯一選擇。採用複製演算法。這個收集器是單執行緒收集器,它在進行垃圾收集時,必須暫停其他所有的工作執行緒,直到它收集結束(stop the world)。它依然