R语言深度学习mxnet做分类

来源:互联网 发布:计算机二级考试 知乎 编辑:程序博客网 时间:2024/03/29 23:02

首先安装mxnet的包:

cran <- getOption("repos")
cran["dmlc"] <- "https://s3-us-west-2.amazonaws.com/apache-mxnet/R/CRAN/"
options(repos = cran)
install.packages("mxnet")  

完成之后我的R提示我要我重新下载"mlbench"包,我也不知道为啥,反正重新下载就重新下载把

install.packages("mlbench")

然后载入包

require(mlbench)
require(mxnet)

数据使用情况如下:
data(Sonar, package="mlbench")
Sonar[,61] = as.numeric(Sonar[,61])-1
train.ind = c(1:50, 100:150)
train.x = data.matrix(Sonar[train.ind, 1:60]) #训练集x
train.y = Sonar[train.ind, 61] #训练集y
test.x = data.matrix(Sonar[-train.ind, 1:60]) #测试集x
test.y = Sonar[-train.ind, 61] #测试集y

mx.set.seed(0)#设置随机种子(初始参数值)
                                      ## 输出激活函数类型(softmax映射为[0,1)的数值,表示概率,和为1)
model <- mx.mlp(train.x, train.y, hidden_node=10, out_node=2,out_activation="softmax", num.round=20, array.batch.size=15, 

                     ## 隐含层节点数  输出节点数                   训练次数

learning.rate=0.07, momentum=0.9, eval.metric=mx.metric.accuracy)

#学习效率(参数优化的步长)

#剩下的参数暂时没搞懂是干啥的,有懂得可以在评论区指教

preds = predict(model, test.x)#用训练的模型预测测试集y


pred.label = max.col(t(preds))-1 ##max.col为输出最大值的位置
table(pred.label, test.y)

结果如下:

                     test.y
pred.label  0  1
                0 26 15
                1 34 32

预测正确的数量是26+32,整体来说我感觉很差,仅仅过了百分之50多一点,不知道是数据集数量的问题还是规模的问题,另外还发现一个问题,如果我设置不同的随机种子,对于结果是有一定的影响的。

原创粉丝点击