Compartilhamento de tecnologia

Explorando a similaridade de dados: análise completa dos métodos de cálculo de similaridade no sklearn

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Explorando a similaridade de dados: análise completa dos métodos de cálculo de similaridade no sklearn

No mundo da ciência de dados e do aprendizado de máquina, calcular semelhanças entre pontos de dados é uma tarefa fundamental e crítica. O cálculo de similaridade pode nos ajudar a identificar padrões em dados, realizar análises de cluster, projetar sistemas de recomendação, etc. scikit-learn (abreviadamente sklearn), como uma biblioteca popular de aprendizado de máquina em Python, fornece uma variedade de métodos para calcular a similaridade de dados. Este artigo apresentará em detalhes o método usado para cálculo de similaridade no sklearn e fornecerá exemplos práticos de código.

1. A importância do cálculo de similaridade

O cálculo de similaridade tem aplicações importantes nos seguintes campos:

  • Análise de cluster: Agrupe pontos de dados semelhantes.
  • Sistema recomendado: recomende itens semelhantes com base nas preferências históricas do usuário.
  • detecção anormal: identifique valores discrepantes que não sejam semelhantes à maioria dos pontos de dados.
  • Identificação de imagem: Identifique o conteúdo da imagem comparando vetores de recursos.
2. Método de cálculo de similaridade no sklearn

sklearn fornece uma variedade de ferramentas e algoritmos para cálculo de similaridade. A seguir estão alguns métodos comumente usados:

2.1 Similaridade de cosseno

A similaridade de cosseno avalia a semelhança entre dois vetores medindo o ângulo entre eles.

from sklearn.metrics.pairwise import cosine_similarity

# 假设X是数据集
cosine_sim = cosine_similarity(X)
  • 1
  • 2
  • 3
  • 4
2.2 Distância euclidiana

A distância euclidiana é o método de medição de distância mais intuitivo, calculando a distância em linha reta entre dois pontos.

from sklearn.metrics.pairwise import euclidean_distances

# 假设X是数据集
distances = euclidean_distances(X)
# 计算相似度,通常使用1减去距离
similarity = 1 / (1 + distances)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
2.3 Distância de Manhattan

A distância de Manhattan (também chamada de distância do quarteirão) mede a soma das distâncias absolutas dos eixos de dois pontos em um sistema de coordenadas padrão.

from sklearn_extra.metrics import manhattan_distances

# 假设X是数据集
manhattan_dist = manhattan_distances(X)
# 转换为相似度
similarity = 1 / (1 + manhattan_dist)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
2.4 Coeficiente de similaridade de Jaccard

O coeficiente de similaridade de Jaccard é utilizado principalmente para medir a similaridade de dois conjuntos, com valor entre 0 e 1.

from sklearn.metrics import jaccard_score

# 假设X和Y是两个数据集
jaccard_sim = jaccard_score(X, Y, average='micro')
  • 1
  • 2
  • 3
  • 4
2.5 Coeficiente de correlação de Pearson

O coeficiente de correlação de Pearson é usado para medir a correlação linear entre dois conjuntos de dados.

from sklearn.metrics.pairwise import pearsonr

# 假设X和Y是两个数据集
correlation, _ = pearsonr(X[:, 0], Y[:, 0])
  • 1
  • 2
  • 3
  • 4
3. Exemplos de aplicação de cálculo de similaridade

Suponha que precisemos recomendar produtos que usuários semelhantes gostem com base no histórico de comportamento do usuário:

from sklearn.metrics.pairwise import cosine_similarity

# 假设user_behavior是一个DataFrame,记录了用户对商品的评分
user_behavior = ...

# 计算用户之间的相似度
user_similarity = cosine_similarity(user_behavior)

# 推荐系统可以根据相似度来推荐商品
# 例如,找出与目标用户相似度最高的用户喜欢的其他商品
similar_users = user_similarity[目标用户索引].argsort()[::-1]
recommended_products = 商品列表[similar_users[1]]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
4. Conclusão

O cálculo de similaridade é uma tecnologia básica em análise de dados e aprendizado de máquina, e o sklearn fornece uma variedade de métodos para fazer esse trabalho. Através deste artigo, aprendemos sobre os diferentes métodos de cálculo de similaridade no sklearn e fornecemos exemplos práticos de código.

O objetivo deste artigo é ajudar os leitores a compreender melhor os cálculos de similaridade e dominar os métodos de implementação dessas técnicas no sklearn. Espera-se que os leitores possam melhorar sua compreensão do cálculo de similaridade por meio deste artigo e aplicar efetivamente essas técnicas em projetos reais. À medida que a quantidade de dados continua a crescer, os cálculos de similaridade continuarão a desempenhar um papel importante no campo da ciência de dados.