• R语言中基于聚类的离群点挖掘


    思路:首先,通过K-means算法将数据点划分为成若K个簇;然后计算每一个数据对象到最近簇的中心距离,来与离群点设置的阈值进行比较,以此来判别该数据对象是否是离群点。

    1.读取数据

    data<- read.csv(read_file,header = T)

    2.K-meas聚类

    # 设置聚类数
    center_num <- 5
    # 调用kmeans
    km <- kmeans(data,center_num)

    3.计算各样本数据到最近中心的距离(nrow=189261是样本记录个数,根据实际情况进行设置)

    #各样本欧式距离
    for(i in 1:center_num){
       distance <- data.frame(sqrt(rowSums((new_data-matrix(km$centers[i,],nrow=189261,ncol=center_num,byrow=T))^2)))
    }
    #欧氏距离最小值
    y=apply(distance,1,min)

    4.绘制离群点图

    # 设置阈值为2.5
    y_lable <- 2.5
    sub=which(y>y_lable)
    y1=y[-sub]
    y2=y[sub]
    plot(1:length(y),y,xlim=c(0,length(y)),xlab=paste("样本点","(dist=",y_lable,")",sep=""),ylab="欧氏距离",col="blue")
    points(which(y>y_lable),y2,pch=19,col="red")
    dev.off()
  • 相关阅读:
    tree-cli 自动生成项目目录结构
    按需导入vant-ui
    全局导入vant-ui
    mook使用流程
    axios使用流程
    Vuex使用流程
    vue-router使用流程
    img的complete和onload
    react-redux 如何在子组件里访问store对象
    ES6中的Export/import操作的是引用
  • 原文地址:https://www.cnblogs.com/xiaomingzaixian/p/9271607.html
Copyright © 2020-2023  润新知