An open API service indexing awesome lists of open source software.

https://github.com/oemanuelfirmino/decidedistancemetric

Guia interativo para escolher a métrica de distância ideal em projetos de Machine Learning. Explicações claras, exemplos práticos e contextos de uso para cada métrica: Euclidiana, Manhattan, Minkowski, Coseno, Jaccard, Hamming, entre outras.
https://github.com/oemanuelfirmino/decidedistancemetric

applied-machine-learning linear-algebra machine-learning mathematical-programming vector-similarity

Last synced: 4 months ago
JSON representation

Guia interativo para escolher a métrica de distância ideal em projetos de Machine Learning. Explicações claras, exemplos práticos e contextos de uso para cada métrica: Euclidiana, Manhattan, Minkowski, Coseno, Jaccard, Hamming, entre outras.

Awesome Lists containing this project

README

          

# Decide Distance Metric

Bem-vindo ao repositório do **decideDistanceMetric**! Este projeto é um recurso educacional online, concebido como um guia abrangente para ajudar estudantes, desenvolvedores e entusiastas de ciência de dados a compreender e escolher a métrica de distância mais adequada para seus projetos de Machine Learning e análise de dados.

👉 Site oficial: [https://www.distancetools.site](https://www.distancetools.site)

---

## 🎯 Sobre o Projeto

A escolha da métrica de distância é um dos pilares em diversos algoritmos de Machine Learning, como:

* **K-Nearest Neighbors (KNN)**
* **K-Means Clustering**
* **Clustering Hierárquico**

Uma má escolha pode gerar resultados enviesados e não representativos. Este projeto busca desmistificar cada métrica com explicações claras, exemplos práticos e cenários de uso real.

---

## ✨ Funcionalidades

O projeto é um **site estático** com páginas dedicadas para cada métrica:

* **Distância Euclidiana**: Distância em linha reta entre dois pontos.
* **Distância de Manhattan**: Soma das diferenças absolutas entre coordenadas.
* **Distância de Minkowski**: Generalização das distâncias Euclidiana e Manhattan.
* **Distância de Chebyshev**: Maior diferença entre as coordenadas.
* **Distância Cosseno**: Mede o ângulo entre vetores (ótima para dados de alta dimensão).
* **Distância de Hamming**: Conta posições diferentes entre duas strings de mesmo tamanho.
* **Distância de Jaccard**: Dissimilaridade entre conjuntos.
* **Distância de Dice**: Similaridade entre conjuntos (variação da Jaccard).
* **Distância de Hellinger**: Comparação entre distribuições de probabilidade.
* **Distância de Mahalanobis**: Leva em conta correlação entre variáveis.
* **Distância de Correlação**: Baseada na correlação entre dois vetores.

---

## 📂 Estrutura do Repositório

```
/
├── index.html # Página principal com links para todas as métricas
├── *.html # Páginas individuais de cada métrica
├── privacyPolicy.html # Política de Privacidade
├── termsOfUse.html # Termos de Uso
├── parse_html_links.py # Extrator de links de todas as páginas HTML
├── check_extracted_links.py # Validador de links extraídos
├── extracted_links_*.txt # Arquivos gerados com os links de cada página
├── package.json # Dependências e scripts Node.js
├── nginx.conf # Configuração de deploy com Nginx
└── ...
```

---

## 🚀 Como Utilizar

### Visualização Local

Como o projeto é 100% estático (HTML, CSS, JS), você pode:

```bash
git clone https://github.com/oemanuelfirmino/decidedistancemetric.git
cd decidedistancemetric
# Abrir o arquivo index.html direto no navegador
```

### Rodando um Servidor Local (Opcional)

Se quiser uma experiência mais robusta:

```bash
# Python 3
python -m http.server 8000

# Depois acesse:
http://localhost:8000
```

---

## 🔧 Scripts Utilitários

* **parse\_html\_links.py**: Varre todos os arquivos HTML e extrai links (``), salvando em `.txt`.
* **check\_extracted\_links.py**: Faz requisições HTTP para verificar se os links extraídos estão válidos (status 200) ou quebrados.

---

## 🤝 Contribuições

Contribuições são **muito bem-vindas**!

Passo a passo:

1. Fork este repositório.
2. Crie uma nova branch:

```bash
git checkout -b feature/sua-feature
```

3. Faça suas alterações.
4. Commit com mensagem clara:

```bash
git commit -m "Adiciona nova feature"
```

5. Push para seu fork:

```bash
git push origin feature/sua-feature
```

6. Abra um **Pull Request**.

---

📌 **Nota:** Este projeto tem um viés educacional. Para ambientes de produção, é importante validar todas as métricas com dados reais e específicos do seu domínio.

---

**Autor:** Emanuel Firmino

**Licença:** MIT

**Última atualização:** Junho/2025