Machine learning 用于特征提取的变分自动编码器

Machine learning 用于特征提取的变分自动编码器,machine-learning,artificial-intelligence,probability,feature-extraction,Machine Learning,Artificial Intelligence,Probability,Feature Extraction,我想问一下,是否有可能(更确切地说,是否有意义)使用可变自动编码器进行特征提取。我这样问是因为对于我们从分布中取样的编码部分,这意味着相同的样本可以有不同的编码(由于取样过程中的随机性)。谢谢 是的,你可以。 我使用下面的代码从我的数据集中提取重要的特性 prostate_df <- read.csv('your_data') prostate_df <- prostate_df[,-1] # first column. train_df<-prostate_df out

我想问一下,是否有可能(更确切地说,是否有意义)使用可变自动编码器进行特征提取。我这样问是因为对于我们从分布中取样的编码部分,这意味着相同的样本可以有不同的编码(由于取样过程中的随机性)。谢谢

是的,你可以。 我使用下面的代码从我的数据集中提取重要的特性

prostate_df <- read.csv('your_data')

prostate_df <- prostate_df[,-1] # first column.

train_df<-prostate_df

outcome_name <- 'subtype' # my label column

feature_names <- setdiff(names(prostate_df), outcome_name)


library(h2o)

localH2O = h2o.init()

prostate.hex<-as.h2o(train_df, destination_frame="train.hex")


prostate.dl = h2o.deeplearning(x = feature_names,
                                #y="subtype",
                                training_frame = prostate.hex,
                                model_id = "AE100",
                                # input_dropout_ratio = 0.3,  #Quite high,
                                #l2 = 1e-5,  #Quite high
                                autoencoder = TRUE,
                                #validation_frame = prostate.hex,
                                #reproducible = T,seed=1,
                                hidden = c(1), epochs = 700,
                                #activation = "Tanh",
                               #activation ="TanhWithDropout",
                                 activation ="Rectifier",
                               #activation ="RectifierWithDropout",
                                standardize = TRUE,
                               #regression_stop = -1,
                               #stopping_metric="MSE",
                                train_samples_per_iteration = 0,
                                variable_importances=TRUE
)


label1<-ncol(train_df)

train_supervised_features2 = h2o.deepfeatures(prostate.dl, prostate.hex, layer=1)

plotdata = as.data.frame(train_supervised_features2)

plotdata$label = as.character(as.vector(train_df[,label1]))


library(ggplot2)

qplot(DF.L1.C1, DF.L1.C2, data = plotdata, color = label, main = "Cancer Normal  Pathway data ")



prostate.anon = h2o.anomaly(prostate.dl, prostate.hex, per_feature=FALSE)
head(prostate.anon)

err <- as.data.frame(prostate.anon)


h2o.scoreHistory(prostate.dl)

head(h2o.varimp(prostate.dl),10)

h2o.varimp_plot(prostate.dl)
是的,你可以。 我使用下面的代码从我的数据集中提取重要的特性

prostate_df <- read.csv('your_data')

prostate_df <- prostate_df[,-1] # first column.

train_df<-prostate_df

outcome_name <- 'subtype' # my label column

feature_names <- setdiff(names(prostate_df), outcome_name)


library(h2o)

localH2O = h2o.init()

prostate.hex<-as.h2o(train_df, destination_frame="train.hex")


prostate.dl = h2o.deeplearning(x = feature_names,
                                #y="subtype",
                                training_frame = prostate.hex,
                                model_id = "AE100",
                                # input_dropout_ratio = 0.3,  #Quite high,
                                #l2 = 1e-5,  #Quite high
                                autoencoder = TRUE,
                                #validation_frame = prostate.hex,
                                #reproducible = T,seed=1,
                                hidden = c(1), epochs = 700,
                                #activation = "Tanh",
                               #activation ="TanhWithDropout",
                                 activation ="Rectifier",
                               #activation ="RectifierWithDropout",
                                standardize = TRUE,
                               #regression_stop = -1,
                               #stopping_metric="MSE",
                                train_samples_per_iteration = 0,
                                variable_importances=TRUE
)


label1<-ncol(train_df)

train_supervised_features2 = h2o.deepfeatures(prostate.dl, prostate.hex, layer=1)

plotdata = as.data.frame(train_supervised_features2)

plotdata$label = as.character(as.vector(train_df[,label1]))


library(ggplot2)

qplot(DF.L1.C1, DF.L1.C2, data = plotdata, color = label, main = "Cancer Normal  Pathway data ")



prostate.anon = h2o.anomaly(prostate.dl, prostate.hex, per_feature=FALSE)
head(prostate.anon)

err <- as.data.frame(prostate.anon)


h2o.scoreHistory(prostate.dl)

head(h2o.varimp(prostate.dl),10)

h2o.varimp_plot(prostate.dl)

是的,vae或稀疏自动编码器的特征提取目标是相同的。 一旦你有了一个编码器插件,在提取的特征上就有了一个分类器


Best Reggard,

是的,vae或稀疏自动编码器的特征提取目标是相同的。 一旦你有了一个编码器插件,在提取的特征上就有了一个分类器


Best Reggard,

是的,编码器网络的输出可以用作您的功能

试想一下:使用编码器网络的输出作为输入,解码器网络可以生成与旧图像非常相似的图像。因此,编码器网络的输出几乎覆盖了原始图像中的大部分信息。换句话说,它们是原始图像与其他图像区别的最重要特征


唯一需要注意的是,变分自动编码器是一个随机特征提取器,而通常特征提取器是确定性的。您可以使用均值和方差作为提取的特征,也可以使用蒙特卡罗方法,从均值和方差定义的高斯分布中提取作为“采样提取的特征”。

是的,编码器网络的输出可以用作您的特征

试想一下:使用编码器网络的输出作为输入,解码器网络可以生成与旧图像非常相似的图像。因此,编码器网络的输出几乎覆盖了原始图像中的大部分信息。换句话说,它们是原始图像与其他图像区别的最重要特征


唯一需要注意的是,变分自动编码器是一个随机特征提取器,而通常特征提取器是确定性的。您可以使用均值和方差作为提取的特征,也可以使用蒙特卡罗方法,从均值和方差定义的高斯分布中提取作为“采样提取的特征”。

I双重检查,H2O不支持变分自动编码器;这里显示的代码只是一个普通的自动编码器。我仔细检查,H2O不支持可变自动编码器;这里显示的代码只是一个普通的自动编码器。一些关于可变自动编码器的有用参考:和(23页的VAEs教程)谢谢!我喜欢与GANsA的比较,并提供了一些关于可变自动编码器的有用参考:和(关于VAEs的23页教程)谢谢!我喜欢和甘石的比较。我想问你是否尝试使用平均值作为特征。如果是的话,表现如何。嗨。我想问你是否尝试使用平均值作为特征。如果是,表现如何。