##DBSCAN
import numpy as np
import pandas as pd
from sklearn.cluster import DBSCAN
#1.导入数据
#data = pd.read_csv(’’)
#2.数据预处理
#略,最终生成x_train,x_test
x_train = np.array([[1, 2, 3], [1, 4, 6], [1, 0, 9], [4, 6, 1], [7, 8, 9], [4, 5, 6], [5, 1, 3], [5, 6, 2], [6, 2, 1]])
#3.模型训练
model = DBSCAN(eps=3, min_samples=2)
model.fit(x_train)
#4.模型预测
print(model.labels_)
#参数列表与调参方法
DBSCAN(eps=0.5, min_samples=5, metric=’euclidean’, metric_params=None, algorithm=’auto’, leaf_size=30, p=None, n_jobs=None)
#eps : float, optional
两个样本之间的最大距离,一个被认为是另一个样本的邻域。这不是群集中点的距离的最大界限。这是为您的数据集和距离函数选择适当的最重要的DBSCAN参数。
#min_samples : int,可选
对于要被视为核心对象的点,邻域中的样本数(或总权重)。这包括点本身。
#metric : string或callable
计算要素数组中实例之间距离时使用的度量标准。如果metric是字符串或可调用的,则它必须是sklearn.metrics.pairwise_distances其metric metric参数允许的选项之一。
如果度量是“预先计算的”,则假定X是距离矩阵,并且必须是正方形。X可以是稀疏矩阵,在这种情况下,只有“非零”元素可以被认为是DBSCAN的邻居。
#metric_params : dict, optional
度量函数的其他关键字参数。
#algorithm:{‘auto’,‘ball_tree’,‘kd_tree’,‘brute’},可选
NearestNeighbors模块用于计算逐点距离并找到最近邻居的算法。有关详细信息,请参阅NearestNeighbors模块文档。
#leaf_size : int,optional(默认值= 30)
叶子大小传递给BallTree或cKDTree。这可能会影响构造和查询的速度,以及存储树所需的内存。最佳值取决于问题的性质。
#p : float,可选
正确译法:用于计算点之间距离的Minkowski矩阵的幂。
#n_jobs : int或None,可选(默认=无)
要运行的并行作业数。 None除非在joblib.parallel_backend上下文中,否则表示1 。 -1表示使用所有处理器。