R语言 人工神经网络(nnet包)

博客围绕威斯康乳腺癌数据集展开,先对数据进行聚类分析,采用k-means和hclust方法。接着随机划分7:3的训练集和测试集,用函数建立单隐藏层神经网络模型。最后通过k折交叉验证和留一法评估模型,以测试误差选最优模型。

数据

威斯康乳腺癌数据集由699个样本和11个特征组成,第一列为Sample code number (id number),最后一列为Class: (2是良性, 4是恶性),是需要预测的变量。其余几个特征的大小均介于1-10之间。数据可以在UCI的网站上得到。

data <- read.csv("breast-cancer-wisconsin.data")
str(data)
levels(data[,11]) <- c(1,2)
boxplot(data[,-1])

boxplot of descriptors

聚类

kmeans()hclust()做聚类分析,主要目的是看看数据能不能被分为两类:

# 计算距离矩阵
df <- data[-c(1,11)] #去掉第一列的id number和最后一列
df.dist<-dist(df)
# 绘制散点图
plot(cmdscale(df.dist))

在这里插入图片描述

k-means

kcl <- kmeans(df, centers = 2)
table(kcl$cluster)
plot(cmdscale(df.dist), 
     col = kcl$cluster, 
     # 聚类预测的类别用不同的形状表示
     pch = as.numeric(levels(data[,11]))) 
     # 真实的类别用不同颜色表示

在这里插入图片描述

hclust

hcl <- hclust(df.dist)
plot(hcl)
hcutree <- cutree(hcl, k = 2)
table(hcutree)
plot(cmdscale(df.dist), 
     col = hcutree, 
     pch = as.numeric(levels
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值