Update presentatio add visualization

This commit is contained in:
Wojciech Jarmosz 2021-06-27 15:19:10 +02:00
parent fc010e1e86
commit e4ee6ebbb9
3 changed files with 37 additions and 14 deletions

BIN
convergance.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
inflation.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View File

@ -24,33 +24,56 @@
"metadata": {},
"source": [
"# Wstęp\n",
"W tym projekcie opiszemy i przedstawimy skuteczny algorytm grupowania oparty na grafach, zwany grupowaniem Markowa. Podobnie jak inne algorytmy klastrowania oparte na grafach i w przeciwieństwie do klastrowania K- średnich, algorytm ten nie wymaga wcześniejszej znajomości liczby klastrów. Algorytm ten jest bardzo popularny w klastrowaniu danych bioinformatycznych, w szczególności do klastrowania sekwencji białek i klastrowania genów. Algorytm ten nadaje się również do obliczeń rozproszonych "
"W tym projekcie opiszemy i przedstawimy skuteczny algorytm grupowania oparty na grafach, zwany grupowaniem Markowa. Podobnie jak inne algorytmy klastrowania oparte na grafach i w przeciwieństwie do klastrowania K- średnich, algorytm ten nie wymaga wcześniejszej znajomości liczby klastrów. Algorytm ten jest bardzo popularny w klastrowaniu danych bioinformatycznych, w szczególności do klastrowania sekwencji białek i klastrowania genów. Algorytm ten nadaje się również do obliczeń rozproszonych."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Zasada losowego spaceru\n",
"Ideą w MCL jest to, że jeśli zaczniesz losowo chodzić od węzła, jest bardziej prawdopodobne, że będziesz poruszać się w tym samym klastrze niż przecinać klastry. Dzieje się tak, ponieważ z definicji klastry są wewnętrznie gęste, a są oddzielone rzadkimi regionami. W grupowaniu grafów gęstość i rzadkość definiuje się jako proporcję szczelin krawędziowych, które mają w sobie krawędzie.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Jak możemy wykorzystać to zachowanie?\n",
"W tym momencie wprowadzimy łańcuchy Markowa. Rozważ, dla każdej pary węzłów u i v , P uv (k), prawdopodobieństwo rozpoczęcia od węzła u i zakończenia w węźle v po przejściu k kroków. P UV (1) jest łatwo obliczana: jest to tylko 1 podzielone przez u.\n",
"Teraz nadchodzi kluczowy punkt. Jeśli pomnożymy macierz P (1)= P przez samą siebie, otrzymamy P (2) = P ². Bardziej ogólnie, P (k) = P ^k.\n",
"Sugeruje to następującą procedurę. Inicjujemy P . Następnie obliczamy P (k) mnożąc P przez siebie k razy. (k wynosi zazwyczaj 2 lub 3.) Jeśli pewne prawdopodobieństwo przejścia P uv ( k ) jest szczególnie niskie, znacznie niższe niż P uv (1), kierujemy je dalej w kierunku 0. Sposobem na to jest uwzględnienie każdego prawdopodobieństwa w P (k), podnieś go do potęgi większej niż 1 i zrenormalizuj. W MCL proces ten nazywa się inflacją. Wzmacnia różnice tzn mocniejszy staje się bardziej i w odwrotną stronę. "
"## Spacery losowe\n",
"* Spacery losowe są podstawą algorytmu MCL.\n",
"* Poruszając się losowo od węzła do węzła, istnieje większe prawdopodobieństwo poruszania się wewnątrz klastru, niż przecinania klastrów. Dzieje się tak, ponieważ z definicji klastry są wewnętrznie gęste, a są oddzielone rzadkimi regionami. W grupowaniu grafów gęstość i rzadkość definiuje się jako proporcję szczelin krawędziowych, które mają w sobie krawędzie.\n",
"* Przeprowadzając spacery losowe, mamy większą szansę na znalezienie trendu gromadzenia się wierzchołków i definicji klastrów w grafie.\n",
"* Spacery losowe w grafie są obliczane za pomocą łańcuchów Markowa.\n",
"\n",
"## Algorytm MCL\n",
"* Korzystając z łańcuchów Markowa, rozważ dla każdej pary wezłów u i v prawdopodobieństwo rozpoczęcia od węzła u i zakończenia w węźle v po przejściu k kroków. Prawdopodobieństwo przejścia z u do v wynosi 1/u.\n",
"* Znormalizuj macierz do wartości w przedziale <0,1>\n",
"* Dla tak powstałej macierzy prawdopodobieństw P, obliczamy P(k) mnożąc P przez siebie k razy. (k wynosi zazwyczaj 2 lub 3). Dla początkowych potęg macierzy, poszczególne wagi połączeń będą większe w przypadku wierzchołków znajdujących się w obrębie klastra oraz niższe w przypadku połączeń pomiędzy klastrami.\n",
"* Wzmocnij obserwację z poprzedniego punktu stosując tzw. inflację z parametrem r, wpływa ona na \"ziarnistość\" klastrów.\n",
"<img src=\"inflation.png\" width=\"350\">\n",
"* Powtarzaj kroki 3 i 4 do momentu osiągnięcia ustalonego stanu (konwergancja) - suma wartości w pojedynczej kolumnie sumuje się do tej samej liczby, w praktyce taka własność zachodzi często ale nie zawsze.\n",
"<img src=\"convergance.png\" style=\"margin-top:10px\" width=\"440\">\n",
"* Zinterpretuj powstałą macierz w celu odkrycia klastrów. {1}, {2, 4}, {3}\n",
"\n",
"\n",
"\n",
"\n",
"\n"
]
},
{
"source": [],
"cell_type": "code",
"metadata": {},
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Wizualizacja przykładowych klastrów\n",
"![title](klaster1.png)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {