Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

modifica muitos dos últimos arquivos commitados, são detalhes mínimos… #62

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ si, ou não estejam relacionados com os outros grupos.

- **Links**:
- [Documentação do scikit learn sobre Clustering](https://scikit-learn.org/stable/modules/clustering.html)
- [Slides de uma aula sobre Clustering](https://cs.wmich.edu/alfuqaha/summer14/cs6530/lectures/ClusteringAnalysis.pdf)
- [Aula de Clustering Analysis](https://cs.wmich.edu/alfuqaha/summer14/cs6530/lectures/ClusteringAnalysis.pdf)


---
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@

- No notebook CDA, foi feito uma análise demonstrando o poder da técnica. Foram criados dados aleatórios: 1000 pontos de 2 dimensões e o objetivo era chegar em uma dimensão. Aplicando o algoritmo, o erro ficou cerca de 1100 no final das iterações. Um erro grande pois os dados não possuem dimensão intrínseca igual a um. Mudando a segunda dimensão para o cosseno da primeira, i.e., tornando a segunda variável uma função não linear da primeira, e aplicando o algoritmo novamente, obtemos um erro de 4.7e-11, um erro extremamente baixo.

- **Links**:
- [Curvilinear Distance Analysis - UCL Neural Networks Group](https://www.elen.ucl.ac.be/neural-nets/Research/CDA/CDA.htm#:~:text=Curvilinear%20Distance%20Analysis,in%20the%20Sammon%2FCCA%20family.&text=The%20curvilinear%20distance%20di,object%2C%20like%20the%20Euclidean%20distance.)
---
**Grupo Turing**
Grupo de Extensão da Universidade de São Paulo (USP)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

- **Links**:
- [Documentação do scikit learn sobre o algoritmo](https://scikit-learn.org/stable/modules/manifold.html#isomap)
- [Paper do Simpósio Europeu de Redes Neurais Aritificiais: Curvilinear Distance Analysis versus Isomap](https://perso.uclouvain.be/michel.verleysen/papers/esann02jl.pdf)


---
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,14 @@
# Graph Distance

- **Resumo**:
As técnicas de redução de dimensionalidade baseadas em preservação de distância conseguem realizar sua tarefa com uma precisão considerável. O problema é que, em pontos com uma estrutura geométrica com muitas curvas (senoidais, por exemplo) podem apresentar falha por causa da distância euclidiana. Para evitar que a distância euclidiana falhe nessa tarefa, é necessário realizar uma mudança: utilizar distância “geométrica”, ou seja, seguindo a geometria dos dados. Como não sabemos como é essa tal geometria, faremos o que é chamado de distância de grafos.
As técnicas de redução de dimensionalidade baseadas em preservação de distância conseguem realizar sua tarefa com uma precisão considerável. Entretanto, em pontos com uma estrutura geométrica com muitas curvas (senoidais, por exemplo) podem apresentar falha por causa da distância euclidiana. Para evitar que a distância euclidiana falhe nessa tarefa, é necessário realizar uma mudança: utilizar distância “geométrica”, ou seja, seguindo a geometria dos dados. Como não sabemos como é essa tal geometria, faremos o que é chamado de distância de grafos.

Um grafo é uma estrutura que apresenta dois tipos de objeto: vértices e arestas. Vértices serão nossos pontos, e as arestas serão as distâncias dos vizinhos desses pontos. Os vizinhos de cada ponto são determinado por uma regra entre duas: pela método K ou ε. O método K seleciona os K pontos mais próximo para serem os vizinhos. O método ε seleciona todos os pontos com uma distância menor que ε para serem os vizinhos.

- **Links**:
- [Explicação Wolfram](https://mathworld.wolfram.com/GraphDistance.html)
- [Distance between two graphs](http://www.xavierdupre.fr/app/mlstatpy/helpsphinx/c_graph/graph_distance.html)



---
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,18 @@
# Multidimensional Scaling

- **Resumo**:
Multidimensional Scaling (MDS) é um modelo linear semelhante ao PCA (Principal Component Analysis) mas que busca preservar a distância entre os pontos, em vez da variância. Também é um método linear de Redução de Dimensionalidade que preserva a distância entre os pontos. Ele tenta encontrar uma matriz que relaciona os dados iniciais com os dados de dimensão reduzida. Existem duas formas do algoritmo funcionar: a primeira é fornecendo os pontos diretamente, a segunda é fornecendo somente as distâncias entre os pontos, sem conhecer os pontos (somente o primeiro método foi feito no Notebook).
MDS é um modelo linear semelhante ao PCA mas que busca preservar a distância entre os pontos, em vez da variância.

- **Teoria**:
Multidimensional Scaling (MDS) é um método linear de Redução de Dimensionalidade que preserva a distância entre os pontos. Ele tenta encontrar uma matriz que relaciona os dados iniciais com os dados de dimensão reduzida. Existem duas formas do algoritmo funcionar: a primeira é fornecendo os pontos diretamente, a segunda é fornecendo somente as distâncias entre os pontos, sem conhecer os pontos (somente o primeiro método foi feito no Notebook).

Ele é um método simples e robusto como PCA, e possui as mesmas limitações.


- **Links**:
- [Documentação do scikit learn sobre o algoritmo](https://scikit-learn.org/stable/modules/manifold.html#multidimensional-scaling)
- [The Multidimensional Scaling (MDS) algorithm for dimensionality reduction](https://medium.com/datadriveninvestor/the-multidimensional-scaling-mds-algorithm-for-dimensionality-reduction-9211f7fa5345)



---
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@
- **Resumo**:
Teoria: Sammon’s nonlinear mapping (NLM) é um método que busca mapear dados de dimensão elevada (D) para uma representação de baixa dimensão (P). Sua complexidade de espaço é O(N²), enquanto que para tempo é O(N²P) por iteração. Embora ele faça esse mapeamento, ele não produz um modelo generativo, i.e. ele não consegue generalizar o mapeamento para novos pontos. Porém seus resultados são interessantes: ele possui um comportamento não linear (consegue ser mais eficiente que MDS) e possui resultados ótimos para dados não muito complexos.

- **Links**:
- [Non-linear mapping for exploratory data analysis in functional genomics](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC548129/)

---
**Grupo Turing**
Grupo de Extensão da Universidade de São Paulo (USP)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,44 @@
<img src="https://i.ibb.co/DtHQ3FG/802x265-Logo-GT.png" width="500">


## Grupo Turing
# Dimensional Reduction


- **Resumo**:
A tarefa dos algoritmos para Redução de Dimensionalidade é encontrar relações entre as variáveis do seu banco de dados, podendo assim diminuir o número de variáveis do problema. O algoritmo mais conhecido é o PCA.

- **Teoria**:
A análise de dados de grande dimensão busca identificar e eliminar redundâncias e, para isso, deve-se utilizar métodos/técnicas capazes de:

* Estimar o número de variáveis ocultas.

* Criar uma nova representação dos dados a fim de reduzir sua dimensão

* Criar uma nova representação dos dados a fim de recuperar variáveis ocultas.

Os algoritmos existentes para redução de dimensão atendem um ou dois itens dessa lista, nenhum consegue cumprir todos. Devido a tal limitação, costuma-se a utilizar dois ou três métodos combinados para tentar cumpri-los.
Cada técnica/método também possui algumas características que possuem um papel significante:

* O modelo assumido dos dados.
* O tipo de algoritmo que identifica os parâmetros do modelo.
* A critéria a ser otimizada, que guia o algoritmo.

Vamos falar sobre os critérios. O critério talvez mais importante é o erro de construção, como segue abaixo:


<img src="https://imgur.com/TNOpiAS.png" width="500">

Onde que E{ } é o operador Esperança e dec e cod são funções de decodificação e codificação, respectivamente, definidas como:

<img src="https://imgur.com/TyvsMzk.png" width="500">


Existem outros critérios, como o estatístico, que procura alguma projeção que preserve a variância observada inicialmente nos dados brutos. Se o objetivo for separar as variáveis ocultas, o critério pode ser a descorrelação; se o objetivo for preservar sua estrutura, a projeção deve manter as distâncias medidas no dados inicialmente.




- **Links**:
- [Documentação so scikit learn sobre algoritmos de Dimensional Reduction](https://scikit-learn.org/stable/modules/unsupervised_reduction.html)
- ["A beginner’s guide to dimensionality reduction in Machine Learning"](https://towardsdatascience.com/dimensionality-reduction-for-machine-learning-80a46c2ebb7e)
Expand Down