diff --git a/Bayes.ipynb b/Bayes.ipynb
index a5bf3ac..81f4260 100644
--- a/Bayes.ipynb
+++ b/Bayes.ipynb
@@ -4,97 +4,29 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "# Klasyfikacja za pomocą naiwnej metody bayesowskiej (rozkłady ciągłe)\n",
- "Zasady zaliczenia: 40 punktów podzielone następująco:\n",
- "- 10 pkt - prezentacja projektu\n",
- "- 15 pkt - implementacja, w tym:\n",
- "- 5 pkt - zgodność z tematem,\n",
- "- 5 pkt - jakość kodu,\n",
- "- 5 pkt - poprawność implementacji\n",
- "- 10 pkt - efekt \"wow\"\n",
- "- 5 pkt - aktywność wszystkich członków grupy\n",
- "\n",
- "Klasyfikacja za pomocą naiwnej metody bayesowskiej (rozkłady ciągłe). Implementacja powinna założyć, że cechy są ciągłe (do wyboru rozkład normalny i jądrowe wygładzenie). Na wejściu oczekiwany jest zbiór, który zawiera p-cech ciągłych, wektor etykiet oraz wektor prawdopodobieństw a priori dla klas. Na wyjściu otrzymujemy prognozowane etykiety oraz prawdopodobieństwa a posteriori. Dodatkową wartością może być wizualizacja obszarów decyzyjnych w przypadku dwóch cech.\n",
- "\n",
- "```Termin oddania na Moodle: do 31 maja. Prezentacja projektów 1 czerwca na ćwiczeniach.```"
+ "# Klasyfikacja za pomocą naiwnej metody bayesowskiej (rozkłady ciągłe)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Skład grupy:\n",
+ "- Nowak Ania,\n",
+ "- Łaźna Patrycja,\n",
+ "- Bregier Damian"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Collecting pandas==1.2.4\n",
- " Using cached pandas-1.2.4-cp38-cp38-win_amd64.whl (9.3 MB)\n",
- "Requirement already satisfied: python-dateutil>=2.7.3 in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas==1.2.4) (2.8.1)\n",
- "Requirement already satisfied: numpy>=1.16.5 in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas==1.2.4) (1.19.2)\n",
- "Requirement already satisfied: pytz>=2017.3 in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas==1.2.4) (2020.1)\n",
- "Requirement already satisfied: six>=1.5 in c:\\programdata\\anaconda3\\lib\\site-packages (from python-dateutil>=2.7.3->pandas==1.2.4) (1.15.0)\n",
- "Installing collected packages: pandas\n",
- " Attempting uninstall: pandas\n",
- " Found existing installation: pandas 1.1.3\n",
- " Uninstalling pandas-1.1.3:\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "ERROR: Could not install packages due to an EnvironmentError: [WinError 5] Odmowa dostępu: 'c:\\\\programdata\\\\anaconda3\\\\lib\\\\site-packages\\\\pandas-1.1.3.dist-info\\\\direct_url.json'\n",
- "Consider using the `--user` option or check the permissions.\n",
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Collecting numpy==1.20.3\n",
- " Using cached numpy-1.20.3-cp38-cp38-win_amd64.whl (13.7 MB)\n",
- "Installing collected packages: numpy\n",
- " Attempting uninstall: numpy\n",
- " Found existing installation: numpy 1.19.2\n",
- " Uninstalling numpy-1.19.2:\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "ERROR: Could not install packages due to an EnvironmentError: [WinError 5] Odmowa dostępu: 'c:\\\\programdata\\\\anaconda3\\\\lib\\\\site-packages\\\\numpy-1.19.2.dist-info\\\\direct_url.json'\n",
- "Consider using the `--user` option or check the permissions.\n",
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Requirement already satisfied: sklearn==0.0 in c:\\programdata\\anaconda3\\lib\\site-packages (0.0)\n",
- "Requirement already satisfied: scikit-learn in c:\\users\\ania\\appdata\\roaming\\python\\python38\\site-packages (from sklearn==0.0) (0.24.2)\n",
- "Requirement already satisfied: numpy>=1.13.3 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn==0.0) (1.19.2)\n",
- "Requirement already satisfied: threadpoolctl>=2.0.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn==0.0) (2.1.0)\n",
- "Requirement already satisfied: joblib>=0.11 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn==0.0) (0.17.0)\n",
- "Requirement already satisfied: scipy>=0.19.1 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn==0.0) (1.5.2)\n"
- ]
- }
- ],
- "source": [
- "!pip install pandas==1.2.4\n",
- "!pip install numpy==1.20.3\n",
- "!pip install sklearn==0.0"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {},
"outputs": [],
"source": [
+ "#!pip install pandas==1.2.4\n",
+ "#!pip install numpy==1.20.3\n",
+ "#!pip install sklearn==0.0\n",
+ "\n",
"from sklearn.model_selection import train_test_split\n",
"import pandas as pd\n",
"import numpy as np\n",
@@ -110,16 +42,36 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "## Wczytywanie i normalizacja danych"
+ "# 0. Podstawowe informacje o zbiorze danych"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "W projekcie wykorzystany został GTZAN Dataset poruszający problem wieloklasowej klasyfikacji danych na przykładzie gatunków muzycznych. Zbiór ten składa się z 10 gatunków obejmujacych: blues, muzykę klasyczną, country, disco, hip-hop, jazz, pop, reggae oraz rock. Każdy ze wspomnianych gatunków jest reprezentowany przez 100 plików audio o długości 30 sekund, a same próbki były zbierane w latach 2000-2001 ze zdyfersyfikowanych źródeł obejmujących: stacje radiowe, prywatne płyty CD oraz nagrania własne.\n",
+ "\n",
+ "Zbiór danych jest niezwykle bogaty i rozbudowany, ponieważ do każdego utworu zostało przypisanych 60 unikalnych parametrów. Parametry te obejmują takie dane jak: długość utworu, etykietę z nazwą gatunku, tempo, harmoniczność, variancję czy częstotliwość melodyczną (MFCC).\n",
+ "\n",
+ "Dokładne dane na temat tego zbioru danych można znaleźć pod adresem: https://www.kaggle.com/andradaolteanu/gtzan-dataset-music-genre-classification\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# 1. Wczytywanie i normalizacja danych"
]
},
{
"cell_type": "code",
- "execution_count": 3,
+ "execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
- "# Stałe\n",
+ "# Słownik zawierający 10 gatunków muzycznych, które zostały sparowane z\n",
+ "# odpowiadającymi im wartościami numerycznymi\n",
"genre_dict = {\n",
" \"blues\" : 1,\n",
" \"classical\" : 2,\n",
@@ -132,20 +84,21 @@
" \"reggae\" : 9,\n",
" \"rock\" : 10\n",
"}\n",
+ "# nazwa pliku w którym umieszczane są parametry po wstępnym przetworzeniu\n",
"filename = 'music_genre.csv'\n",
"model_path = 'model.model'"
]
},
{
"cell_type": "code",
- "execution_count": 4,
+ "execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
- "Loading prepared data...\n"
+ "Preparing data...\n"
]
},
{
@@ -180,7 +133,6 @@
"
spectral_bandwidth_var | \n",
" rolloff_mean | \n",
" ... | \n",
- " mfcc16_mean | \n",
" mfcc16_var | \n",
" mfcc17_mean | \n",
" mfcc17_var | \n",
@@ -190,6 +142,7 @@
" mfcc19_var | \n",
" mfcc20_mean | \n",
" mfcc20_var | \n",
+ " label | \n",
" \n",
" \n",
" \n",
@@ -206,7 +159,6 @@
" 85882.761315 | \n",
" 3805.839606 | \n",
" ... | \n",
- " 0.752740 | \n",
" 52.420910 | \n",
" -1.690215 | \n",
" 36.524071 | \n",
@@ -216,6 +168,7 @@
" 55.062923 | \n",
" 1.221291 | \n",
" 46.936035 | \n",
+ " blues | \n",
" \n",
" \n",
" 1 | \n",
@@ -230,7 +183,6 @@
" 213843.755497 | \n",
" 3550.522098 | \n",
" ... | \n",
- " 0.927998 | \n",
" 55.356403 | \n",
" -0.731125 | \n",
" 60.314529 | \n",
@@ -240,6 +192,7 @@
" 51.106190 | \n",
" 0.531217 | \n",
" 45.786282 | \n",
+ " blues | \n",
"
\n",
" \n",
" 2 | \n",
@@ -254,7 +207,6 @@
" 76254.192257 | \n",
" 3042.260232 | \n",
" ... | \n",
- " 2.451690 | \n",
" 40.598766 | \n",
" -7.729093 | \n",
" 47.639427 | \n",
@@ -264,6 +216,7 @@
" 46.639660 | \n",
" -2.231258 | \n",
" 30.573025 | \n",
+ " blues | \n",
"
\n",
" \n",
" 3 | \n",
@@ -278,7 +231,6 @@
" 166441.494769 | \n",
" 2184.745799 | \n",
" ... | \n",
- " 0.780874 | \n",
" 44.427753 | \n",
" -3.319597 | \n",
" 50.206673 | \n",
@@ -288,6 +240,7 @@
" 37.259739 | \n",
" -3.407448 | \n",
" 31.949339 | \n",
+ " blues | \n",
"
\n",
" \n",
" 4 | \n",
@@ -302,7 +255,6 @@
" 88445.209036 | \n",
" 3579.757627 | \n",
" ... | \n",
- " -4.520576 | \n",
" 86.099236 | \n",
" -5.454034 | \n",
" 75.269707 | \n",
@@ -312,6 +264,7 @@
" 62.910812 | \n",
" -11.703234 | \n",
" 55.195160 | \n",
+ " blues | \n",
"
\n",
" \n",
" 5 | \n",
@@ -326,7 +279,6 @@
" 201910.508633 | \n",
" 3481.517592 | \n",
" ... | \n",
- " -5.576589 | \n",
" 72.549225 | \n",
" -1.838263 | \n",
" 68.702026 | \n",
@@ -336,6 +288,7 @@
" 39.808784 | \n",
" -8.109991 | \n",
" 46.311005 | \n",
+ " blues | \n",
"
\n",
" \n",
" 6 | \n",
@@ -350,7 +303,6 @@
" 185023.239545 | \n",
" 2795.610963 | \n",
" ... | \n",
- " -10.068051 | \n",
" 83.248245 | \n",
" -10.913176 | \n",
" 56.902153 | \n",
@@ -360,6 +312,7 @@
" 48.235741 | \n",
" -6.483466 | \n",
" 70.170364 | \n",
+ " blues | \n",
"
\n",
" \n",
" 7 | \n",
@@ -374,7 +327,6 @@
" 168211.938804 | \n",
" 2954.836760 | \n",
" ... | \n",
- " -8.426083 | \n",
" 70.438438 | \n",
" -10.568935 | \n",
" 52.090893 | \n",
@@ -384,6 +336,7 @@
" 65.547516 | \n",
" -8.630722 | \n",
" 56.401436 | \n",
+ " blues | \n",
"
\n",
" \n",
" 8 | \n",
@@ -398,7 +351,6 @@
" 105542.718193 | \n",
" 3782.316288 | \n",
" ... | \n",
- " -1.452559 | \n",
" 50.563751 | \n",
" -7.041824 | \n",
" 28.894934 | \n",
@@ -408,6 +360,7 @@
" 33.698597 | \n",
" -2.715692 | \n",
" 36.418430 | \n",
+ " blues | \n",
"
\n",
" \n",
" 9 | \n",
@@ -422,7 +375,6 @@
" 114070.112591 | \n",
" 3943.490565 | \n",
" ... | \n",
- " -1.179920 | \n",
" 59.314602 | \n",
" -1.916804 | \n",
" 58.418438 | \n",
@@ -432,10 +384,11 @@
" 77.082222 | \n",
" -4.235203 | \n",
" 91.468811 | \n",
+ " blues | \n",
"
\n",
" \n",
"\n",
- "10 rows × 58 columns
\n",
+ "10 rows × 59 columns
\n",
""
],
"text/plain": [
@@ -463,50 +416,80 @@
"8 1719.368948 1.632828e+05 2031.740381 \n",
"9 1817.150863 2.982361e+05 1973.773306 \n",
"\n",
- " spectral_bandwidth_var rolloff_mean ... mfcc16_mean mfcc16_var \\\n",
- "0 85882.761315 3805.839606 ... 0.752740 52.420910 \n",
- "1 213843.755497 3550.522098 ... 0.927998 55.356403 \n",
- "2 76254.192257 3042.260232 ... 2.451690 40.598766 \n",
- "3 166441.494769 2184.745799 ... 0.780874 44.427753 \n",
- "4 88445.209036 3579.757627 ... -4.520576 86.099236 \n",
- "5 201910.508633 3481.517592 ... -5.576589 72.549225 \n",
- "6 185023.239545 2795.610963 ... -10.068051 83.248245 \n",
- "7 168211.938804 2954.836760 ... -8.426083 70.438438 \n",
- "8 105542.718193 3782.316288 ... -1.452559 50.563751 \n",
- "9 114070.112591 3943.490565 ... -1.179920 59.314602 \n",
+ " spectral_bandwidth_var rolloff_mean ... mfcc16_var mfcc17_mean \\\n",
+ "0 85882.761315 3805.839606 ... 52.420910 -1.690215 \n",
+ "1 213843.755497 3550.522098 ... 55.356403 -0.731125 \n",
+ "2 76254.192257 3042.260232 ... 40.598766 -7.729093 \n",
+ "3 166441.494769 2184.745799 ... 44.427753 -3.319597 \n",
+ "4 88445.209036 3579.757627 ... 86.099236 -5.454034 \n",
+ "5 201910.508633 3481.517592 ... 72.549225 -1.838263 \n",
+ "6 185023.239545 2795.610963 ... 83.248245 -10.913176 \n",
+ "7 168211.938804 2954.836760 ... 70.438438 -10.568935 \n",
+ "8 105542.718193 3782.316288 ... 50.563751 -7.041824 \n",
+ "9 114070.112591 3943.490565 ... 59.314602 -1.916804 \n",
"\n",
- " mfcc17_mean mfcc17_var mfcc18_mean mfcc18_var mfcc19_mean mfcc19_var \\\n",
- "0 -1.690215 36.524071 -0.408979 41.597103 -2.303523 55.062923 \n",
- "1 -0.731125 60.314529 0.295073 48.120598 -0.283518 51.106190 \n",
- "2 -7.729093 47.639427 -1.816407 52.382141 -3.439720 46.639660 \n",
- "3 -3.319597 50.206673 0.636965 37.319130 -0.619121 37.259739 \n",
- "4 -5.454034 75.269707 -0.916874 53.613918 -4.404827 62.910812 \n",
- "5 -1.838263 68.702026 -2.783800 42.447453 -3.047909 39.808784 \n",
- "6 -10.913176 56.902153 -6.971336 38.231800 -3.436505 48.235741 \n",
- "7 -10.568935 52.090893 -10.784515 60.461330 -4.690678 65.547516 \n",
- "8 -7.041824 28.894934 2.695248 36.889568 3.412305 33.698597 \n",
- "9 -1.916804 58.418438 -2.292661 83.205231 2.881967 77.082222 \n",
+ " mfcc17_var mfcc18_mean mfcc18_var mfcc19_mean mfcc19_var mfcc20_mean \\\n",
+ "0 36.524071 -0.408979 41.597103 -2.303523 55.062923 1.221291 \n",
+ "1 60.314529 0.295073 48.120598 -0.283518 51.106190 0.531217 \n",
+ "2 47.639427 -1.816407 52.382141 -3.439720 46.639660 -2.231258 \n",
+ "3 50.206673 0.636965 37.319130 -0.619121 37.259739 -3.407448 \n",
+ "4 75.269707 -0.916874 53.613918 -4.404827 62.910812 -11.703234 \n",
+ "5 68.702026 -2.783800 42.447453 -3.047909 39.808784 -8.109991 \n",
+ "6 56.902153 -6.971336 38.231800 -3.436505 48.235741 -6.483466 \n",
+ "7 52.090893 -10.784515 60.461330 -4.690678 65.547516 -8.630722 \n",
+ "8 28.894934 2.695248 36.889568 3.412305 33.698597 -2.715692 \n",
+ "9 58.418438 -2.292661 83.205231 2.881967 77.082222 -4.235203 \n",
"\n",
- " mfcc20_mean mfcc20_var \n",
- "0 1.221291 46.936035 \n",
- "1 0.531217 45.786282 \n",
- "2 -2.231258 30.573025 \n",
- "3 -3.407448 31.949339 \n",
- "4 -11.703234 55.195160 \n",
- "5 -8.109991 46.311005 \n",
- "6 -6.483466 70.170364 \n",
- "7 -8.630722 56.401436 \n",
- "8 -2.715692 36.418430 \n",
- "9 -4.235203 91.468811 \n",
+ " mfcc20_var label \n",
+ "0 46.936035 blues \n",
+ "1 45.786282 blues \n",
+ "2 30.573025 blues \n",
+ "3 31.949339 blues \n",
+ "4 55.195160 blues \n",
+ "5 46.311005 blues \n",
+ "6 70.170364 blues \n",
+ "7 56.401436 blues \n",
+ "8 36.418430 blues \n",
+ "9 91.468811 blues \n",
"\n",
- "[10 rows x 58 columns]"
+ "[10 rows x 59 columns]"
]
},
"metadata": {},
"output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/plain": [
+ "Index(['genre', 'chroma_stft_mean', 'chroma_stft_var', 'rms_mean', 'rms_var',\n",
+ " 'spectral_centroid_mean', 'spectral_centroid_var',\n",
+ " 'spectral_bandwidth_mean', 'spectral_bandwidth_var', 'rolloff_mean',\n",
+ " 'rolloff_var', 'zero_crossing_rate_mean', 'zero_crossing_rate_var',\n",
+ " 'harmony_mean', 'harmony_var', 'perceptr_mean', 'perceptr_var', 'tempo',\n",
+ " 'mfcc1_mean', 'mfcc1_var', 'mfcc2_mean', 'mfcc2_var', 'mfcc3_mean',\n",
+ " 'mfcc3_var', 'mfcc4_mean', 'mfcc4_var', 'mfcc5_mean', 'mfcc5_var',\n",
+ " 'mfcc6_mean', 'mfcc6_var', 'mfcc7_mean', 'mfcc7_var', 'mfcc8_mean',\n",
+ " 'mfcc8_var', 'mfcc9_mean', 'mfcc9_var', 'mfcc10_mean', 'mfcc10_var',\n",
+ " 'mfcc11_mean', 'mfcc11_var', 'mfcc12_mean', 'mfcc12_var', 'mfcc13_mean',\n",
+ " 'mfcc13_var', 'mfcc14_mean', 'mfcc14_var', 'mfcc15_mean', 'mfcc15_var',\n",
+ " 'mfcc16_mean', 'mfcc16_var', 'mfcc17_mean', 'mfcc17_var', 'mfcc18_mean',\n",
+ " 'mfcc18_var', 'mfcc19_mean', 'mfcc19_var', 'mfcc20_mean', 'mfcc20_var',\n",
+ " 'label'],\n",
+ " dtype='object')"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
}
],
"source": [
+ "# skrypt ten realizuje dwie podstawowe funkcje\n",
+ "# 1) sprawdza czy plik music_genre.csv istnieje i jeżeli tak to wczytuje go\n",
+ "# 2) w przeciwnym przypadku dokonuje preprocessingu danych w ramach którego\n",
+ "# gatunki zamieniane są na wartości licznowe, a wartości takie jak nazwa \n",
+ "# pliku, etykieta czy długość są usuwane\n",
+ " \n",
"if os.path.isfile(filename):\n",
" print(\"Loading prepared data...\")\n",
" data = pd.read_csv(filename)\n",
@@ -515,21 +498,23 @@
" data = pd.read_csv('music_genre_raw.csv')\n",
" column = data[\"label\"].apply(lambda x: genre_dict[x])\n",
" data.insert(0, 'genre', column, 'int')\n",
- " data = data.drop(columns=['filename', 'label', 'length'])\n",
+ " data = data.drop(columns=['filename', 'length'])\n",
" data.to_csv(filename, index=False)\n",
- "display(data.head(10))"
+ "display(data.head(10))\n",
+ "\n",
+ "data.columns"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "### Podział danych na zbiory train i test"
+ "# 2. Podział danych na zbiory: uczący i testowy"
]
},
{
"cell_type": "code",
- "execution_count": 5,
+ "execution_count": 4,
"metadata": {
"scrolled": true
},
@@ -566,7 +551,6 @@
" rolloff_mean | \n",
" rolloff_var | \n",
" ... | \n",
- " mfcc16_mean | \n",
" mfcc16_var | \n",
" mfcc17_mean | \n",
" mfcc17_var | \n",
@@ -576,6 +560,7 @@
" mfcc19_var | \n",
" mfcc20_mean | \n",
" mfcc20_var | \n",
+ " label | \n",
" \n",
" \n",
" \n",
@@ -592,7 +577,6 @@
" 6670.863091 | \n",
" 3.556853e+05 | \n",
" ... | \n",
- " 8.023183 | \n",
" 37.339474 | \n",
" -8.121326 | \n",
" 33.968277 | \n",
@@ -602,6 +586,7 @@
" 35.162354 | \n",
" 3.192656 | \n",
" 36.478157 | \n",
+ " metal | \n",
" \n",
" \n",
" 500 | \n",
@@ -616,7 +601,6 @@
" 2799.283099 | \n",
" 2.685679e+06 | \n",
" ... | \n",
- " -1.957420 | \n",
" 50.311016 | \n",
" -1.503434 | \n",
" 41.141155 | \n",
@@ -626,6 +610,7 @@
" 50.006485 | \n",
" -3.353825 | \n",
" 49.906403 | \n",
+ " jazz | \n",
"
\n",
" \n",
" 332 | \n",
@@ -640,7 +625,6 @@
" 4958.057490 | \n",
" 2.650020e+06 | \n",
" ... | \n",
- " 0.122951 | \n",
" 78.892769 | \n",
" -1.054999 | \n",
" 79.877068 | \n",
@@ -650,6 +634,7 @@
" 75.059898 | \n",
" -5.256925 | \n",
" 120.275269 | \n",
+ " disco | \n",
"
\n",
" \n",
" 979 | \n",
@@ -664,7 +649,6 @@
" 4479.264304 | \n",
" 9.787046e+05 | \n",
" ... | \n",
- " -0.621152 | \n",
" 37.060532 | \n",
" -13.479134 | \n",
" 50.848667 | \n",
@@ -674,6 +658,7 @@
" 56.781952 | \n",
" 1.085497 | \n",
" 54.243389 | \n",
+ " rock | \n",
"
\n",
" \n",
" 817 | \n",
@@ -688,7 +673,6 @@
" 3777.969679 | \n",
" 2.632339e+06 | \n",
" ... | \n",
- " 3.633915 | \n",
" 64.068756 | \n",
" -2.219202 | \n",
" 99.249870 | \n",
@@ -698,6 +682,7 @@
" 62.661850 | \n",
" -2.923168 | \n",
" 67.490440 | \n",
+ " reggae | \n",
"
\n",
" \n",
" 620 | \n",
@@ -712,7 +697,6 @@
" 5358.261979 | \n",
" 5.918222e+05 | \n",
" ... | \n",
- " 5.089191 | \n",
" 27.937113 | \n",
" -10.676390 | \n",
" 26.519361 | \n",
@@ -722,6 +706,7 @@
" 24.334734 | \n",
" 3.255899 | \n",
" 25.199259 | \n",
+ " metal | \n",
"
\n",
" \n",
" 814 | \n",
@@ -736,7 +721,6 @@
" 3790.901258 | \n",
" 4.734865e+06 | \n",
" ... | \n",
- " 3.066329 | \n",
" 66.090370 | \n",
" -4.590122 | \n",
" 72.595345 | \n",
@@ -746,6 +730,7 @@
" 50.693245 | \n",
" -3.665569 | \n",
" 89.750290 | \n",
+ " reggae | \n",
"
\n",
" \n",
" 516 | \n",
@@ -760,7 +745,6 @@
" 2822.406728 | \n",
" 7.392007e+05 | \n",
" ... | \n",
- " 2.887793 | \n",
" 109.811813 | \n",
" -0.027696 | \n",
" 113.660950 | \n",
@@ -770,6 +754,7 @@
" 136.810165 | \n",
" 2.935807 | \n",
" 95.914490 | \n",
+ " jazz | \n",
"
\n",
" \n",
" 518 | \n",
@@ -784,7 +769,6 @@
" 4248.194549 | \n",
" 3.987029e+05 | \n",
" ... | \n",
- " 12.366530 | \n",
" 57.230133 | \n",
" -1.110214 | \n",
" 48.080849 | \n",
@@ -794,6 +778,7 @@
" 55.737625 | \n",
" 0.350456 | \n",
" 64.126846 | \n",
+ " jazz | \n",
"
\n",
" \n",
" 940 | \n",
@@ -808,7 +793,6 @@
" 6131.200719 | \n",
" 1.788624e+06 | \n",
" ... | \n",
- " -5.717880 | \n",
" 42.315434 | \n",
" -3.953057 | \n",
" 48.761936 | \n",
@@ -818,10 +802,11 @@
" 58.219994 | \n",
" -0.909785 | \n",
" 63.111858 | \n",
+ " rock | \n",
"
\n",
" \n",
"\n",
- "10 rows × 57 columns
\n",
+ "10 rows × 58 columns
\n",
""
],
"text/plain": [
@@ -849,43 +834,43 @@
"518 1993.352766 64753.479332 2127.165109 \n",
"940 3009.958707 435134.775688 2778.049758 \n",
"\n",
- " spectral_bandwidth_var rolloff_mean rolloff_var ... mfcc16_mean \\\n",
- "687 45771.294278 6670.863091 3.556853e+05 ... 8.023183 \n",
- "500 283554.933422 2799.283099 2.685679e+06 ... -1.957420 \n",
- "332 215375.540632 4958.057490 2.650020e+06 ... 0.122951 \n",
- "979 72155.551685 4479.264304 9.787046e+05 ... -0.621152 \n",
- "817 201432.199120 3777.969679 2.632339e+06 ... 3.633915 \n",
- "620 32730.579626 5358.261979 5.918222e+05 ... 5.089191 \n",
- "814 358557.016423 3790.901258 4.734865e+06 ... 3.066329 \n",
- "516 58868.399307 2822.406728 7.392007e+05 ... 2.887793 \n",
- "518 36027.039069 4248.194549 3.987029e+05 ... 12.366530 \n",
- "940 135548.871316 6131.200719 1.788624e+06 ... -5.717880 \n",
+ " spectral_bandwidth_var rolloff_mean rolloff_var ... mfcc16_var \\\n",
+ "687 45771.294278 6670.863091 3.556853e+05 ... 37.339474 \n",
+ "500 283554.933422 2799.283099 2.685679e+06 ... 50.311016 \n",
+ "332 215375.540632 4958.057490 2.650020e+06 ... 78.892769 \n",
+ "979 72155.551685 4479.264304 9.787046e+05 ... 37.060532 \n",
+ "817 201432.199120 3777.969679 2.632339e+06 ... 64.068756 \n",
+ "620 32730.579626 5358.261979 5.918222e+05 ... 27.937113 \n",
+ "814 358557.016423 3790.901258 4.734865e+06 ... 66.090370 \n",
+ "516 58868.399307 2822.406728 7.392007e+05 ... 109.811813 \n",
+ "518 36027.039069 4248.194549 3.987029e+05 ... 57.230133 \n",
+ "940 135548.871316 6131.200719 1.788624e+06 ... 42.315434 \n",
"\n",
- " mfcc16_var mfcc17_mean mfcc17_var mfcc18_mean mfcc18_var \\\n",
- "687 37.339474 -8.121326 33.968277 4.910113 42.063385 \n",
- "500 50.311016 -1.503434 41.141155 0.221949 55.707256 \n",
- "332 78.892769 -1.054999 79.877068 4.496278 112.834435 \n",
- "979 37.060532 -13.479134 50.848667 3.308529 47.726006 \n",
- "817 64.068756 -2.219202 99.249870 5.304260 64.088127 \n",
- "620 27.937113 -10.676390 26.519361 3.875155 25.613684 \n",
- "814 66.090370 -4.590122 72.595345 4.261040 63.185764 \n",
- "516 109.811813 -0.027696 113.660950 2.098475 160.025497 \n",
- "518 57.230133 -1.110214 48.080849 -0.784249 57.033504 \n",
- "940 42.315434 -3.953057 48.761936 -3.092345 49.514446 \n",
+ " mfcc17_mean mfcc17_var mfcc18_mean mfcc18_var mfcc19_mean \\\n",
+ "687 -8.121326 33.968277 4.910113 42.063385 -2.474697 \n",
+ "500 -1.503434 41.141155 0.221949 55.707256 -1.991485 \n",
+ "332 -1.054999 79.877068 4.496278 112.834435 -0.978958 \n",
+ "979 -13.479134 50.848667 3.308529 47.726006 -3.704957 \n",
+ "817 -2.219202 99.249870 5.304260 64.088127 -6.597187 \n",
+ "620 -10.676390 26.519361 3.875155 25.613684 -4.943561 \n",
+ "814 -4.590122 72.595345 4.261040 63.185764 -2.127876 \n",
+ "516 -0.027696 113.660950 2.098475 160.025497 1.109709 \n",
+ "518 -1.110214 48.080849 -0.784249 57.033504 -2.984207 \n",
+ "940 -3.953057 48.761936 -3.092345 49.514446 -2.731183 \n",
"\n",
- " mfcc19_mean mfcc19_var mfcc20_mean mfcc20_var \n",
- "687 -2.474697 35.162354 3.192656 36.478157 \n",
- "500 -1.991485 50.006485 -3.353825 49.906403 \n",
- "332 -0.978958 75.059898 -5.256925 120.275269 \n",
- "979 -3.704957 56.781952 1.085497 54.243389 \n",
- "817 -6.597187 62.661850 -2.923168 67.490440 \n",
- "620 -4.943561 24.334734 3.255899 25.199259 \n",
- "814 -2.127876 50.693245 -3.665569 89.750290 \n",
- "516 1.109709 136.810165 2.935807 95.914490 \n",
- "518 -2.984207 55.737625 0.350456 64.126846 \n",
- "940 -2.731183 58.219994 -0.909785 63.111858 \n",
+ " mfcc19_var mfcc20_mean mfcc20_var label \n",
+ "687 35.162354 3.192656 36.478157 metal \n",
+ "500 50.006485 -3.353825 49.906403 jazz \n",
+ "332 75.059898 -5.256925 120.275269 disco \n",
+ "979 56.781952 1.085497 54.243389 rock \n",
+ "817 62.661850 -2.923168 67.490440 reggae \n",
+ "620 24.334734 3.255899 25.199259 metal \n",
+ "814 50.693245 -3.665569 89.750290 reggae \n",
+ "516 136.810165 2.935807 95.914490 jazz \n",
+ "518 55.737625 0.350456 64.126846 jazz \n",
+ "940 58.219994 -0.909785 63.111858 rock \n",
"\n",
- "[10 rows x 57 columns]"
+ "[10 rows x 58 columns]"
]
},
"metadata": {},
@@ -893,7 +878,12 @@
}
],
"source": [
+ "# Podział ten jest dokonywany w proporcji 80:20, gdzie 80% danych trafia do zbioru uczącego, a 20%\n",
+ "# do zbioru testowego, podejście to jest standardową praktyką w dziedzinie uczenia maszynwego\n",
+ "\n",
+ "# wartość X reprezentuje 57 parametrów opisujących poszczególne utwory\n",
"X = data.drop([\"genre\"], axis=1)\n",
+ "# wartość Y zawiera kolumnę gatunków wyrażonych przy pomocy wartości liczbowych od 1 do 10\n",
"Y = data[\"genre\"]\n",
"X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size = 0.20, random_state = False)\n",
"display(X_train.head(10))"
@@ -903,12 +893,12 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "### Ilość krotek dla poszczególnych gatunków z podziałem na test/train"
+ "### Ilość krotek dla poszczególnych gatunków z podziałem na zbiory: uczący i testowy"
]
},
{
"cell_type": "code",
- "execution_count": 6,
+ "execution_count": 5,
"metadata": {},
"outputs": [
{
@@ -929,6 +919,9 @@
}
],
"source": [
+ "# skrypt odpowiadający za przeiterowanie po słowniku i zliczenie liczebności poszczególnych gatunków\n",
+ "# w ramach podziału na zbiory: uczący i testowy\n",
+ "\n",
"for key in genre_dict.keys():\n",
" count = len(data[data[\"genre\"]==genre_dict[key]])\n",
" count_train = len(X_train[Y_train==genre_dict[key]])\n",
@@ -940,7 +933,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "## Wizualizacja danych"
+ "# 3. Wizualizacja danych"
]
},
{
@@ -950,14 +943,25 @@
"### Boxploty dla tempa gatunków"
]
},
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Jedną z najciekawszych i najbardziej intuicyjnych wartości mierzalnych dla poszczególnych utworów jest tempo. Parametr ten został przedstawiony przy pomocy wykresu pudełkowego w odniesieniu do wspomnianych wcześniej 10 gatunków muzycznych.\n",
+ "\n",
+ "Ze zgromadzonych danych jednoznacznie wynika, że najwyższą średnią wartość dla tempa mają utwory z gatunku Reggee, zaś na drugim i trzecim miejscu znajdują się odpowiednio muzyka klasyczna oraz blues. Podczas gdy najniższe wartości mają gatunki hip-hop oraz pop. \n",
+ "\n",
+ "Z kolei największe rozbieżności pomiędzy wartościami zauważalne są w przypadku muzyki klasycznej, country i metalu, chociaż najwięcej obserwacji odstających pojawia się w przypadku hiphopu oraz popu."
+ ]
+ },
{
"cell_type": "code",
- "execution_count": 7,
+ "execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
- "image/png": "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kqThw4fr4MGD+uWXXyTJdTKzOXPmqHLlyvmu1+TkZA0fPlwOh+Oi591zzz269957JUmTJ0/WkiVLJEmhoaGqVauWkpKSdPz4cUlS165dNWPGjDyzq7nltnnz5tqxY4caNGigs2fPqkqVKlq6dOklv9/vvPOOpk6dKpvNps8//7zAP1oUVlpamp544gl99dVXkqTw8HCFhYXpt99+U1pamsqUKaMZM2bkKem539NKlSqpbdu2WrNmjUJCQlSrVi0dOXJEZ86ckSQNGTJEI0eOdD0v93taq1YtnTt3Tg6HQ3Xr1tWhQ4f0zDPP6L777ruin3HDMPTkk09q06ZNkqQ6deooODhYv//+u06ePClJeuyxx/Tkk08Wa10BgEcyAAAeac6cOUZERITRsWPHfO+fOXOmERERYbRv39744osvXMvPnz9vvPPOO0bjxo2Na6+91ti2bVue50VERLj+LViwwMjKyjIMwzASEhKMtm3bGhEREUajRo2MW2+91YiLi3M9b9u2bcZ1111nREREGKtWrXItP3LkSJ4xp0+fbmRkZBiGYRhnz541JkyYYERERBjNmjUzDh8+7Hpeamqq6+vdd999ee5LTk42hg4dakRERBgtWrTIc9+lrFy50pUjKirK2LRpk+u+xMREo1+/fkZERIRxxx13uDIahmH88MMPRuPGjY2IiAhj/PjxRmpqquu+n376yejUqZMRERFh3H333a71ZRiGcerUKaNdu3ZGRESEMWzYMNfyYcOGGREREUanTp2MtLS0Yq+rb775xvWcC7/+xx9/7Fr+8ssv53lNX3/9tXHTTTcZERERxiOPPJJnPRU03uVc+Ly/Wrx4sREREWE0btzYWLJkieF0Ol33ffTRR8b1119vREREGJMnT87zvI4dO7rG3LBhg2v5iRMnLpvnmWeeMSIiIowOHToU+jVcyogRI4yIiAjjb3/7W573/rlz54xZs2a5vjc///yz674Lv6fXXXed8fbbbxvnz593PW/kyJGu9XLha7pwXd5+++1GYmKiYRiG4XA4jHPnzhmGcWU/459//rkRERFhtG7d2ti7d2+e58yfP9+VJSEhwS3rDAA8CcfcAoAFnThxQm+99ZYkad68eXnOWuvr66uYmBj93//9nwzD0Msvv5zvGO3atdPDDz/smgWsWrWq7r77bkk5l3yZOnWqIiMjXY+/+eab1aJFC0k5s4f56dy5s5555hnX8ZhlypTRc889p+joaGVkZGjhwoWux7733ns6fvy4wsLCtGDBAtWqVct1X1hYmObMmaOIiAilpqZq/vz5RVxD0tixY/PMsIWHh+vVV19VSEiIDh06pI0bN7rumzNnjs6fP6+2bdtq8uTJstvtrvuuu+46LVq0SGXKlNHu3bu1YcMG132hoaGaPn26bDabNm3apH//+99auXKlNm3apICAAM2ePVvlypUr9roqyOzZsyVJ9913n5588sk8x8G2bt1ar776qiTps88+03fffVeY1XZFMjIy9Prrr0vKmRm+//775ePz50eMrl27asqUKZJyvu9Hjx69aIwbbrhB3bp1c92uWLHiZb9ucnKypJwZzeLau3evNmzYoLJly2rx4sV53vuBgYEaMWKEunbtqoyMDM2bNy/fMfr3768BAwa4dgMPDAzU2LFjZbPZdP78ecXHx+f7vKFDh7pmnYOCghQYGHjFP+O5Z7OOjo527aWR+5yhQ4eqS5cu+tvf/qbTp08XfSUBgIej3AKABX3++efKzMxUgwYN8j3mTpJ69OghSYqPj9eJEycuuv+WW265aFnu9UrLli2rli1bXnR/7vGvaWlp+X7NBx988KJlNptNffv2laQ8u1fn/r9nz54qX778Rc8LCAhQTEyM67FGEY6iCQoKUs+ePS9aXrFiRd1+++2SctahJKWnp2v79u2S5Nr1969q1arlet7mzZvz3HfTTTe5njd58mRNnTpVkjRy5MhLHjtblHWVn99++00HDx4scCwpp+BER0fnm9udvvvuO505c0Z+fn66//77831Mt27dFB4eLqfTqa1bt150f+4fToqiMO+J//u//9O1116b779+/fq5Hvfvf/9bUs5u3AXt3pz7M/XFF1/kOblWrvyOZa1QoYKrqOfuovxX+b32K/0Zzz0m+PPPP9eCBQuUkJCQ5zmvvPKKXnzxxTzFFwC8BSeUAgALyj3+NTExMc8H9Atd+MH/wIEDF81uXXjsaK7cYyFDQ0PzzLz99f78SoXNZlOzZs3yzZL7QTo5OVkOh0N2u91VzAr64H7hfSdPntQff/yhChUqFPjYCzVs2LDAs/nmZtm/f78k6ciRI8rKypIkNW3atMAxmzZtqvXr17tyX2jkyJH6+uuvXcejduzYscDCKRV9XeXnwIEDknL+EFG/fv1L5t65c2e+ud0lN0udOnUKzGuz2dS4cWMlJSXlm6Wg430vJff9kN8fb3JFREQoIyMjz7KEhISLSl/uz9SuXbsK/JnKHSctLU1JSUmqXr16nvsLKsW5J7rKrxBL+b/2K/0Zv/XWW9WyZUt9++23mjVrlmbNmqV69erppptuUrt27dSmTRsFBgbmOx4AWB3lFgAsKDU1VZLkcDi0Y8eOyz4+vxmjgnaXlZRvsb2csmXLFlgoL/xaqampstvtcjgckuQ60VF+LixKaWlphS63QUFBl73v3LlzkuTKUdgs+c1aBwQEqG3btq5ye7lZsaKuq/zk5i7o/ly5r7eg2XZ3KMz3Urr0OizMmY7/6tprr9X69euVnJys06dP57sHwNixYy9alnuytgvl/kydOHHikmU515kzZy4qt5e6DJFU8Exzfq/9Sn/G/fz8tHjxYr377rtatWqVfvnlFx04cEAHDhzQkiVLZLfbNXjwYD3yyCN5zt4MAN6AcgsAFpR7puLOnTtrzpw5JqfJkZGRIcMw8v3AnPtBXfrzWMqgoCCdPn06z31/deFxgZcqrH+Vnp5e4H25RSwkJOSicVNTUws8fjM3S345fvjhB7399tuu175w4ULdcsstrl2C/6qo6yo/uTkuLOf5yS09RVl/RZU79qW+lyWRpX379nrppZd0/vx5bd68Wb169brisXJ/ph566KE8l+ExS3F+xgMCAjRw4EANHDhQiYmJ+uabb7R9+3Z98cUXSklJ0csvv6wyZcpo4MCBJREdAEzDMbcAYEF169aV9Oeui/k5e/asvv32Wx05cqTA3SHdyel0unb1/as9e/ZIyrmMUO4ukfXq1ZNU8MmppJxdRCWpfPnyhZ61lXKuV1vQLFnu18u9xmnt2rVdM265X+9SWerUqZNneXp6uv7xj3/I6XSqX79+6tOnj5xOp0aNGlXgbGlR11V+ctff2bNnCxzrUrndKTfLoUOHCizb2dnZ+umnn9yapVGjRrrxxhslSW+88YbOnj17xWMV5mfq1KlT+v777/X7778X6RjwksqT38/46dOn9cMPP7h2u65atap69uypadOmaevWra7jgtesWVOi+QHADJRbALCgDh06yNfXVwcOHNB//vOffB/z1ltvKSYmRj169CjWh/6iWLFixUXLsrOztWzZMklSly5dXMtzP2SvXr063zO3ZmZm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q6xateqi93Huv99//93seF7j9OnTGjlypFq2bKl27dpp5syZcjqdZsfyKidPntSIESPUsmVLdezYUW+99ZbZkbxKfv3j2LFjeuihh3T99dera9eu+vzzz01MeOX8zA5wNcvIyNDTTz+tffv2mR3F62RmZuqRRx5RgwYNtHTpUp04cUJjx46VJI0ePdrkdN4hKytLQ4YMUatWrfTcc8/pwIEDevrpp1WlShXdddddZsfzOl9//bVWrFihli1bmh3FK/3666+64447NGnSJNeywMBAExN5nxdffFGbN2/WvHnzZLPZNHLkSL322msaMWKE2dG8Rrdu3dSuXTvX7ezsbD366KOqWbOmqlevbmIy7/Lcc88pOTlZS5Ys0cmTJzVy5EiFhoZq8ODBZkfzGk888YTOnTunxYsXKy0tTaNHj5bNZtODDz5odjTLy69/GIahxx57TPXr19eKFSv02Wefafjw4Vq/fr1q1aplYtqiY+bWJL/++qv69Omjw4cPmx3FK8XHx+vw4cOaNm2a6tevr5YtW+rJJ5/UunXrzI7mNZKSkhQZGalJkyapTp066tixo2666Sb997//NTua10lPT9eECRPUvHlzs6N4rf379+vaa69V5cqVXf9CQkLMjuU1zpw5o/fff1+TJ09WixYt1Lx5cz3xxBPavXu32dG8SpkyZfK8h//973/r999/1+TJk82O5lU+//xzPfjgg4qIiFDr1q1155136ptvvjE7ltfYtWuXvv/+e82cOVPNmjVT69at9Y9//EMLFy40O5rlFdQ/vvnmGx08eFD//Oc/1aBBAz388MOKjo7WihUrTEp65Si3Jvnuu+908803a9myZWZH8Ur16tXTG2+8oaCgINcym83GLnBuVLNmTb388ssqU6aMDMPQ999/r//+979q06aN2dG8zuzZs9WyZUtmbUvQr7/+qrp165odw2t9//33KlOmjG666SbXsl69enEoQwlyOBx69dVXNXz4cJUvX97sOF4lNDRUa9eu1dmzZ5WUlKQvv/xSTZo0MTuW1zhy5IjKly+vevXquZY1atRIycnJOnr0qInJrK+g/hEXF6fGjRvLbre7lrVo0UI//PBDKScsPnZLNknfvn3NjuDVKlasmOdDVHZ2tpYsWaIWLVqYmMp7tW/fXsePH1fHjh3VuXNns+N4lZ07d+rjjz/W+vXr9a9//cvsOF4pMzNTR44c0ZYtWzRnzhxlZ2erS5cuGj58uAICAsyO5xUOHz6sGjVqaP369Zo/f77S09PVpUsXjRgxgnVcQpYtW6aAgAD17t3b7CheZ9KkSRo1apSaN2+u7OxstW7dWsOGDTM7ltcICwuTw+GQw+Fwla1jx45Jkk6dOqWaNWuaGc/SCuofycnJqlKlSp5llSpVUmJiYmnEcitmbnFVmDZtmvbs2aOnn37a7Chead68eZo3b552796tadOmmR3Ha2RmZmrcuHEaO3YsMy8l6NChQzp//rzKlSunOXPmaNSoUVq3bh3vZTdKS0vT0aNHtWTJEj333HN69tlntWnTJs2YMcPsaF7JMAwtW7ZMDzzwgPz9/c2O43UOHz6sxo0ba8mSJXrjjTd07NgxvfDCC2bH8hpRUVGqWrWqnn32WTkcDiUlJenVV1+VlHO+D7jf2bNnL9pWBAQEWHJ9M3MLr2YYhqZOnar3339fr7zyiho2bGh2JK/UrFkzSdK5c+f0zDPPaNSoUczGuMFrr72mOnXqqGvXrmZH8WoNGzbUN998owoVKkjK2f3NMAw9/fTTGjdunPz8+FVZXH5+fnI4HJoxY4Zq164tSRo1apRGjRqlMWPGyMeHv7W70+7du3X48GH16NHD7Che5/Dhw3r++ef12WefqWrVqpJyTj730EMPaejQoQoLCzM5ofUFBARo7ty5+vvf/64bb7xRdrtdI0eOVFxcXJ7dZuE+gYGBcjgceZZlZmaqTJkyJiW6cvzGhtfKzs7WuHHjtG7dOs2ePVu333672ZG8SlJSknbt2qXbbrvNtax+/frKysqSw+FQxYoVTUznHdatW6fk5GRFR0dLyvmLtdPpVHR0tHbu3GlyOu+SW2xz5b6XT548edGuWii6KlWqyM/Pz1VsJalu3brKyMjQyZMnKQRu9sUXXygqKkrh4eFmR/E6u3btUlBQkKvYSlLTpk3ldDr1+++/8152kyZNmmjTpk1KSUlRSEiIDh8+LB8fH876XULCw8O1d+/ePMtSUlJUuXJlkxJdOf5UCq81ffp0rVu3TnPnzlWnTp3MjuN19u/fr2HDhunEiROuZbt371bFihUptm4SGxur9evXa/Xq1Vq9erV69+6tpk2bavXq1WZH8yqffPKJbrrppjwnnPvpp58UEhJiyV/snuj666/X+fPn9fPPP7uW7d+/X0FBQQoNDTUvmJeKi4vTjTfeaHYMr1SlShWdOXNGCQkJrmX79++XJI4FdZPTp0+rf//+OnHihMLCwhQQEKDPPvvsohMewX2ioqK0d+9epaenu5Z9//33uv76680LdYUot/BKP/zwg95++20NHz5cTZs2VXJysusf3OPGG29U/fr1NXr0aO3fv19btmzRSy+9pEceecTsaF6jRo0aqlOnjutfSEiIypQpozp16pgdzavceOONMgxDEydO1MGDB7V161a9+OKLGjRokGw2m9nxvMI111yj2267TWPGjNGuXbv03XffaebMmerTpw+7fZeAffv2qUGDBmbH8ErXX3+9rrvuOo0ZM0Z79+7VDz/8oAkTJqhHjx78YddNypcvr3Pnzmn69Ok6fPiwNm7cqHnz5umxxx4zO5rXatmypapXr67Ro0dr3759euONNxQXF2fJE9LxGwVeadOmTZKkl156SS+99FKe+3bv3s2HKTfw9/fXggUL9M9//lO9e/dWUFCQHnzwQQ0YMMDsaECRVKhQQYsXL9a0adPUq1cv2e129e3bV0OHDjU7mld58cUXNXXqVD344IPy8/NTz549OclfCUlJSWFGvIT4+flpwYIFev755/Xggw/K399fXbp00ciRI82O5lVmzZqliRMn6q677lJ4eLj++c9/5jkMCu7l6+urefPmady4cerVq5dq166tV1991ZJ7I9gMwzDMDgEAAAAAQHGwWzIAAAAAwPIotwAAAAAAy6PcAgAAAAAsj3ILAAAAALA8yi0AAAAAwPIotwAAAAAAy+NinwAAmCA7O1vLli3T6tWrdeDAAWVkZKhOnTr629/+poEDByowMNDsiAAAWArXuQUAoJSdP39eQ4cO1U8//aTHH39cbdq0UWBgoHbu3KmXX35ZtWrV0ptvvimbzWZ2VAAALIOZWwAAStm//vUvbd++XStXrtS1117rWl6zZk1FRUWpa9eu+vzzz3XLLbeYFxIAAIvhmFsAAEqRYRh677331LNnzzzFNlft2rX10UcfqUOHDpKk7777Tn379lVkZKRuu+02vfTSS8rIyHA9/tprr9WKFSt0//33KzIyUl26dNGyZctc948ePVpPPfWUYmJi1KJFC7333nuSpOXLl6tz586KjIxU9+7d9eGHH5bwKwcAoGRRbgEAKEVHjx5VQkKCWrduXeBj6tSpI5vNpj179mjQoEG64447tG7dOk2ZMkVbtmzRs88+m+fxM2fO1P33368PP/xQN9xwg5599lkdO3bMdf/GjRt1xx13aPny5brjjjv03nvvafbs2RoxYoTWr1+vwYMHa+rUqRRcAIClsVsyAAClKCUlRZJUoUKFPMvvuusuHTlyxHW7e/fuSk9PV4cOHTRo0CBJOaX3ueeeU//+/TVixAhVqVJFknTPPfeoW7dukqRRo0bpgw8+UHx8vGrUqCFJqly5sgYMGOAae/78+XriiSfUpUsXSTmzxb///rvmz5+vu+++u4ReOQAAJYtyCwBAKQoNDZUknT59Os/y+fPnKysrS5L0zDPPKDMzU3v27NGhQ4cUHR3telzueSD379/vKrfXXHON6/6QkBBJco0l5RzLm+vkyZNKSkrSCy+8oJkzZ7qWnz9/Xk6nU5mZmQoICHDDKwUAoHRRbgEAKEW1a9dWWFiYvvvuO9dsqyRVr17d9f8yZcpIkvz9/dWzZ08NGTLkonEqV67s+n9+ZfTCiyHkjpc7piRNmDBBLVu2vOh5fn58NAAAWBPH3AIAUIp8fX11//33a9WqVdq/f/9F92dmZurkyZOSpAYNGmj//v2qU6eO69/Jkyf1wgsvKC0t7Yq+fnBwsMLDw3X06NE843711VdavHixfHz4aAAAsCZ+gwEAUMoefvhhtWnTRv369dObb76pffv26ciRI1q3bp3uueceHThwQC1atNCQIUMUHx+vadOmaf/+/fr222/1zDPPKDU1Nc/MbVE9+uijeuutt7Rs2TIdPnxY69at0/Tp04s1JgAAZmPfIwAASpmfn5/mzZunNWvWaNWqVZo/f77S09NVvXp1tW3bVnPnznUdR7tgwQK98soreu+99xQcHKyOHTtq1KhRxfr6/fr1U2ZmphYvXqzJkycrPDxcjz32mB5++GE3vDoAAMxhMy48KAcAAAAAAAtit2QAAAAAgOVRbgEAAAAAlke5BQAAAABYHuUWAAAAAGB5lFsAAAAAgOVRbgEAAAAAlke5BQAAAABYHuUWAAAAAGB5lFsAAAAAgOX9Pw3jsZtFCD8BAAAAAElFTkSuQmCC\n",
+ "image/png": "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lStXqkmTJpKkSpUq6bPPPtOjjz6qnj17qmXLlpo5c2aS9Xfo0EFz587N0n1hhgMHDqhz584KCAhQr169dPHiRUm37+PUjutdu3apW7duCggI0OOPP67Fixc7px08eFC9e/dWzZo1FRQUpClTpig+Pj7bts8sv/32m5o1ayZ/f3/169dPFy5cSLJPN23apMcee0wLFixQnTp1VLduXU2dOjXJOm7cuKExY8bo4YcfVt26dTVr1izntPj4eM2aNUtNmzaVv7+/unXrpj179jinV6pUSd9//72aNWumwMBAvfHGG4qOjs6ejTfZzd2SUztfDxkyRJUqVbrtv82bNys4ODjZaSdOnDB568yRuE/XrFmjJk2aKDAwUB9++KH27t2rdu3aqUaNGnrxxRd15coVSdLChQv1+OOPKzAwUJ07d1Z4eLik5M+/af1Nvdcl7vsVK1aoQYMGqlWrlkaNGqW4uDhJCdcEnTt3Vo0aNdSkSRMtWLDAueyQIUP0/vvvq3///vL399czzzyjLVu2mLUp2S5x333++ed65JFHNHTo0FSvbePj4zV+/HjVqVNHderU0RdffKFmzZpp06ZNkqRr167pnXfe0cMPP6z69etr0aJFqlq1qo4fPy4p7WN5//796t69u/z9/dWsWTPNmTPnnviyJ7n3Ye3atWrbtq38/f3VsmVL/fzzz875HQ6HJk+erPr166tmzZrq37+/Tp8+fdt6T5w4oaCgIH300UfZuTl3hHCbiRYtWqQJEyZo2rRpWr16taZMmXJHy+/Zs0dvv/22XnjhBa1cuVIdOnTQK6+8ot27d0uS3n77bZUrV04rV67UZ599puXLlye5oLWi2NhY9e7dWx4eHlq4cKE++OADzZo1SytXrnTOYxiGXnrpJRUrVkzLly/Xd999p/j4eH388ceSpF9//VULFizQ+PHj9dNPP6lq1ap67bXXFB8fn+q09NSxYsUKRUdHq1+/fqpXr55+/PFHzZ49W8ePH9eXX36Zrfsqs6S0rcuWLVOPHj105coVff3115o0aZI2bNigDz/8MN3r/u6771SlShUtXbpUQUFBGjlypC5evKjnn39eLVu2VIsWLZIcs2vWrNE333yjd955R08++WSSE+2JEyf077//qmXLlpm6/WaLjY1V3759VaJECS1dulRNmzbVokWLbpsvtWP3/Pnz6tmzp8qVK6dly5bp9ddf18iRI7VlyxadP39eXbp00QMPPKBFixZp5MiRWrBggebMmWPC1mavpUuX6tNPP1VISIh27dqlGTNm3DbPxYsXtWTJEs2ZM0ejR4/W3Llz9c033zinJwaCZcuWqV+/fvrkk0+0d+9eSdLnn3+uOXPmaOjQoVq2bJlKlCihPn36JAmwkydP1rBhw/T1119r//79evfdd7N4q11LWufrd955R6Ghoc7/mjRpoho1aigwMFBTpkxxvr5hwwZVq1ZNLVq0UPHixU3eKnPNnDlTX3zxhUaOHKm5c+fqtdde09tvv62ZM2fq77//1pIlS/Tbb79p0qRJzmOzQYMG6tGjh06fPn3b+Tet9wj/8/nnn2vChAn6/PPPtXr1an322Wc6ePCgevTooUceeUTLli3Tq6++qk8++STJ369FixapfPnyWrZsmerUqaO+ffvq7NmzJm5J9tuyZYuWLFmiHj16pHptO336dP3www8aP3685s6dq3Xr1ikiIsK5njFjxmjr1q2aNWuWJk6cqFmzZsnhcEhK+3xz7do19enTRzVq1NCKFSv07rvv6quvvtL8+fOzf4eYJPF9qFGjhl599VU988wzWr58uTp27Ki33noryZdg33//vcaMGaNFixbp+vXrGjx4cJJ1XbhwQX369FGDBg1um+ZSDGRYRESE4efnZ6xZs8b52tKlS43atWsbS5YsMerXr28YhmH89ddfhp+fnxEXF+ecb/Dgwcabb75pGIZhvPXWW8bo0aOTrHvIkCHG0KFDDcMwjJo1axqffvqpcePGDcMwDOPff/81IiIisnTbstratWuNgIAA4/Lly87Xli9fbsydO9fw8/Mzjhw5YsTExBgzZswwoqOjnfN8++23RqNGjQzDMIy5c+cadevWNY4dO2YYhmHY7XZj48aNRlxcXKrTbn4/Uqrj119/NU6fPm3MmjXLiI+Pd04bP3680bVrV8MwjCTvsRWktK3Lli0z/P39jQsXLjhfX79+vVGlShXj8uXLyW5nt27djAkTJhiGkXAst23b1jnNbrcbfn5+xubNm53TE491wzAMPz8/IyQkxPnzkSNHDD8/P+d7NXPmTKNbt26Zt+EuYu3atUaNGjWSHM+vvvqq0a1btyT7OLVjd/78+UajRo2c5wLDMIyQkBBj06ZNxldffWXUr1/fiI2NdU775ptvjDp1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QsbLy0vt2rXTuHHj9M8//+iff/7RBx984Jye1rH89NNPKzY21nm988cff2jUqFHObs/3kp49e+rXX3/VvHnzdOTIEc2bN0+//vqr8+9f9+7dNWXKFP3xxx86ePCgRo0apapVq952u8LgwYO1a9eu23pAupJ7o00+m3Tr1k0vv/yyYmNj1b59e/Xs2VM//PCDc7q3t7dGjx6tiRMnatGiRWratKm6d++uU6dOSZJq1Kih8ePHa+rUqRo/fryKFy+usWPHqlGjRpKkiRMnatSoUc5vtBs3bqz33nsvuzczU7m7u+uLL77QqFGj1LZtW91///16+eWX1bRpU3366aeSEu4JeOWVVzR69Ghdv35dfn5+GjFihIYOHaqTJ0+qSZMmGjhwoD7++GOdPn1apUqV0qeffqpy5cqpXLlyKU47c+ZMmnW0atVKDodDf//9twYOHCgp4d7qoUOHauLEiZa86EptW/39/TV69Gh17NhR+fLlU+vWrfXmm29KSrgndvDgwZo1a5amTZumdu3a3dEf62eeeUb//e9/9fTTT+uvv/5Kcb4nn3xS//zzjx5//PEMb6sr8vT01IwZM/Tuu++qXbt2qly5srp06XJb621qx7UkzZgxQx988IEWLlyoYsWKaezYsapZs6YkadasWRozZozatGmjQoUKqXv37nrxxRezfVtdVaNGjdS1a1flzZtXr7/+utq0aZOu5Xr27Kno6GiNGDFCdrtdNWrUUEhIiAoXLuycp23btho6dKguXbqkp556SsOGDcuirXBNRYoUSfV8vWLFCp09e1atWrVKstwrr7yiFStWSNJtXZXHjRt3W5dGJNWqVSudO3dOU6dO1enTp1WuXDl9/vnnzq6Dt55/U3uP8D9PPvmkXnzxRTkcDnXq1En9+/eXm5ubpk+fro8//lhz5sxRsWLFNHjwYLVv3965XKNGjbRlyxZNnjxZVatW1bx58+7JQCWlfW37/PPP6/Tp0xowYIDc3d3Vp08fbd++3dnbcfDgwRoxYoR69eolb29vdevWTRMmTJCnp2ea14fFihXTrFmzNG7cOLVt21b58+dX27Zt9frrr5u4R8xRvXp1jR8/XpMnT9b48eNVtmxZffbZZ3rsscckSS+88IIuX76sN998U3FxcQoKCtLw4cNvW0/JkiX1/PPPa/z48WratKlL3qtvM1y5XRnAPWfq1Kk6cOCAPvvsM7NLQQ6zadMmde/eXTt37syS+60qVaqkuXPnql69epm+bld39OhRNW/eXGvXrk0y4BFgRcePH9fjjz+uVatWqXTp0ne07JAhQ3Tjxg2NHz8+i6rLWRIf+5V428z58+dVt25drVmzRiVKlNDq1atVt25d5yCM4eHh6tKlS5IADNyMllsALmHv3r3avXu3QkJCNHHiRLPLAZBOUVFR+v333+Xp6cl93QDuSOJgiW+//bZsNpsmTZqk6tWrO0cJnzp1qn777Tf169dPMTEx+uSTT9SkSROCLVLEDVgAXMKuXbs0cuRItW7d+p5s+QKsat68eZo4caL69eunPHnymF0OAAsZPny43N3d1alTJ3Xo0EHx8fH6/PPPndPHjx+vEydOqE2bNurVq5dKlCjhvO8WSA7dkgEAAAAAlkfLLQAAAADA8gi3AAAAAADLI9wCAAAAACyP0ZIBADBBfHy8Fi5cqB9++EGHDh3S9evXVbp0aT355JPq1auXcufObXaJAABYCgNKAQCQzW7cuKF+/fpp165devnll1W3bl3lzp1b27dv12effaaSJUtq7ty5stlsZpcKAIBl0HILAEA2mzNnjjZt2qQlS5aoUqVKztdLlCihgIAAtWzZUuvXr1ejRo3MKxIAAIvhnlsAALKRYRj65ptv1KZNmyTBNlGpUqX0008/qWHDhpKkLVu2qFOnTvL399fjjz+uTz/9VNevX3fOX6lSJS1evFhdu3aVv7+/nnjiCS1cuNA5fciQIRo4cKCCg4P18MMP65tvvpEkff/992rRooX8/f3VunVrLVu2LIu3HACArEW4BQAgGx0/flyRkZF69NFHU5yndOnSstls2r17t3r37q1mzZpp5cqVGjNmjNauXauRI0cmmX/8+PHq2rWrli1bplq1amnkyJE6ceKEc/rPP/+sZs2a6fvvv1ezZs30zTffaOLEiXr99df1448/qk+fPvrggw8IuAAAS6NbMgAA2ejs2bOSpPvuuy/J608//bQiIiKcP7du3VpXrlxRw4YN1bt3b0kJoff9999Xly5d9Prrr+uBBx6QJD377LNq1aqVJGnQoEFatGiRwsPDVbx4cUlSkSJF1L17d+e6p02bpldeeUVPPPGEpITW4pMnT2ratGlq27ZtFm05AABZi3ALAEA2KliwoCTp0qVLSV6fNm2a4uLiJEmDBw9WbGysdu/eraNHjyowMNA5X+I4kAcPHnSG2zJlyjin58+fX5Kc65IS7uVNdP78eUVFRemjjz7S+PHjna/fuHFDDodDsbGxypUrVyZsKQAA2YtwCwBANipVqpQKFy6sLVu2OFtbJalYsWLOf+fJk0eS5OnpqTZt2uiFF164bT1FihRx/ju5MHrzwxAS15e4Tkl67733VLt27duW8/Dg0gAAYE3ccwsAQDZyd3dX165dtXTpUh08ePC26bGxsTp//rwkqUKFCjp48KBKly7t/O/8+fP66KOPFBMTc1e/38fHR76+vjp+/HiS9W7cuFGzZ8+WmxuXBgAAa+IvGAAA2axv376qW7euOnfurLlz52r//v2KiIjQypUr9eyzz+rQoUN6+OGH9cILLyg8PFzjxo3TwYMHtXnzZg0ePFh2uz1Jy+2d6t+/v+bNm6eFCxfq2LFjWrlypT788MMMrRMAALPR9wgAgGzm4eGhL774QsuXL9fSpUs1bdo0XblyRcWKFVNQUJCmTJnivI92+vTpmjRpkr755hv5+PiocePGGjRoUIZ+f+fOnRUbG6vZs2dr9OjR8vX11UsvvaS+fftmwtYBAGAOm3HzTTkAAAAAAFgQ3ZIBAAAAAJZHuAUAAAAAWB7hFgAAAABgeYRbAAAAAIDlEW4BAAAAAJZHuAUAAAAAWB7hFgAAAABgeYRbAAAAAIDlEW4BAAAAAJb3fySIcb62wNfHAAAAAElFTkSuQmCC\n",
"text/plain": [
"