prentations
This commit is contained in:
parent
464ea978f7
commit
fc010e1e86
BIN
klaster1.png
Normal file
BIN
klaster1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
@ -342,6 +342,7 @@
|
||||
"import sys\n",
|
||||
"import numpy as np\n",
|
||||
"\n",
|
||||
"#rusujemy grafy\n",
|
||||
"def draw(G, A, cluster_map):\n",
|
||||
"\n",
|
||||
" graph = nx.Graph(G)\n",
|
||||
@ -359,10 +360,12 @@
|
||||
" show(block=False)\n",
|
||||
"\n",
|
||||
"def normalize(A):\n",
|
||||
" #Normalizujemy kolumny macierzy \n",
|
||||
"# Normalize the columns of the given matrix\n",
|
||||
" return sklearn.preprocessing.normalize(A, norm=\"l1\", axis=0)\n",
|
||||
"\n",
|
||||
"def inflate(A, inflate_factor):\n",
|
||||
" #Podnosimy każdy element macierzy do potęgi\n",
|
||||
"# Apply cluster inflation to the given matrix by raising each element to the given power.\n",
|
||||
" return normalize(np.power(A, inflate_factor))\n",
|
||||
"\n",
|
||||
|
77
presentation.ipynb
Normal file
77
presentation.ipynb
Normal file
@ -0,0 +1,77 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Przygotowali\n",
|
||||
"Wojciech Jarmosz <br>\n",
|
||||
"Michał Kubiak <br>\n",
|
||||
"Przemysław Owczarczyk"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Temat:\n",
|
||||
"Spacery losowe po grafach: algorytm wyszukiwania klastrów.\n",
|
||||
"Dla dużych grafów istotną informacją jest wykrycie podgrafów, które są silnie ze sobą powiązane. Za pomocą spacerów losowych po grafach zaprojektuj algorytm, który odkrywa strukturę klastrów w grafie (clustering algorithm). Wykorzystaj swój algorytm do wskazania krytycznych wierzchołków, tj. wierzchołków, których usunięcie rozspójnia graf. Przeanalizuj wariant algorytmu dla grafów skierowanych i grafów nieskierowanych.\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"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 "
|
||||
]
|
||||
},
|
||||
{
|
||||
"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ę. "
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"![title](klaster1.png)"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.8.5"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 4
|
||||
}
|
Loading…
Reference in New Issue
Block a user