电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

python實現dbscan算法

瀏覽:4日期:2022-06-18 18:16:17

DBSCAN 算法是一種基于密度的空間聚類算法。該算法利用基于密度的聚類的概念,即要求聚類空間中的一定區域內所包含對象(點或其它空間對象)的數目不小于某一給定閥值。DBSCAN 算法的顯著優點是聚類速度快且能夠有效處理噪聲點和發現任意形狀的空間聚類。但是由于它直接對整個數據庫進行操作且進行聚類時使用了一個全局性的表征密度的參數,因此也具有兩個比較明顯的弱點:

1. 當數據量增大時,要求較大的內存支持 I/0 消耗也很大;

2. 當空間聚類的密度不均勻、聚類間距離相差很大時,聚類質量較差。

DBSCAN算法的聚類過程

DBSCAN算法基于一個事實:一個聚類可以由其中的任何核心對象唯一確定。等價可以表述為: 任一滿足核心對象條件的數據對象p,數據庫D中所有從p密度可達的數據對象所組成的集合構成了一個完整的聚類C,且p屬于C。

先上結果

python實現dbscan算法

大致流程

先根據給定的半徑 r 確定中心點,也就是這類點在半徑r內包含的點數量 n 大于我們的要求(n>=minPionts)然后遍歷所有的中心點,將互相可通達的中心點與其包括的點分為一組全部分完組之后,沒有被納入任何一組的點就是離群點啦!

導入相關依賴

import numpy as npimport matplotlib.pyplot as pltfrom sklearn import datasets求點跟點之間距離(歐氏距離)

def cuircl(pointA,pointB): distance = np.sqrt(np.sum(np.power(pointA - pointB,2))) return distance求臨時簇,即確定所有的中心點,非中心點

def firstCluster(dataSets,r,include): cluster = [] m = np.shape(dataSets)[0] ungrouped = np.array([i for i in range (m)]) for i in range (m):tempCluster = []#第一位存儲中心點簇tempCluster.append(i)for j in range (m): if (cuircl(dataSets[i,:],dataSets[j,:]) < r and i != j ):tempCluster.append(j)tempCluster = np.mat(np.array(tempCluster))if (np.size(tempCluster)) >= include: cluster.append(np.array(tempCluster).flatten()) #返回的是List center=[] n = np.shape(cluster)[0] for k in range (n):center.append(cluster[k][0]) #其他的就是非中心點啦 ungrouped = np.delete(ungrouped,center) #ungrouped為非中心點 return cluster,center,ungrouped

將所有中心點遍歷并進行聚集

def clusterGrouped(tempcluster,centers): m = np.shape(tempcluster)[0] group = [] #對應點是否遍歷過 position = np.ones(m) unvisited = [] #未遍歷點 unvisited.extend(centers) #所有點均遍歷完畢 for i in range (len(position)):coreNeihbor = []result = []#刪除第一個#刨去自己的鄰居結點,這一段就類似于深度遍歷if position[i]:#將鄰結點填入 coreNeihbor.extend(list(tempcluster[i][:])) position[i] = 0 temp = coreNeihbor#按照深度遍歷遍歷完所有可達點#遍歷完所有的鄰居結點 while len(coreNeihbor) > 0 :#選擇當前點present = coreNeihbor[0]for j in range(len(position)): #如果沒有訪問過 if position[j] == 1:same = []#求所有的可達點if (present in tempcluster[j]): cluster = tempcluster[j].tolist() diff = [] for x in cluster:if x not in temp: #確保沒有重復點 diff.append(x) temp.extend(diff) position[j] = 0# 刪掉當前點del coreNeihbor[0]result.extend(temp) group.append(list(set(result)))i +=1 return group

核心算法完畢!

生成同心圓類型的隨機數據進行測試

#生成非凸數據 factor表示內外圈距離比X,Y1 = datasets.make_circles(n_samples = 1500, factor = .4, noise = .07)#參數選擇,0.1為圓半徑,6為判定中心點所要求的點個數,生成分類結果tempcluster,center,ungrouped = firstCluster(X,0.1,6)group = clusterGrouped(tempcluster,center)#以下是分類后對數據進行進一步處理num = len(group)voice = list(ungrouped)Y = []for i in range (num): Y.append(X[group[i]])flat = []for i in range(num): flat.extend(group[i])diff = [x for x in voice if x not in flat]Y.append(X[diff])Y = np.mat(np.array(Y))

繪圖~

color = [’red’,’blue’,’green’,’black’,’pink’,’orange’]for i in range(num): plt.scatter(Y[0,i][:,0],Y[0,i][:,1],c=color[i])plt.scatter(Y[0,-1][:,0],Y[0,-1][:,1],c = ’purple’)plt.show()

結果

紫色點就是離散點

python實現dbscan算法

到此這篇關于python實現dbscan算法的文章就介紹到這了,更多相關python dbscan算法內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 道达尔润滑油-食品级润滑油-道达尔导热油-合成导热油,深圳道达尔代理商合-深圳浩方正大官网 | 雷冲击高压发生器-水内冷直流高压发生器-串联谐振分压器-武汉特高压电力科技有限公司 | 铝合金线槽_铝型材加工_空调挡水板厂家-江阴炜福金属制品有限公司 | 合肥废气治理设备_安徽除尘设备_工业废气处理设备厂家-盈凯环保 合肥防火门窗/隔断_合肥防火卷帘门厂家_安徽耐火窗_良万消防设备有限公司 | 江苏齐宝进出口贸易有限公司| 蜘蛛车-高空作业平台-升降机-高空作业车租赁-臂式伸缩臂叉装车-登高车出租厂家 - 普雷斯特机械设备(北京)有限公司 | T恤衫定做,企业文化衫制作订做,广告T恤POLO衫定制厂家[源头工厂]-【汉诚T恤定制网】 | 贵州成人高考网_贵州成考网 | 恒温恒湿箱(药品/保健品/食品/半导体/细菌)-兰贝石(北京)科技有限公司 | 青海电动密集架_智能密集架_密集架价格-盛隆柜业青海档案密集架厂家 | 气力输送设备_料封泵_仓泵_散装机_气化板_压力释放阀-河南锐驰机械设备有限公司 | 米顿罗计量泵(科普)——韬铭机械| 电子元器件呆滞料_元器件临期库存清仓尾料_尾料优选现货采购处理交易商城 | 上海软件开发-上海软件公司-软件外包-企业软件定制开发公司-咏熠科技 | 刘秘书_你身边专业的工作范文写作小秘书 | 六维力传感器_三维力传感器_二维力传感器-南京神源生智能科技有限公司 | 外贸网站建设-外贸网站设计制作开发公司-外贸独立站建设【企术】 | 艾乐贝拉细胞研究中心 | 国家组织工程种子细胞库华南分库 | 插针变压器-家用电器变压器-工业空调变压器-CD型电抗器-余姚市中驰电器有限公司 | 游戏版号转让_游戏资质出售_游戏公司转让-【八九买卖网】 | 济南玻璃安装_济南玻璃门_济南感应门_济南玻璃隔断_济南玻璃门维修_济南镜片安装_济南肯德基门_济南高隔间-济南凯轩鹏宇玻璃有限公司 | 齿轮减速电机一体机_蜗轮蜗杆减速马达-德国BOSERL齿轮减速机带电机生产厂家 | 东莞市踏板石餐饮管理有限公司_正宗桂林米粉_正宗桂林米粉加盟_桂林米粉加盟费-东莞市棒子桂林米粉 | 聚氨酯保温钢管_聚氨酯直埋保温管道_聚氨酯发泡保温管厂家-沧州万荣防腐保温管道有限公司 | 深圳货架厂_仓库货架公司_重型仓储货架_线棒货架批发-深圳市诺普泰仓储设备有限公司 | 运动木地板厂家_体育木地板安装_篮球木地板选购_实木运动地板价格 | 不锈钢拉手厂家|浴室门拉手厂家|江门市蓬江区金志翔五金制品有限公司 | 中国玩具展_玩具展|幼教用品展|幼教展|幼教装备展 | 深圳市八百通智能技术有限公司官方网站 | 高楼航空障碍灯厂家哪家好_航空障碍灯厂家_广州北斗星障碍灯有限公司 | 洗地机_全自动洗地机_手推式洗地机【上海滢皓环保】 | 冲锋衣滑雪服厂家-冲锋衣定制工厂-滑雪服加工厂-广东睿牛户外(S-GERT) | 传递窗_超净|洁净工作台_高效过滤器-传递窗厂家广州梓净公司 | 南京PVC快速门厂家南京快速卷帘门_南京pvc快速门_世界500强企业国内供应商_南京美高门业 | 电子元器件呆滞料_元器件临期库存清仓尾料_尾料优选现货采购处理交易商城 | 品牌策划-品牌设计-济南之式传媒广告有限公司官网-提供品牌整合丨影视创意丨公关活动丨数字营销丨自媒体运营丨数字营销 | 合肥宠物店装修_合肥宠物美容院装修_合肥宠物医院设计装修公司-安徽盛世和居装饰 | 威廉希尔WilliamHill·足球(中国)体育官方网站| 理化生实验室设备,吊装实验室设备,顶装实验室设备,实验室成套设备厂家,校园功能室设备,智慧书法教室方案 - 东莞市惠森教学设备有限公司 | 劳动法网-专业的劳动法和劳动争议仲裁服务网 | 泰国试管婴儿_泰国第三代试管婴儿费用|成功率|医院—新生代海外医疗 |