0
点赞
收藏
分享

微信扫一扫

机器学习中离散特征的聚类方法

半秋L 2022-03-30 阅读 64

有时候我们要对离散特征进行相似聚类,数据样例如下:

可以看到有很多非连续的特征,没法直接利用聚类的距离度量,因此这种状况计算类别有几种方式:

1. 图聚类,就是将特征转化为图中的一个点,然后跑图算法。

2. 先用文本距离算法(例如jaccard)计算好相似矩阵,再利用 sklearn dbscana的precomputd参数,先计算好相似矩阵,再进行聚类。

例如:

import numpy as np
from scipy.spatial.distance import pdist
from scipy.spatial.distance import squareform

# 计算各行数据相互之间的杰卡德距离
# A是一个向量矩阵:jaccard代表杰卡德距离
distA=pdist(df.iloc[:,1:].values, metric='jaccard')
# 将distA数组变成一个矩阵
distB = squareform(distA)
print(distB)

#将已经预训练的相似距离矩阵输入dbscan
from sklearn.cluster import DBSCAN
db = DBSCAN(eps=0.6, metric='precomputed', min_samples=2).fit(distB)

#查看分类结果
from collections import Counter
Counter(db.labels_)
举报

相关推荐

0 条评论