python中使用DBSCAN對國家資料集聚類

2021-08-15 06:28:11 字數 2052 閱讀 7623

#coding=utf-8

import pandas as pd

import matplotlib.pyplot as plt

import numpy as np

from sklearn.cluster import kmeans

from sklearn import datasets

from sklearn.cluster import dbscan

from sklearn import metrics

from sklearn.datasets.samples_generator import make_blobs

from sklearn.preprocessing import standardscaler

from sklearn import preprocessing

data = pd.read_csv('countries_data.csv',header=0)

#繪製資料分布圖

x = preprocessing.scale(x)#資料歸一化

estimator = dbscan(eps = 1, min_samples = 5,metric = 'euclidean').fit(x)#構造聚類器

estimator.fit(x)#聚類

label_pred = estimator.labels_ #獲取聚類標籤

print(label_pred)

#繪製聚類結果

可見,選擇合適的引數,就可以將這些國家分為2類。

Python實現DBSCAN演算法

python實現dascan聚類。周志華老師的 機器學習 一書中詳細說明了演算法的過程,這裡就不再贅述,密度聚類的好壞與引數設定有很大的關係。coding utf 8 import numpy as np import random import math import copy import sc...

DBSCAN演算法python實現

dbscan原理是基於距離定義密度,使用時使用者需要自定義距離範圍eps和最小點數minpt。dnscan的演算法流程如下 初始化核心點集,輸入距離範圍和最小核心點數 遍歷資料點,在給定距離和最小核心點數的情況下,得到核心點集合並儲存下每個點的鄰接點 從核心點集中隨機選出點,開始分簇。將其鄰域點加入...

和 在python中使用

給定兩個大小為 m 和 n 的有序陣列 nums1 和 nums2。請你找出這兩個有序陣列的中位數,並且要求演算法的時間複雜度為 o log m n 你可以假設 nums1 和 nums2 不會同時為空。示例 1 nums1 1 3 nums2 2 則中位數是 2.0 示例 2 nums1 1 2 ...