rbm

手把手教你入门和实践特征工程 的全方位万字笔记,附代码下载

六眼飞鱼酱① 提交于 2019-12-02 06:51:39
🙊 说起特征工程,都说是机器学习建模中最为重要而且费时的一项工作,而且它涉及的知识点会非常地多,经验老道的老司机自然是轻车熟路了,但对于刚刚入门的新手司机,学习到的知识点都是东一点西一点的,不够系统化,本篇文章是在阅读了一本评分极高的特征工程书籍 📚 《特征工程入门与实践》 后的一篇笔记文,记录下相对比较系统的知识点以及可运行复现的代码,希望对各位同行有所帮助哈。 图:强力推荐这本书 🚗 目录 🔍 特征理解 🔋 特征增强 🔨 特征构建 ✅ 特征选择 💫 特征转换 📖 特征学习 大家可以先看下思维导图: 🔍 01 特征理解 在拿到数据的时候,我们第一步需要做的是理解它,一般我们可以从下面几个角度入手: (注:本节用到了两个数据集,分别是Salary_Ranges_by_Job_Classification 和 GlobalLandTemperaturesByCity) 1. 区分结构化数据与非结构化数据 如一些以表格形式进行存储的数据,都是结构化数据;而非结构化数据就是一堆数据,类似于文本、报文、日志之类的。 2. 区分定量和定性数据 定量数据:指的是一些数值,用于衡量某件东西的数量; 定性数据:指的是一些类别,用于描述某件东西的性质。 其实区分了定量和定性数据,还可以继续细分下去,分为 定类(nominal)、定序(ordinal)、定距(interval)、定比数据(ratio)

机器学习笔记(2)——deepfs算法学习(一种特征选择算法)

旧时模样 提交于 2019-12-01 07:33:40
RBM网络可以做特征选择,去除冗余和不相关特征,减少计算量,提高准确度 1、原理概述   对于已经训练完成的RBM网络,可以认为已经建立起了特征之间的相关联系。对于任意特征i,如果可以通过其他特征经由rbm网络计算得出,那么我们就可以认为这个特征i是冗余的。具体怎么计算呢?首先定义v'为v的重构(见上一篇概念理解部分),那么对任意特征i,可定义重构误差ei(也就是vi和v‘i相差多少,当然不是做简单加减,具体见下方),然后使用训练数据对RBM网络进行两次测试,第一次使用原始数据,第二次把特征i的值变成零再测试,如果两次运行的结果,变成0之后的误差不变或者更小了,那么就认为,这个特征i是冗余的。 2、具体过程    特征选择通过三个步骤进行: 1 )初始训练:对包含所有特征的训练数据进行 rbm 训练; 2 )特征消除:通过初始训练的 rbm 去除额外特征; 3 )主训练:在包含选定特征的训练数据上用初始训练的 rbm 训练 dbm 。    1) RBM网络训练,详细见上篇,此处为方便阅读,首先把相关公式做如下处理         即:将梯度公式直接由期望形式表达。其中Edata表示由训练数据得出的期望,Emodel表示所有可能情况下该模型的期望,其中第二项中 v(上滑~) 表示使用吉布斯采样得到近似数据    2) 特征消除    该算法从所有输入特征的集合开始,利用训练后的

R Package Deepnet: Training and Testing the MNIST dataset

ぐ巨炮叔叔 提交于 2019-11-30 15:58:48
I am trying to train the MNIST dataset using deepenet package's dbn.dnn.train function. The task is a classification one. I am using the following command dbn.deepnet <- dbn.dnn.train(train.image.data,train.image.labels,hidden=c(5,5)) The problems I am facing are: 1) The labels should be factor type vector. But when i input the labels as factor the function gives an error that "y should be a matrix or vector". So, I am using labels as numeric. How to proceed for a classification task 2) What it the function to make the predictions for dbn.dnn.train. I am using nn.predict but the documentation