Update presentatio add visualization
This commit is contained in:
parent
fc010e1e86
commit
e4ee6ebbb9
BIN
convergance.png
Normal file
BIN
convergance.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 20 KiB |
BIN
inflation.png
Normal file
BIN
inflation.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 26 KiB |
@ -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": {
|
||||
@ -74,4 +97,4 @@
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 4
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user