#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 ...