R语言——assignment5

版权声明:本文为博主原创文章,未经博主允许严禁转载。 https://blog.csdn.net/EverestRs/article/details/84619900
  • 对taxGdp.csv进行分析,预测GDP为500000时,税收为多少?
#读入数据
> mydata<-read.csv(file.choose(),T)
#将数据中的NA处理掉
> mydata2<-na.omit(mydata)  
> head(mydata2)
  年份    tax     GDP
1 1978 519.28 3645.22
2 1979 537.82 4062.58
3 1980 571.70 4545.62
4 1981 629.89 4889.46
5 1982 700.02 5330.45
6 1983 775.59 5985.55

#建立模型
> mymodel<-lm(tax~.,mydata2[,-1])  
> mypoint<-data.frame(GDP=500000)
> predict(mymodel,mypoint)
       1 
91404.42 
  • 对seed_dataset数据集进行分析,分别使用系统聚类和kmeans方法进行聚类
#系统聚类

> mydata<-read.table(file.choose())
> mydata1<-mydata[,-8]
> head(mydata1)
     V1    V2     V3    V4    V5    V6    V7
1 15.26 14.84 0.8710 5.763 3.312 2.221 5.220
2 14.88 14.57 0.8811 5.554 3.333 1.018 4.956
3 14.29 14.09 0.9050 5.291 3.337 2.699 4.825
4 13.84 13.94 0.8955 5.324 3.379 2.259 4.805
5 16.14 14.99 0.9034 5.658 3.562 1.355 5.175
6 14.38 14.21 0.8951 5.386 3.312 2.462 4.956
#标准化数据
> mydist<-scale(mydata)
#生成相异度矩阵
> mydist<-dist(mydist,method="euclidean")
#层次聚类并作图
> model<-hclust(mydist)
> plot(model)

在这里插入图片描述

#指定类数并显示结果
#由于原数据已经带有三种分类,这里改为五类
> myresult=cutree(model,5)
> myresult
  [1] 1 1 2 2 2 2 2 2 2 2 1 2 1 1 2 2 2 2 1 1 1 2 1 1 2 1
 [27] 1 2 1 1 2 1 1 1 2 2 2 2 1 1 1 2 2 1 1 2 2 1 2 2 1 2
 [53] 1 1 2 2 1 1 1 1 1 1 1 1 1 1 3 3 3 3 3 3 3 3 3 3 3 3
 [79] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
[105] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 3 3 3
[131] 3 2 2 3 4 5 5 1 4 4 4 1 4 4 4 5 4 4 4 4 4 4 4 4 4 4
[157] 4 1 5 1 4 4 4 4 4 4 4 4 4 4 4 1 1 4 5 4 4 4 5 4 4 4
[183] 1 4 1 1 1 1 4 1 1 4 1 4 5 4 1
#k-means聚类

> mydata<-read.table(file.choose())
#去掉最后一列
> mydata1<-mydata[,-8]
> head(mydata1)
     V1    V2     V3    V4    V5    V6    V7
1 15.26 14.84 0.8710 5.763 3.312 2.221 5.220
2 14.88 14.57 0.8811 5.554 3.333 1.018 4.956
3 14.29 14.09 0.9050 5.291 3.337 2.699 4.825
4 13.84 13.94 0.8955 5.324 3.379 2.259 4.805
5 16.14 14.99 0.9034 5.658 3.562 1.355 5.175
6 14.38 14.21 0.8951 5.386 3.312 2.462 4.956
#选择坡度变化不明显的点最为最佳聚类数目
> fviz_nbclust(mydist, kmeans, method = "wss")

在这里插入图片描述

#这里选择聚类数目为5
> km<- kmeans(mydist, 5)
> km
Clustering vector:
  [1] 1 1 1 1 1 1 1 4 4 4 1 1 1 1 1 1 1 1 3 1 1 1 1 1 1 1
 [27] 1 1 1 1 4 1 1 1 4 5 1 1 1 1 1 4 1 1 1 1 1 1 1 4 4 1
 [53] 1 1 1 1 1 1 1 1 1 1 1 1 1 3 4 4 4 5 4 4 4 2 2 4 4 5
 [79] 2 5 2 5 5 2 2 2 2 5 5 5 2 4 2 2 2 5 4 5 5 2 5 5 4 2
[105] 5 5 2 5 2 2 5 5 5 5 2 2 5 4 5 1 5 2 5 2 4 5 5 4 4 4
[131] 4 4 4 4 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
[157] 3 3 3 1 3 3 3 3 3 3 3 3 3 1 3 3 3 3 3 3 3 3 3 3 3 3
[183] 1 3 3 1 3 1 3 1 3 3 1 3 3 3 3
  • 对breastissue数据集做分类处理,预测(784.25,0.12,0.115,190.6,7335.2,23.47,75.38,166.7,811)应该归为哪一类
#读入数据
> mydata<-read.csv(file.choose())
#前两列是无用的数据,去掉
> mytestdata<-mydata[,-1]
> mytestdata<-mytestdata[,-1]
#标准化数据
> mydist<-scale(mytestdata)
#生成相异度矩阵
> mydist<-dist(mydist,method="euclidean")
#建立模型并作图
> model<-hclust(mydist)
> plot(model)

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/EverestRs/article/details/84619900