{ "cells": [ { "cell_type": "markdown", "id": "a11671c4-2b96-4fde-949a-6defb05980b8", "metadata": {}, "source": [ "# ARIM-Academy: 基礎編 Scikit-learn(次元削減とクラスター分析)" ] }, { "cell_type": "markdown", "id": "3488f1a0-297e-4dc3-928b-6121c344fc13", "metadata": {}, "source": [ "## 本編の目標\n", "本演習では**『茶の元素分析データセット』**を用いて、**次元削減**と**クラスタリング**の技術を使ってデータ分析を学びます。\n", "\n", "### 本編における内容\n", "以下の内容に取り組みます。\n", "\n", "1. **次元削減技術の学習**: 高次元データを低次元に変換する次元削減手法(主成分分析(PCA)、t-SNE、UMAPなど)を学びます。これにより、多次元データを視覚化し、データの理解を深めることができます。次元削減を通じて、データのパターンを抽出し、複雑なデータセットの分析を簡素化することができます。\n", "\n", "2. **クラスタリングアルゴリズムの理解**: クラスタリング手法(階層クラスタリングやK-means)を使用して、データセット内の類似性、グループやパターンを識別します。クラスタリングを通じて、データの内部構造を発見し、データ群がどのようにグループ化されるかを把握することができます。\n", "\n", "3. **次元削減とクラスタリングの統合的活用**: 次元削減とクラスタリングを組み合わせることで、データの可視化や構造の理解を深めることができます。次元削減によって得られた低次元のデータを用いて、クラスタリング結果を視覚化し、データのクラスタリングパターンを把握することで、データ分析の洞察を得ることができます。\n", "\n", "---" ] }, { "cell_type": "markdown", "id": "90a1da8d-ec4c-4226-b471-76559b4cfd68", "metadata": {}, "source": [ "### 教材への接続\n", "google colabにおけるオンラインの場合にこのラインを実行します。(Google colabに接続しない場合には不要)" ] }, { "cell_type": "code", "execution_count": null, "id": "9b157a8b-02c3-4eee-b6b0-ccec10147db3", "metadata": {}, "outputs": [], "source": [ "%pip install umap-learn\n", "\n", "!git clone https://github.com/ARIM-Academy/Advanced_Tutorial_1.git\n", "%cd Advanced_Tutorial_1" ] }, { "cell_type": "markdown", "id": "e2a436ed-a3bb-4c3d-b665-4ea4111c4679", "metadata": {}, "source": [ "# 1.データセットの読み込みと前処理" ] }, { "cell_type": "markdown", "id": "cb560e23-95f3-43e2-baa7-bba39d98735a", "metadata": {}, "source": [ "### ライブラリのインポート\n", "カリキュラムで扱うpythonのライブラリを`import`文でロードします。機械学習のライブラリであるscikit-learnは後半でimportします。" ] }, { "cell_type": "code", "execution_count": 1, "id": "6a0ad6b8-484b-44cd-b6f9-d861b08d6fd5", "metadata": {}, "outputs": [], "source": [ "#ライブラリ\n", "import pandas as pd\n", "import numpy as np \n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "\n", "import warnings\n", "warnings.filterwarnings('ignore')" ] }, { "cell_type": "markdown", "id": "32f6ea9d-5911-452d-9bb5-de559d57c4c2", "metadata": {}, "source": [ "### サンプルファイルの読み込み\n", "pandasライブラリの`read_csv()`はcsvファイルを読み込むメソッドであり、指定したファイルの読み込みます。ここでは[data]フォルダーに格納されているIris.csvのファイルのをデータフレームとして読み込み、そのデータフレームはdfという変数に格納します。" ] }, { "cell_type": "code", "execution_count": 4, "id": "4e96a46b-2e92-45f9-b290-b3577929be34", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
AlCaCuFeKMgMnNaZntea
03.2974.3560.0312900.06799.063.5311.4550.5410.131BT
14.2674.1180.0312900.079106.503.3781.5420.6030.126BT
24.0884.7630.0333700.084114.004.7631.8381.0580.156BT
34.3384.5560.0333700.091122.605.0052.2690.9580.162BT
44.7325.1380.0355140.110132.405.6262.9981.5100.165BT
.................................
16316.6908.8950.1530000.236323.4020.45010.4206.3600.335GC
16417.6208.9090.1770000.261334.2023.48611.3307.1330.351GC
16517.9209.0560.1800000.266332.3022.84011.2907.6090.358GC
16617.8209.1280.1750000.273367.3024.56012.1108.5370.372GC
16717.6509.0480.1970000.285358.4024.34012.3108.6310.378GC
\n", "

168 rows × 10 columns

\n", "
" ], "text/plain": [ " Al Ca Cu Fe K Mg Mn Na Zn tea\n", "0 3.297 4.356 0.031290 0.067 99.06 3.531 1.455 0.541 0.131 BT\n", "1 4.267 4.118 0.031290 0.079 106.50 3.378 1.542 0.603 0.126 BT\n", "2 4.088 4.763 0.033370 0.084 114.00 4.763 1.838 1.058 0.156 BT\n", "3 4.338 4.556 0.033370 0.091 122.60 5.005 2.269 0.958 0.162 BT\n", "4 4.732 5.138 0.035514 0.110 132.40 5.626 2.998 1.510 0.165 BT\n", ".. ... ... ... ... ... ... ... ... ... ..\n", "163 16.690 8.895 0.153000 0.236 323.40 20.450 10.420 6.360 0.335 GC\n", "164 17.620 8.909 0.177000 0.261 334.20 23.486 11.330 7.133 0.351 GC\n", "165 17.920 9.056 0.180000 0.266 332.30 22.840 11.290 7.609 0.358 GC\n", "166 17.820 9.128 0.175000 0.273 367.30 24.560 12.110 8.537 0.372 GC\n", "167 17.650 9.048 0.197000 0.285 358.40 24.340 12.310 8.631 0.378 GC\n", "\n", "[168 rows x 10 columns]" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#データセットの読み込み\n", "df=pd.read_csv(\"data/tea_data.csv\")\n", "df" ] }, { "cell_type": "markdown", "id": "4bef781b-082b-4c7f-859d-516191ae2944", "metadata": {}, "source": [ "### データセットの分割(Data set splitting)" ] }, { "cell_type": "code", "execution_count": 5, "id": "362b434c-f978-4a6f-b9a4-be894fb1c6b7", "metadata": {}, "outputs": [], "source": [ "# 数値データ部とラベル部の用意しましょう\n", "\n", "X = df.iloc[0:, 0:9] # ガクと花びらの長さ、幅のデータ\n", "y = df.iloc[0:, 9] # 品種(ラベル)" ] }, { "cell_type": "code", "execution_count": 9, "id": "7ea7ea2d-cbb0-47f2-afde-f49fb3d09dff", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
AlCaCuFeKMgMnNaZn
03.2974.3560.0312900.06799.063.5311.4550.5410.131
14.2674.1180.0312900.079106.503.3781.5420.6030.126
24.0884.7630.0333700.084114.004.7631.8381.0580.156
34.3384.5560.0333700.091122.605.0052.2690.9580.162
44.7325.1380.0355140.110132.405.6262.9981.5100.165
..............................
16316.6908.8950.1530000.236323.4020.45010.4206.3600.335
16417.6208.9090.1770000.261334.2023.48611.3307.1330.351
16517.9209.0560.1800000.266332.3022.84011.2907.6090.358
16617.8209.1280.1750000.273367.3024.56012.1108.5370.372
16717.6509.0480.1970000.285358.4024.34012.3108.6310.378
\n", "

168 rows × 9 columns

\n", "
" ], "text/plain": [ " Al Ca Cu Fe K Mg Mn Na Zn\n", "0 3.297 4.356 0.031290 0.067 99.06 3.531 1.455 0.541 0.131\n", "1 4.267 4.118 0.031290 0.079 106.50 3.378 1.542 0.603 0.126\n", "2 4.088 4.763 0.033370 0.084 114.00 4.763 1.838 1.058 0.156\n", "3 4.338 4.556 0.033370 0.091 122.60 5.005 2.269 0.958 0.162\n", "4 4.732 5.138 0.035514 0.110 132.40 5.626 2.998 1.510 0.165\n", ".. ... ... ... ... ... ... ... ... ...\n", "163 16.690 8.895 0.153000 0.236 323.40 20.450 10.420 6.360 0.335\n", "164 17.620 8.909 0.177000 0.261 334.20 23.486 11.330 7.133 0.351\n", "165 17.920 9.056 0.180000 0.266 332.30 22.840 11.290 7.609 0.358\n", "166 17.820 9.128 0.175000 0.273 367.30 24.560 12.110 8.537 0.372\n", "167 17.650 9.048 0.197000 0.285 358.40 24.340 12.310 8.631 0.378\n", "\n", "[168 rows x 9 columns]" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X" ] }, { "cell_type": "code", "execution_count": 11, "id": "eb5338c2-a403-4803-ac47-c41f964cc909", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 BT\n", "1 BT\n", "2 BT\n", "3 BT\n", "4 BT\n", " ..\n", "163 GC\n", "164 GC\n", "165 GC\n", "166 GC\n", "167 GC\n", "Name: tea, Length: 168, dtype: object" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y" ] }, { "cell_type": "markdown", "id": "d91f5f34-fa04-4726-947d-2fddeb1c8e6b", "metadata": {}, "source": [ "# 2. 次元削減\n", "**次元削減**は、教師なし学習の一種としてデータ分析や機械学習において重要な手法で、データの持つ特徴量の数を削減し、データの本質的な構造や情報を維持しつつ、データの理解や視覚化を容易にする技術です。 \n", "\n", "### 次元削減の種類\n", "ここでは、線形次元削減である主成分分析(PCA)および非線形次元削減(多様体学習法)のt-分布型確率的近傍埋め込み(t-SNE)と統一マニホールド近似と射影(UMAP)について説明します。\n", "\n", "1. **PCA(主成分分析)** : \n", " PCAは線形次元削減手法であり、データの分散を最大化する直交する軸(主成分)を見つけます。教師なし学習の観点から、PCAはデータの分布の最も重要な方向を特定し、特徴量間の関連性を明らかにします。PCAはデータの線形な関係性を捉えるのに適しています。\n", "\n", "2. **t-SNE(t-分布型確率的近傍埋め込み)**: \n", " t-SNEは、非線形次元削減手法であり、特にデータのクラスタリング構造を視覚化するのに優れています。t-SNEは高次元データの局所的な構造を低次元空間に保持し、データポイント間の類似性を視覚的に表現します。教師なし学習として、t-SNEはデータの複雑な非線形パターンを明らかにするのに役立ちます。\n", "\n", "3. **UMAP(統一マニホールド近似と射影)**: \n", " UMAPは、t-SNEと同様に非線形次元削減手法で、データの局所的および大域的な構造を保持しつつ、次元を削減します。UMAPは計算が速く、大規模データセットにも適用可能です。教師なし学習の文脈では、UMAPはデータの全体的な構造とともに、局所的なクラスタリングのパターンを明らかにするのに有用です。めることが可能です。" ] }, { "cell_type": "markdown", "id": "d6484a4e-b119-4de7-ad89-50cc454dda87", "metadata": {}, "source": [ "## 1. 主成分分析\n", "次元削減の一番汎用的な手法である「主成分分析」を行ってみましょう。" ] }, { "cell_type": "markdown", "id": "1c653678-4496-400b-857a-464da427bb84", "metadata": {}, "source": [ "### ① モデル構築\n", "PCAクラスは、Scikit-learnライブラリから提供される主成分分析のクラスです。主成分分析では、データの次元を削減し、データの最も重要な変動を捉えるモデルを構築します。" ] }, { "cell_type": "code", "execution_count": 6, "id": "7f36b99d-3c65-4931-8602-948623e88202", "metadata": {}, "outputs": [], "source": [ "from sklearn.decomposition import PCA" ] }, { "cell_type": "code", "execution_count": 7, "id": "988711e0-e02f-4b10-8cc2-9ae1a6dd113a", "metadata": {}, "outputs": [], "source": [ "# 主成分分析(PCA)で2次元に次元削減\n", "pca = PCA(n_components=2) # 2次元に次元削減\n", "X_pca = pca.fit_transform(X)" ] }, { "cell_type": "markdown", "id": "67d43190-52f2-4650-be45-7136a450d1b5", "metadata": {}, "source": [ "### 【解説】PCAのハイパーパラメータ\n", "主成分分析(PCA)は、データの次元を削減するための手法であり、データの分散を最大化する直交する軸(主成分)を見つけます。PCAには少数のハイパーパラメータがあり、それらを適切に設定することで次元削減の結果を調整できます。以下はPCAの主なハイパーパラメータです。\n", "\n", "1. **`n_components`**\n", "- **説明**: 保持する主成分の数を指定します。これにより、次元削減後のデータセットの次元数が決定されます。\n", " - **整数値**: 保持する主成分の数を指定。例えば、`n_components=2`なら、2次元に削減されます。\n", " - **0 < n_components < 1 の小数値**: 累積寄与率が指定された値に達するまで主成分を保持。例えば、`n_components=0.95`なら、データの95%の分散を説明するのに十分な数の主成分が保持されます。\n", " - **`None`**: すべての成分が保持されますが、次元削減は行われません。\n", "- **デフォルト値**: `None`\n", "\n", "2. **`svd_solver`**\n", "- **説明**: 特異値分解(SVD)を行うためのアルゴリズムを指定します。データのサイズや特性に応じて適切なアルゴリズムを選択します。\n", " - **`auto`**: デフォルトで、データセットのサイズに基づいて最適なアルゴリズムを選択します。\n", " - **`full`**: 完全なSVDを計算します。データが少ない場合や精度が求められる場合に使用します。\n", " - **`arpack`**: ARPACKライブラリを使用して特異値を計算します。`n_components`が1より小さい場合や、データセットが大きくて一部の成分だけを取得したい場合に適しています。\n", " - **`randomized`**: ランダム化されたSVDを計算します。高速で、大規模データに適しています。少しの精度の低下が許容される場合に使用します。\n", "\n", "3. **`whiten`**\n", "- **説明**: `True`に設定すると、主成分が分散1になるようにスケーリングされます。これは、次の処理ステップで特徴量のスケーリングが異なる場合に役立ちます。\n", "- **デフォルト値**: `False`\n", "\n", "4. **`tol`**\n", "- **説明**: `svd_solver='arpack'`の場合に使用される、特異値分解における許容誤差。小さな値に設定するほど精度が高まりますが、計算コストが増加します。\n", "- **デフォルト値**: `0.0`\n", "\n", "5. **`random_state`**\n", "- **説明**: `svd_solver='randomized'`の場合に使用される乱数シード。再現性のために設定します。\n", "- **デフォルト値**: `None`\n", "\n", "### その他の考慮事項\n", "- **データの標準化**: PCAを実行する前にデータを標準化することが一般的です。これは、各特徴量のスケールが異なる場合に、主成分の抽出がそのスケールの影響を受けるのを防ぐためです。\n", "\n", "これらのハイパーパラメータの設定によって、PCAの結果がどのように得られるかが大きく変わります。特に、`n_components`の設定は次元削減の度合いと情報の保持量を直接決定するため、データの特性や目的に応じて慎重に選択する必要があります。" ] }, { "cell_type": "markdown", "id": "d41121bf-c5f5-4367-9949-d2043c0cde96", "metadata": {}, "source": [ "### ② 二次元プロット(可視化)\n", "\n", "次元削減の結果を視覚化するためのグラフです。主成分分析では**スコアプロット**とも呼ばれ、データのクラスタリングやクラス間の分離状態を確認でき、PCAによって次元削減がどれだけ有効であったかを直感的に理解することができます。" ] }, { "cell_type": "code", "execution_count": 8, "id": "57ac28b2-a273-4f14-b4bd-2254ce5c5f94", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiQAAAISCAYAAAD80NTAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAABm/ElEQVR4nO3de1xUdd4H8M9hgPGCiAIBMhgmZqY+bdfVCsPKSxeW3ZEsfbLap61ty5Lcdq11N7WsrMdVWKttK8tq1XJprKx9vFSiWLpZqZlhSaECggJeUNEBZs7zx3jGGeZ2ztzOmZnPe1++iDOHmR8HlvOd3+/7/f4EURRFEBEREakoTu0BEBERETEgISIiItUxICEiIiLVMSAhIiIi1TEgISIiItUxICEiIiLVMSAhIiIi1TEgISIiItXFqz2ASGC1WnHgwAH06tULgiCoPRwiIqKIIYoijh8/jn79+iEuzvM8CAMSGQ4cOICcnBy1h0FERBSxamtrYTAYPD7OgESGXr16AbBdzOTkZABAR0cH1q5di7FjxyIhIUHN4cUUXnf18Nqrg9ddHbzuwdPa2oqcnBz7vdQTBiQySMs0ycnJTgFJjx49kJyczF/WMOJ1Vw+vvTp43dXB6x58vlIemNRKREREqmNAQkRERKpjQEJERESqYw4JERGRAqIoorOzExaLRe2haIJOp0N8fHzAbTEYkBAREcnU3t6OhoYGtLW1qT0UTenRoweysrKQmJjo93MwICEiIpLBarWipqYGOp0O/fr1Q2JiYsw3yxRFEe3t7WhqakJNTQ0GDRrktfmZNwxIiIiIZGhvb4fVakVOTg569Oih9nA0o3v37khISMC+ffvQ3t6Obt26+fU8TGolIiJSwN8ZgGgWjGvCq0pERESqY0BCREREqmNAQkRERKpjQEJERBTl7rrrLgiCYP+XmpqK8ePH45tvvsGSJUucHnP3r6KiIuRjZEBCREQUbhYLUFEBLF9u+xiGJmvjx49HQ0MDGhoa8MknnyA+Ph4333wzbr31VvvxhoYGjBw5Evfcc4/TsSuvvDLk42PZLxFRFLBYgMpKoKEByMoC8vMBnU7tUZFbJhMwbRpQV3f2mMEAlJUBRmPIXlav1yMzMxMAkJmZiRkzZmDUqFE4ceKE/TgAJCYmokePHk7HwoEzJEREbqjwBtZvJhOQmwuMHg1Mnmz7mJtrO04aYzIBxcXOwQgA1Nfbjofph3bixAksXboUeXl5SE1NDctr+sKAhIioi0i6wWvk/kZyWCy2mRFRdH1MOlZSErLo98MPP0RSUhKSkpLQq1cvfPDBB3jnnXc001dFG6MgItKISLrBq3x/I6UqK11/sRyJIlBbazsvBEaPHo3t27dj+/bt+M9//oOxY8fihhtuwL59+0LyekoxICEiOiPSbvAq399IqYaG4J6nUM+ePZGXl4e8vDxcccUVWLx4MU6ePIlXXnklJK+nFAMSIqIzIu0Gr/L9jZTKygrueQESBAFxcXE4depUWF7PF1bZEBGdEWk3eI3d38iX/HxbNU19vftpOEGwPZ6fH5KXN5vNaGxsBAAcOXIEzz//PE6cOIHCwsKQvJ5SDEiIiM6ItBu8yvc3Ukqns5X2FhfbfjiOPzRBsH0sLQ1Zvfbq1auRdeaXt1evXrjgggvwr3/9CwUFBSF5PaUYkBARnRFpN3iV72/kD6MRKC9334ektDRkfUiWLFmCJUuWyDo3HF1Z3WEOCRHRGdINHjh7Q5do9QYv3d+ys52PGwy24yHss0X+MhqBvXuB9euBZctsH2tqYv6HxRkSIiIHKr2Blc1dR1ajESgqYqfWiKLTARpZKtEKBiRERF1o9Qbvq+N4IPc3tp4ntTEgISJyQ2tvYFetsuWKdM1tkRq2BbI8I2drFQYsFGoMSIiIIsCMGZ4btgmCrWFbUZHyIEHqTOst0AFU2QuOYgyTWomIIkB9vefH/G3YJqcz7b33AhMmREYrfYpsDEiIiKKE0oZtcjrTtrR4fgzQVit9imwMSIiIooTShm2BdpzVWit9imwMSIiIIkB2tmtvFIkgADk5yhu2BavjrFZa6VNkY0BCRKSQxQJUVADLl9s+hmPJ4tlnbR+D2bBN6kzrKdCRSyut9Mmzu+66C4Ig2P+lpqZi/Pjx+Oabb+zniKKIl19+GT//+c+RlJSElJQUXHbZZSgtLUVbW1vIx8iAhIhIAZMJyM0FRo8GJk+2fczNDX1yZ2Fh8Duy+upMKwhAamrwZ2ZIHePHj0dDQwMaGhrwySefID4+HjfffLP98SlTpqCkpARFRUVYv349tm/fjr/85S94//33sXbt2pCPj2W/REQyySmRDWUZbCgatvnqTAtwr5xQsFgtqNxfiYbjDcjqlYX8/vnQxYX2Qur1emRmZgIAMjMzMWPGDIwaNQpNTU1Yv349li5divfeew9FRUX2r8nNzcUvfvELtLa2hnRsAAMSIiJZfJXIBtILRIlQNGzzFehouZV+JDJVmTBt9TTUtZ69oIZkA8rGl8E4JDwX9MSJE1i6dCny8vKQmpqKpUuXYvDgwU7BiEQQBPTu3TvkY2JAQkQkg5wSWaniREsdXuXyFuhotZV+JDJVmVC8ohginCPb+tZ6FK8oRvnE8pAFJR9++CGSkpIAACdPnkRWVhY+/PBDxMXFYc+ePRg8eHBIXlcuBiRERDLIrSSJ1ooTrbXSj0QWqwXTVk9zCUYAQIQIAQJKVpegaHBRSJZvRo8ejb///e8AgMOHD+PFF1/EDTfcgC+++AKiKEIINLs5QAxIiIhkkFtJwooT8qRyf6XTMk1XIkTUttaicn8lCnILgv76PXv2RF5env3zSy+9FL1798Yrr7yC888/H1VVVUF/TSVYZUNEJIOvEllWnJAvDcflTZ/JPS9QgiAgLi4Op06dwuTJk/HDDz/g/fffdzlPFEUcO3Ys5ONhQEJEJIOvElmAFSfkXVYvedNncs9Tymw2o7GxEY2NjaiqqsKDDz6IEydOoLCwEBMnTsStt96KSZMm4ZlnnsGXX36Jffv24cMPP8T111+P9evXh2RMjrhkQ0Qkk68SWVackDf5/fNhSDagvrXebR6JAAGGZAPy+4dmmm316tXIOrOm2KtXL1xwwQX417/+hYIzyUHLli3Dyy+/jNdeew1z585FfHw8Bg0ahDvuuAPjxo0LyZgcMSAhIlKAFSfkL12cDmXjy1C8ohgCBKegRIBtmq10fGlIElqXLFmCJUuWeD0nLi4O9913H+67776gv74cEb9ks3HjRhQWFqJfv34QBAHvvfee0+OiKGL27Nno168funfvjoKCAuzatUudwRKRpvjbAl6qOJk0yfaRwQjJZRxiRPnEcmQnO7fcNSQbQlryGwkifobk5MmTuOiii/DrX/8aEyZMcHn8ueeew4IFC7BkyRKcf/75mDt3LsaMGYPvv/8evXr1UmHERKQFJpP7pZeyMi69UGgZhxhRNLgo7J1atS7iA5IbbrgBN9xwg9vHRFFEaWkpZs6cCeOZvzBvvPEGMjIysGzZMvz2t78N51CJSCPUbgFPpIvThaS0N5JFfEDiTU1NDRobGzF27Fj7Mb1ej2uuuQaff/65x4DEbDbDbDbbP5d6+Hd0dKCjo8P+344fKTx43dUTLdfeYgFmzAC6dXP/uCAAjz4K3HijNpZiouW6Rxp3172jowOiKMJqtcJqtao1NE2yWq0QRREdHR3Qdfk/jtzf3agOSBobGwEAGRkZTsczMjKwb98+j1/3zDPPYM6cOS7H165dix49ejgdW7duXRBGSkrxuqsnGq79/Pm+z1mzJvTjUCIarnskcrzu8fHxyMzMxIkTJ9De3q7iqLSnvb0dp06dwsaNG9HZ2en0WFtbm6zniOqARNK1Ha6vFrmPPfYYpk+fbv+8tbUVOTk5GDt2LJKTkwHYIr5169ZhzJgxSEhICM3AyQWvu3qi5dqXlwN33+37vMWLbcs3aouW6x5p3F3306dPo7a2FklJSejmaYotRp0+fRrdu3fHqFGjXK6N3J2CozogkbZZbmxstNdeA8ChQ4dcZk0c6fV66PV6l+MJCQkufxDcHaPQ43VXT6Rf+6ws4NQpeedp6duM9OseqRyvu8VisXc3jYuL+CLVoIqLi4MgCB7vk7KeIxQD04oBAwYgMzPTacqtvb0dGzZswJVXXqniyIhILWwBT6RNET9DcuLECVRXV9s/r6mpwfbt29G3b1/0798fJSUlePrppzFo0CAMGjQITz/9NHr06IHJkyerOGoiUovUAr642BZ8OFbasAU8kXoiPiD58ssvMXr0aPvnUu7HnXfeiSVLluCPf/wjTp06hfvvvx9HjhzBz3/+c6xdu5Y9SIhilMUC9O1r60GydCnQ1HT2MbaAJ1JPxAckBQUFELs2E3AgCAJmz56N2bNnh29QRKRJ7pqhpaUBt99uawfPFvAUzRobG/HMM8/go48+Ql1dHXr37o1Bgwbh9ttvx2uvvYatW7d6/Npzzz0Xe/fuDen4Ij4gISKSw1MztJYW2xIOgxEKJ4slvPsh/fTTT7jqqquQkpKCp59+GsOHD0dnZyd++OEHvPbaa5g6daq9Z1dtbS2uuOIKfPzxxxg6dCgAuPQWCQUGJEQU9SwW28yIu8lUUbTljpSU2GZJGJRQqKmxbcH999+P+Ph4fPnll+jZs6f9+PDhwzFhwgSndhinT58GAKSmptqrVcMhqqtsiIgA2ztRxz/+XYkiUFtrO48olKSZuq6/j9K2BSZT8F+zpaUFa9euxQMPPOAUjDjy1psrXBiQEFHUa2gI7nlE/vA1UwfYZurk7jotV3V1NURRxODBg52Op6WlISkpCUlJSZgxY0ZwX9QPDEiIKOo59EUMynlE/lB7pq7rLMgXX3yB7du3Y+jQoU77t6mFOSREFPWkZmj19e7fnQqC7XE2Q6NQUmumLi8vD4IgYPfu3U7HzzvvPABA9+7dg/uCfuIMCRFFPakZGuDaoZXN0Chc1JqpS01NxZgxY/D888/j5MmTwX3yIGJAQkQxwWi0bayXne183GCwHWczNAo1NbctePHFF9HZ2YnLLrsM77zzDqqqqvD999/jn//8J3bv3h2Wsl5fuGRDRDHDaLSV9oaz/wORRM1tCwYOHIht27bh6aefxmOPPYa6ujro9XpceOGFeOSRR3D//fcH/0UVYkBCRDFFpwMKCtQehY0oWnD0aCXa2xuQmJiFlJR8CAKjo2gmzdS560MS6m0LsrKysGjRIixatMjrebm5uV47oIcKAxIiIhU0NZlQXT0NZvPZu5Jeb0BeXhnS07l+FM04U+ceAxIiojBrajJh165iAM7vQs3meuzaVYyhQ8sZlEQ5Lc3UaQWTWomIwkgULaiunoauwciZRwEA1dUlEMUgd8ci0jgGJEREYXT0aKXTMo0rEWZzLY4eZR97ii0MSIiIwqi9XV7XK7nnEUULBiRERGGUmCiv65Xc84iiBQMSIqIwSknJh15vAOB5d9X4+FSkpLCPPcUWBiRERGEkCDrk5ZXBfVKrTWdnC5qb3w/foIg0gAEJEVGYpaUVIT4+1csZQlAqbUTRgiNHKnDw4HIcOVLByh3SNPYhISIKs6NHK9HZ2eLljLOVNklJV/n1Gmy8RpGGMyRERGEW6kobqfFa1/JiqfFaU5PJr+elyNbY2Ihp06YhLy8P3bp1Q0ZGBq6++mq89NJLaGtrs5+3bds23HLLLcjIyEC3bt1w/vnn45577sEPP/wQ0vExICGiqGWxABUVwPLlto8WjaxYhLLSho3XIkO4l9N++uknXHzxxVi7di2efvppbNu2DR9//DEefvhhrFq1Ch9//DEA4MMPP8SIESNgNpuxdOlSVFVV4a233kLv3r3xl7/8JaRj5JINEUUlk8n9BmZlZaHdwEwOqdLGbK6H+8BBgF5vQEpKPjo7rYqeW0njtT59ChQ9NwWHGstp999/P+Lj4/Hll1+iZ8+e9uPDhw/HhAkTIIoi2tra8Otf/xo33ngjVq5caT9nwIAB+PnPf46jR4+GZGwSzpAQUdQxmWxbvNd1uS/X19uOm1ResThbaQO4lv/aPs/LK/Vr5182XtM2NZbTWlpasHbtWjzwwANOwYgjQRCwZs0aNDc3449//KPbc1JSUoI+NkcMSIgoqlgstpkRd7unS8dKStRfvklPN2Lo0HLo9dlOx/V6Q0Cb6yldDmIlTviotZxWXV0NURQxePBgp+NpaWlISkpCUlISZsyYgT179gAALrjggqC+vlxcsiGiqFJZ6Toz4kgUgdpa23lq77aanm5EWloRjh6tRHt7AxITs5CSku/XzIhEyXIQK3HCS+3lNEFwno374osvYLVa8d///d8wm80Q3UXxYcQZEiKKKg0yVyLknhdqgqBDnz4FyMiYhD59CgIKRqTnk7Mc1Nz8Pitxwkyt5bS8vDwIgoDdu3c7HT/vvPOQl5eH7t27AwDOP/98AHA5L1wYkBBRVMmSWZgi97xI5Gs5KC2tiJU4KlBrH6PU1FSMGTMGzz//PE6ePOnxvLFjxyItLQ3PPfec28dDndTKJRsiiir5+bZqmvp693kkAJCTYzsvmnlbDjpypIKVOCpQspwWbC+++CKuuuoqXHbZZZg9ezb+67/+C3Fxcdi6dSt2796NSy+9FD179sSrr76KW265Bb/4xS/w0EMPIS8vD83NzVixYgX279+Pt99+O+hjk3CGhIiiik5nK+315rbbbOdFO0/LQazEUUcoq6t8GThwILZt24brr78ejz32GC666CJcdtllWLRoER555BE8+eSTAICioiJ8/vnnSEhIwOTJk3HBBRdg0qRJOHbsGObOnRv0cTniDAkRRR2jEXjkEeB//9f94/PnAyNGqN+PRC1qLR3Q2eU098nEpSFNJs7KysKiRYuwaNEir+dddtllePfdd0M2Dk8YkBBR1LFYbN1ZvSkpAYqKYmOmpCs1lw4oNNVV0YBLNkQUdZSU/sYiNZcOyCbY1VXRgAEJEUWdSCv9VUOoGrMR+YtLNkQUdVj6Kw+XDkhLGJAQUdTxVforCLbHo730Vw5p6YBIbVyyIaKo41j626Vbtv3z0tLYTGilwKndYl2LgnFNGJAQUVQyGoHyciDbOUUCBoPteKhLfrlpXfRJSEgAALS1tak8Eu2Rrol0jfzBJRsiilpGo620t7LSlsCalWVbpgn1zAg3rYtOOp0OKSkpOHToEACgR48eLhvWxRpRFNHW1oZDhw4hJSUFugD+z8WAhIiimk4X3l19m5pM2LWrGF37e0ib1rGCJbJlZmYCgD0oIZuUlBT7tfEXAxIioiARRYuPTesEVFeXIC2tiJUsEUoQBGRlZeGcc85BR0eH2sPRhISEhIBmRiQMSIiIguTo0UpuWhcjdDpdUG7CdBaTWomIgoSb1hH5jwEJEVGQcNM6Iv8xICEiChJp0zrX/WEkAvT6HG5aR+QGAxIiogBJPUcOHVqBzMx7zhzlpnVESjCplYgoAO56jsTHpwIAOjtb7MdsfUhKWfJL5AEDEiIiP3nqOdLZeRiAiNzcOejefRA3rSOSgQEJEZEf5PQcaWh4FSNG1DAQIZKBOSRERH5Q0nOEiHxjQEJE5Af2HCEKLgYkRER+YM8RouBiDgkRRQxRtODo0Uq0tzeonigq9Rwxm+vhPo9EgF5vYM8RIpkYkBBRRHBXXmsrpS1TpZRWEHTIyys7U2UjwDkoYc8RIqW4ZENEmieV13ZNIjWb67FrVzGamkyqjCs93YihQ8uh12c7HdfrDRg6tJw9R4gU4AwJEWmanPLa6uoSpKUVqTIbkZ5uRFpakWaWkogiFQMSItI0JeW1ffoUhGlUzgRBp9prE0ULBiREpAkWC1BZCTQ0AFlZQH4+oNOxvJYoVjAgISLVmUzAtGlAncNEiMEAlJUBo0ezvJYoFjCplYhUZTIBxcXOwQgA1Nfbjq9fbyuvdd09VyJAr89heS1RhGNAQkSqsVhsMyOim3xV6VhJiQ7nnVd25mjXoITltUTRggEJEammstJ1ZsSRKAK1tUBVFctriaIdc0iISDUNMvNQGxqAggKW1xJFMwYkRKSaLJl5qNJ5LK8lil5csiEi1eTn26ppBA/5qoIA5OTYziOi6MaAhIhUo9PZSnsB16BE+ry01HYeEUU3BiREpCqjESgvB7Kd81VhMNiOG5mvShQTmENCRKozGoGiIvedWokoNjAgISJN0OmAggK1R0FEauGSDREREamOAQkRERGpjks2RKRpomjB4cOV2LmzAS0tWUhNzUd+vo75JURRhjMkRKRZTU0mfPppLnbuHA1gMlJTR+PQoVwUF5tgMqk9OiIKJgYkRKRJTU0mfPttMeLinDe7SUurx0MPFaOsjEEJUTRhQEJEmiOKFuzZMw2A6NIwLS5OhCgCDzxQgocftsBiUWWIRBRkDEiISHNsG+jVeWwpHxcn4pxzatGnTyUqK8M7NiIKDSa1EpHmtLfL2wY4NbVB9o7BJJPFwg51pAoGJESkOYmJ8rYBbmnJkr1jMMlgMgHTpgF1Dnk7BoNtwyH28KcQ45INEWlOSko+EhMNsFrdr9lYrQIOHcrBkSP53Ak4WEwmoLjYORgBgPp623FmEFOIMSAhIs0RBB0GDSqDIMAlKLFaBQgC8MILpVi4kP1IgsJisc2MiKLrY9KxkhIwg5hCiQEJEWlSeroRw4aVQxSdtwFuajJg0aJyTJtm5CpCsFRWus6MOBJFoLYWzCCmUGIOCRFpVnq6EddeW+TUqTUjIx//+hdnRoJKbmYwM4gphBiQEJGmCYIOqakF3Ak4lORmBjODmEIo6pdsZs+eDUEQnP5lZmaqPSwiIu3Iz7dV03hq/CIIQE4OmEFMoRT1AQkADB06FA0NDfZ/O3fuVHtIRETaodPZSnsB16BE+ry0lP1IKKRiYskmPj6esyJEFDRR2TvMaATKy933ISktZR8SCrmYCEj27NmDfv36Qa/X4+c//zmefvppnHfeeR7PN5vNMJvN9s9bW1sBAB0dHejo6LD/t+NHCg9ed/Xw2tusWgXMmGFrzyHJzgaefRYoLAz+64X1uhcWAjfeCGzeDDQ2ApmZwMiRtmgrxn7u/H0PHrnXUBBFd4Xn0eP//u//0NbWhvPPPx8HDx7E3LlzsXv3buzatQupqaluv2b27NmYM2eOy/Fly5ahR48eoR4yERFR1Ghra8PkyZNx7NgxJCcnezwv6gOSrk6ePImBAwfij3/8I6ZPn+72HHczJDk5OWhubrZfzI6ODqxbtw5jxoxBQkJCWMZOvO5qivVrb7EAw4c7z4w4EgTbTMk33wR3+SbWr7taeN2Dp7W1FWlpaT4DkphYsnHUs2dPDB8+HHv27PF4jl6vh16vdzmekJDg8ovp7hiFHq+7emL12n/2GVBd7f2cPXuALVsQkhLlWL3uauN1D5zc6xcTVTaOzGYzqqqqkMV6eiJSgL3DIoDFAlRUAMuX2z6y1X1EifoZkkceeQSFhYXo378/Dh06hLlz56K1tRV33nmn2kMjCgtRtODo0Uq0tzcgMTELKSn5EIRILwkJP/YO0zjuVBzxoj4gqaurw6RJk9Dc3Iz09HSMGDECW7Zswbnnnqv20IhCrqnJhOrqaTCbz/6R1usNyMsrQ3o6/0grIfUOq693vwedINgeZ+8wFUg7FXf9wUg7FZeXhz8oicra8NCK+oDk7bffVnsIRKpoajJh165iAM5/pM3meuzaVYyhQ8sZlPjQ9Z6yYAFw66224MPx3sfeYSrytVOxINh2Ki4qCt8Ph7M1fon6gIQoFomiBdXV09A1GDnzKAAB1dUlSEsr4vLNGV2Dj+Zm4OGHXe8pjzxiS1Fg7zCNULJTcTg2RNLibE2EYEBCFIWOHq10WqZxJcJsrsXRo5Xo06cgTKPSLndvaN2prwfmzwdWrADS0jgbrwlayjbW4mxNBGFAQhSF2tvl/fGVe1408/SG1h3pnjJ9OlBTw3uKJmgp21hrszURJubKfoliQWKivD++cs+LVt7e0HrieE8hDdDSTsVamq2JQAxIiFQgihYcOVKBgweX48iRCohicPslpKTkQ683APDwRxoC9PocpKTEdklIRYXvZRpPeE/RCC3tVKyl2ZoIxICEKMyamkzYsiUXO3aMRlXVZOzYMRpbtuSiqckUtNcQBB3y8sqkz7o+CgDIyyuN6YRWkwmYONH/r+c9RUOknYqzs52PGwzhTSLV0mxNBGJAQhRGUilu14RTqRQ3mEFJeroRQ4eWQ693/iOt1xtivuRXyhs5fFj51/KeolFGI7B3L7B+PbBsme1jTU14K1q0NFsTgZjUShQmapTipqcbkZZWxE6tDvzJG5HwnqJxOp36yaLSbI27PiTBqA2P4oZrDEiIwkStUlxB0LG014GvQghv2G+EZDEabaW9wQ4corzhGgMSojBhKW7oyXnzKDcZtW9f4KWXgPT0qHwzSqEW7NmaGGi4xoCEKExYihtact88yk1GXbECuO664I6RyC8x0nCNSa1EYcJS3NCR3jx2XYqR3jyaHHKF5RZCqJ2KQGSnpOFaBGNAQhQmLMUNDV9vHgHbm0fLmVYvLISgiBMjDdcYkBCFgdQIzWo1Izd3NhIT+zk9zlJc//nz5lErbSuIZImRhmvMISEKsaYmE6qrpzlV2CQmGnDuuXPQo8cgluIGyN83j6EqhCAKOmmdsb7e/VSgINgej/DmOAxIiEJIaoTWtfdIe3s99u2bjaFDy1mSG6BA3jxqoW0FkU/SOmNxsS34cAxKomidkUs2RCHiuxEaUF1dEvR9bOSMK5T76IQbu3VTTIiBdUbOkBCFiFqN0ETR4rEzq7vlI73egLy8sojNX1Hy5jGKm1xSLIjydUYGJEQhokYjNG8BBwC3y0fSPjqRnFQrp1t3lDe5JK0LVjQcxeuMDEiIQiRcjdCkGZHm5vdRX1/q8rgt4JiA+PhUhHMfnXDz9uYxBppckpYxGpaFAQlRiEiN0MzmergPBATo9YaAGqG5mxFxZXvtzs4Wr+eEYvko3Ny9eYyRJpekVYyGZWNSK5Ef5CSGhroRmlTB4z0YUSYa99GJkSaXpEVKu/bFOM6QECmkJDE0Pd2IoUPLPZxf6nfOhvcKHv+pvY9OKJJOY6TJJWmRkmg4SvNClGBAQqSAp74i3hJD09ONSEsr8lj54g/fFTxKBb58FKhQLbPHSJNL0iJGw4pwyYZIpkD6igiCDn36FCAjYxL69CkIOHFU+dKKcCapVYAW99FRsjmeUuxTQqphNKwIAxIimZT0FQk1ZUsrtjvx4MEvY+jQcuj1zo2V1N5HJ9TL7NxMj1TDaFgRLtkQyaRGXxFPfFfwnNXSYkBi4tl8lWAvH3lrxCZHOJbZ5fQpIQq6GGn5HiwMSIhkCldfETmkCh5bPosAx6DEarX9rSsvL8FnnxXh22/zYbXq7NWF0vJRMASj82u4ltmjvMklaRWjYdkYkBDJFI6+Ikp4quBpasrBCy+UorLy7B+6UPTa8CfB151wLrNHcZPLyBfNff0ZDcvCgIRIJm+zEmolhkoVPBs2VOLJJxvQ0pKFnTttMyKOgl1d6DvBV37n1xjZWZ28iYVOpoyGfWJSK5EC0qyElhJDBUGHhoYCfPrpJOzYUeASjDgKVnVhMBN8fSWdiiIwYYItmGL/qCgUyhIriigMSIgUSk83YsSIvbjoovW44IJ/YuDAhTjvvGcQH9/XbclvOIS7ujDYCb6edlaPO/MXqrQUGD0ayM3l/SmqsJMpOWBAQuQHQdChs/MwamoexY8/PoyqqtuxY8dobNmSi6am8N8xw11dGIoEX6MR2LsXWL/edg8CXO9DfNMcZdjXnxwwICHyg6d9ZKSEznAHJeHutSEl+Lo2WbO/KvT6HMUJvjqdLWgqL3f/ON80w/aNV1QAy5fbPkbyhWAnU3LAgIRIoUA6toaSp2UPgyH4G4qGcuNAvmn2wmSyrVuNHg1Mnhz561jsZEoOGJAQKaSljq1dOS57LFtm+1hTE5pChfR0Iy68cAUSEtKcjgea4Ms3zR6sWhV9yZ/sZEoOGJAQKaSljq1dhbOVQ1OTCT/++DA6OprsxxIS0jBw4F8Dqjbim2YPZsyIvuRPLff1l65leXnkL41FCAYkRAppqWOro3DO5nvKoenoaMF3390aUA4N3zR7UF/v+TE11rGClcsSzrVGuUwmYPhw23/ffXfkL41FCAYkRAqFKqEzEOFs5RDqHBotv2nWvHCtYwU7+g3nWqMv0v+ZugaAkbw0FiEYkBApFMqETn+Eu5XDsWObQ55Do8U3zREhHOtYoYp+pU6mkybZPqq1TMO+KKphQELkBy11bA13VUp7e6PM8wJ7t66lN82akJ2t/jpWtN+wWeKlKu5lQ+QnaR+Zo0cr0d7egMTELKSk5Id1Lxsg/FUpiYmZMs8L/N16xGz/EY5s4mefVX8beyU37Ij4wXXBEi9VcYaEKACCoEOfPgXIyJiEPn0Kwh6MAOGvSunde6TmcmhUFa5s4sJC9dexov2GzRIvVTEgIYpw4a5K0VoOjarCvTGc2utY0X7DZomXqhiQEEW4UFWleKvq1FIOjWrUyqdQM/kz2m/YLPFSFQMSoigQ7KoUd6sQUlsGieOux0OGLMNFF63HiBE1sRGMALGZABkLN2zp/0z9+jkfZ4lXyDGplSKSxQJ89ll4OpJGCqMRKCoKPLdSWoXo+sb/wAHbx1Wrzv5NlnJooo6cJNVoz6fwRLphT5vmHJAZDLZgJBpu2EYjcOONwJo1wOLF/CMTJgxIKCINHw5UV5/93GCwvXGLhr+FgQi0KkXOKsSjj9oCn6j922wyub/Zdv0Fi/Z8Cm+CFf1qmfS9FBcDCQnqjiVGcMmGIsqqVbaPbKIYGr5WIQDb49G0CuFESZJqpORTBKvFe1daaGRGUYUBCUUMi8W2v5g70dCTSQtidRUCgPIk1UjIpwjnBkdEAWJAQhGjslJ7+4tFm4hehQh0JsCfJFUt97gPd0kyUYCYQ0IRI6bfvYeJtApRX+9+ogCwPe6yChGOTqXeyM37cNR1zN6iXUddf8G0mE/ha7ZHEGyzPVGdDESRhgEJaZrjPePgQXlfo8l37xFCWoXw1qF83rwu9zB/goFg8lQWJM0EuJupcDfmtDR5r+fuF0xrPe6jvcU7RSUu2ZBmdV3+fvhh72/mtJJDGOk8rUJInxcWOhxUe1nAn+Zknsbc3Oz9tSLpF4zTiRSBGJCQJnm6Z3hKC9BKDmG0cNeh/JtvupykhZ1fleZ9eBuzI60mqcoV0clAFKv8CkjeffddPPTQQ5g+fTrWrFnj8bw33ngD1157rd+Do9hksQD33uv7nuFICzmE0cZnVacWOpUqnQmQU9cMuC7fRNovWKSUJBM5UJRDYrVaYTQasWrVKohn7hZlZWW47rrr8NZbbyEjI8Pp/L1792LDhg3BGy3FhKeeAlpalH3NggWRc6+IGlpYFlA6EyB3LAsX2taotJKkqpScZKBIme2hmKFohuQf//gHPvjgA1x66aVYtmwZ/vWvf2HcuHH4+OOPceWVV2Lfvn2hGifFCIvlbGsHuQQBmD6d/UfCTgvLAkpnAuSOJTs78pt+abkkmcgNRQHJG2+8gezsbGzYsAG33XYbJkyYgH//+9946aWXUFdXh2uuuQY1NTWhGivFgMpK4PBhZV/D/iMq0cKygNLmZFoYczi5SwaqqWEwQpqkKCD57rvvUFhYiO7duzsdv/fee2EymXDw4EEUFBTgp59+CuogKXYEMrvPgoEw00qnUiUzAUrGHKqW6+HGFu8UIRQFJFarFb1793b72E033YT33nsPTU1NuOaaa7Bnz56gDJBiSyCz+1osGIiWe5pH4VwW8HYxlcwEyBkzW64ThZ2ipNb+/fvj+++/9/j4uHHjYDKZ8Ktf/QoFBQUoYMMdkklqgFZfD6Sn21pCyK2yEQQP3UNVpna/sLAJR6dSORdTSXMyb2P2p9EaEQVMUUByxRVX4L333sPp06fRrVs3t+eMHz8eK1euxK9+9Su8/fbbQRkkRTd39xq5tFowEHP3tFB2Kg3VxXQ3ZrZcJ1KNoiWbwsJCtLa24o033vB6nhSUJCQkBDQ4in6eGqC5k5oK9O3rfEyLBQNa6BcWamFbigr3xdRCbxWiGKVohqSoqAhVVVXo1auXz3PHjx+PHTt2oLGx0e/BUXST0zQzPf1sS4j8fKCjA1izBli8WLvtIaJ9G5FVq8K4FBXui6mF3ipEMUpRQBIfH4/BgwfLPn/w4MEu52/YsAEbNmzA448/ruSlKQrJaZrZ1ARkZp6911itto/FxYBWJ+Ci/Z42ZQrQ1uZ8LGRLUeG+mKHsraL2jshEGhf2vWwqKiowZ86ccL8saZDce8jEiZFV3KCFfmGhIK2KhHUpKtwXM1R9SjxV7ZSXR3kZFpF83FyPVCP3HnL4cHA2jhVFC44cqcDBg8tx5EgFRNESklyIaO29tXmz98dDkl4R7osZit4qnhKl6uqAW25haTHRGQxISBWiaMHw4RUoLl6On/2sAnFxviOBQN59NzWZsGVLLnbsGI2qqsnYsWM0Pv00F8XFJlx3nQXPPluBJ59cjvHjK2AyBRaVaKVfWLDJTQcL6lKUGhczmL1V5O4uLJHWvhiUUAxSlENCFAxNTSZUV0+D2VyHBx6wHTt0yIDnny9DZaX7P/bSu29f79I9vd6uXcUAnG8KglCPhx6agLvuSkXv3md38zt0yIBVq8pQWOh/MoR0T3OX/Flaqq2qILkyM4HWVt/nBX0pSo2LGazeKnJ3F5awtJhiGAMSCitPwUFaWj3mzCnGrFnlHoMSwPYuvUcP+a8nihZUV09zeT0AiIsTIYpAcrLz1sJpafUQhGIcPFiOjIzAghJP97RIzG8ceYUFaz4GBFjdPi7ACoOuAflXZgII8jcTjuZrXQWjt4o/00WRXoZF5CcGJBRyomjB0aOVMJvr8eOPD8NTcGC1CnjggRJ89lkRrFb3Nxq579Ilttf1/A7VXWqCNJaqqhKcc04RBMH/m567e1pQO7iGMbLRfXF2ekqAFaLDiq8UpJRaHoTu84dCcyMNZfO1UAlkuihSy7CI/MQcEnLiLvFTzmOeOOZu7N59Ozo6mjyeGxcnIiOjFsOHu2ZFSrmLI0cq+37a2/37ox4XJwKoxdGjwW2A5Sm/0a/UgXDvt3ImieQt3IFs1Ds9ZEAdylEMI1b6fyONxo1/fCXlehNpZVhEAeIMCdk55nZI9HoD8vJsSYWeHktPd/+23tPyjC9pac43tEByFxMTA/uj7m9A405Qu5K7aacuxgFH0+rQ/uIEJMbPQUrhzIBmd1xmX9LTgZMnUYhVKEI5KpGPBmQhCw3IRyV00lKOPzfSaN34R0rKLS62/YDlJLdqdXMmohBjQEIAPAcPZnM9du2a4PZrzOY67No1AQZDCVJTi5CSkm+/AXrL3fBFEJxvaI65ix0dyp4rJSUfer0BZnO9X2OJjw/eu9SgNR11E9k05QPVUwHzOdKRWdBvfgV5gzwHjF65CxAGDgT++ldAEKCDFQXY4Pw1/t5Io33jH09Jue5EchkWUYBCvmSzfft2p89/9rOf4Y477gj1y5IC3oMH3zfxurpS7NgxGlu25KKpybZc4Ct3wz0Ben0O/u//8mXtIi/rGQWdfYYHcJ42F0XPb1itVgEHD+bg4ovzg7YCErSmo10im6Z8YNccwJzufJq5vQ67dhXbfyayeVpXkgYmTec48vdGqnSvmkhd1jEagb174fSLvWKFLYBzpMXNmYjCJCQzJMeOHcPSpUuxePFi7NixA52dnfbHioqKUFRUFIqXJT/5Fzy4ss2mFGPo0HJYrWY/nkFEXl4p4uN1Qc1dTE83YujQcpclJ6s1FXFxLbBahTM5I9JxAYIAvPBCKerqdEF7kx60pqMOEYsYZ5sZAdA13rKrri5BWprM5Fw5AULfvrYAJBgluEqmjQ4fjuxlHXdJuUZj5JVbEYVIUAOS9evXY/HixVi5ciVOnz4NURRx6aWXBvMlKASClychAhBQXV2CCy543Y+vL0HfvkZ7VU57ewMSE7OcloL8lZ5uRFpakcvzHjr0Pr77bhoAhxmHJgNeeKHUXn6suC2Eh8oXKb+xvt79/V72iodDxHJ0uOMyjTsizGZbcm6fPgW+xy6nb8bhw7Yd9nS6wG+kcqeN3n/fFnhE27JOJFYOEYVIwAFJfX09Xn/9dbz++uvYu3cvAKBPnz6477778Otf/xrDhg0L9CUoxAJN/HRmuwGKIhAfn4rOzhbfX3JGSUkRBgwwYerUadDp5CfPyiUIOpebckaGEVVVRSgpqURqagNaWrKwc2e+U9mxorYQXpIzdUajx/xGRSseDpFNe6q8vBizuR5HjlT4DvLkBgiHDgGTJsk71xu500ZLlwYpG5iItMqvHJLOzk68++67uPHGG5Gbm4vHH38cBw4cwIQJEyCKIoxGI/76178yGIkQUuKnxzl/P7S0fCg7GJHyNXr3bsZDDxUjLs75Hbq0FKQ4F0KmhgYdduwowKefTsKOHQUee6A0fPKd95wFGTW9QelK7tBOPfGwjPMB/Pjjw05t8x3zfZxocTO79HTbts+ehGQTHSIKN0UByXfffYff//736NevHyZOnIjVq1fjiiuuwN///nc0NDRgxYoVoRonhdDZxE/lVSieHDq0VNZ5Ur7Giy/+FQ88YGua5npvso2rurpEVu8TpWTfg+fe77nPh4LkTHf5jYoTd89ENikt2dAfAjw0T7Xr2v/FY5Anp29GMEtS5exV89//Le+52EiMKKIpCkiGDRuG0tJSJCUlYebMmfjhhx/w2Wef4be//S1SUlJCNEQKh/R0I7KzS4LwTAISEtK9NkBz1NRkwKxZ5Th2LB3nnFPn5T5oWwo6dsyPzWx88PkmHVbkYD/yUem5g5mS5EycTR2YNMn20a+VBqMRQs0+5J0zx4/JLRGAiOrqac5BnpwAYd688G5mJzcJ3lNkGamVOUQxRvGSjSAIuOKKKzBixAicd955oRhTSLz44osYMGAAunXrhksvvRSVnN51kZYm7w9/Wlrxmf/qehe0fZ6RIe8d7Ztv/hmTJ9egstKI1FR5727b22VuOauA13uw1BIdJbbGX+5KUYEg1vQqpNMhveBxDB327pllt7MSEtI9fNFZZnMdjq56yvmgpwBB+rywMJARu+dt2kjOsk5OjvtZm3B3syUivykKSF599VWMHDkSK1asQGFhIfr164fp06fj66+/DtX4guKdd95BSUkJZs6ciW3btiE/Px833HAD9u/fr/bQNMV3LomtT8jQoW9j6NB3odc737D0egOGDi1Haqq8wObrr6+z52u0tMhbN0lMzJR1nlIe36Q7tkSXuMtZCHfuRRfp6UaMGLEXF120HkOGLMNFF61HXt5CWV/b/rdZrjdodwHCN98Ef+COPE0byZm1cZcNHNQ+/UQUaooCkv/5n/9BZWUldu/ejd///vcQBAGlpaW4/PLLMWzYMMybNy9U4wzIggULcPfdd+M3v/kNhgwZgtLSUuTk5ODvf/+72kPTnKyse+A+l8T2hz8vrxSCoHN7Axwxogbp6UafgY2UxLpz59l3tDt35uPQIQOsVu/BUO/eCjezUcB+D/7zJ1iGSViPAtRggHMw4shxtiOQd/FBIlURZWRMQp8+BUhMzPb1JQCAxBa4zvgAQVpXChKl2cBKG64Rker8Kvs9//zz8dxzz+GZZ57BqlWrsHjxYqxevRozZ86EIAioqKjAW2+9heLiYnTv3j3YY1akvb0dX331FR599FGn42PHjsXnn3/u9mvMZjPM5rONvVrPbC/b0dGBjjO9y7t+jHTNzavw008z0N5eD8D1Z5aYaMB5581DSkqh0/eclHSV/b87O62Qsitzc8uwe/eUM4+4Nh175ZVS6PVnzweAl18uw5/+NAUWC5walUmBTW5u6ZnXCO11v+raOOCv79vGC73nfNHMTOde9mVlwJQz37Onml6r1fYvDHr2HIGEhLwzP1M3rEBiM9BzD9BhbQY2bgSuvtrj86n+O19YCNx4I7B5s22jv8xM226LOp3rngKbNgEtLYC3vz/Nvr9nLVD9uscoXvfgkXsNBVGUs9uTb42NjViyZAlef/117NmzB4IgICkpCbfddhv+8Y9/BOMl/HLgwAFkZ2fjs88+w5VXXmk//vTTT+ONN97A999/7/I1s2fPxpw5c1yOL1u2DD169AjpeImIiKJJW1sbJk+ejGPHjiE5OdnjeUELSBxVVlbi1VdfRXl5OU6fPg2LitOiUkDy+eefY6TD3vVPPfUU3nrrLezevdvla9zNkOTk5KC5udl+MTs6OrBu3TqMGTMGCQkJof9GQkQULdi6dbjnd9EQkJiYjcsv/8avbqmiaMGxY5vx7beNePTRTOzaNdJjnw8A+OADYNQo29e0tzciMTETvXuPtL922K77qlXeZzveestzcqfF4v5dvEqaNz2Ln5qeRrtDjmviIeC8V4A0x0nCjz7yOUMSMb/zmzYBN93k+zwf37MWRNR1jyK87sHT2tqKtLQ0nwFJSPayyc/PR35+Pp5//nksX748FC8hW1paGnQ6HRobnaszDh06hIyMDLdfo9frodfrXY4nJCS4/GK6O6Y1nlqxi6IFdXUvoKOj2mvbiY6OPTh5cou81uMuEpCePhqNjcAXX/g+u6kJSEy0fY3XZw31dZdyErp2Xc3J8b1nS0KCrZpDI7JGPYbMAS/haGo92vvackZSdgKCtHIk9awfNUpW4BQJv/MYNQpITfXdp1/m96wFEXHdoxCve+DkXj/FAclPP/2EEydO4MILL0R8vPsv7+joQFVVFZKSknDvvfcqfYmgSkxMxKWXXop169bhV7/6lf34unXrYmKTv6Ymk8umcnq9AeecMwmHDi2XvaleoPvdqFyE4h+j0dYDI9I3P9PpIJT+DX2Kz5Rr+92zPoJIlTkB9+knonBRVGWzf/9+DBs2DI8//rjHYASwRUOzZs3C8OHDUV/vaSkgfKZPn45XX30Vr732GqqqqvDwww9j//79uO+++9QeWkg1NZmwa1exS9BhNtehtvZ/Fe3wG+h+N8EoQrHN9GwCABw9uikkXVtdaKnSJBBB6VkfYWLxeyaKYIpmSF555RV0dnZiwYIFPs9dsGABBg8ejJdeeglPPvmk3wMMhltvvRUtLS144okn0NDQgGHDhuHf//43zj33XFXHFUqiaEF19TQE3g5egF5vQEpKYOWqgb5hlWZ6Tp9uAbAc3357E7p1Sw3KpnsxI1pmfJSIxe+ZKEIpmiFZs2YNRo4cKatD64ABA3DVVVdh9erVfg8umO6//37s3bsXZrMZX331FUaNGqX2kELq6NFKRTMg7jn3HgmUv29YPc/0hHbTvagULTM+SsTi90wUgRQFJD/88AMuueQS2edffPHF2LNnj+JBUeACzfkAznZeDeYMhNKN5bzP9IR20z0iIgofRUs2p06dQs+ePWWf36NHD5w+fVrxoMg3T5UzkkBzPgYOXAiD4cGAZkYsFvcz5dIbVjl8z/TYNt07erTSzyogIiLSAkUBSd++fVFbWyv7/Lq6OvTt21fxoMg7T5UzjvkUUvt2s7keyvJIbDkjgQYjJpNrxazBYMsjUZJLKHemJxgzQkREpB5FSzaXXHIJ1q1bh/b2dp/ntre3Y+3atbj44ov9Hhy5kptPIQg65OWd2ZBM9t70wckZCeaeZnJnegKdESIiInUpCkiKi4vR2NiIWbNm+Tx3zpw5OHjwICZOnOj34MiZ0nyK9HQjhg4td7Mrbw5ycv7gsl29r5wRUbTgyJEKHDy4HEeOVLjN2/B7TzOLBaioAJYvt308c4LcHYgDrQIiIiJ1KVqyueOOO1BWVobnnnsODQ0N+Mtf/oKBAwc6nfPjjz9i7ty5ePPNN3HRRRfh9ttvD+qAY5k/+RTp6UakpRW5zTc577xnvOahOJKzTATYcka6zow4jVAEamtt59nzSLys7whGI/LyyrBrVzFcgxI3MzqeEleIiEjTFAUkOp0OH3zwAcaOHYs333wTb731FgwGAwwG2zvt+vp61NbWQhRFDB48GO+//z50vBkEjdw8iaamdwHAHmBI29J35em46/OZzgQEztMe0jKR46xKg8xUDvt50vpO1ykVaX2nvBzpRttMz9k+JDa2gKj0bEAUrMQVBjVERGGnuHV8//798eWXX+J///d/8dprr6G2ttYp0TU7Oxt33303HnnkESQlJQV1sLFObp7EgQPP48CB593OYMh19p5sQVaWt2UiAdXVJUhLK4Ig6JS1iPe1viMItvWdoiL7TE9z80Z8/nkrhg37CGlpo87OjMgIbGQFJcEIahjQEBEppiiHRJKUlIQ5c+agtrYWe/fuxZYtW7Blyxbs3bsXtbW1mD17NoMRL+TkYrjjO5/Cmb+Nw0wmIDfXtj/cs89WApC3TAQobBGvZH0HthmdlBTbzqwpKVc7L9P4lbjSRQDZuPaf6YcP48j4TIjXjQYmT7ZdxNxcZZm8REQxSHFAsmXLFlx33XVITk5GcnIy/ud//gcAcMUVV6B///5BH2C0aWoyYcuWXOzYMRpVVZOxY8dobNmSKytoUF45o7xxWNd7cmqqsrJbqUW8bbxuRiQCv/nNmU8Ur+842LTpbAJsRYWiwMatAIIap59pUil2zGzGluVAk5Rn6095ERFRjFEUkOzcuRPXXnst1q9fjxMnTuDEiRP49NNPMXr0aOzatStUY4wawWiB7qlyxjPnGQxv3N2TW1qUl916ahEvmTXrzKTBnuGynttpHWjVKtvHm246OwMht5LLWwCkcLZG4vFnmgbsmnMmKFEyS0NEFKMUBSTz5s3D6dOnMXPmTDQ2NuLgwYP405/+hFOnTuHZZ58N1RijQjBboKenGzFixF5cdNF69Os3Vdbry0mIdXdP3rkzH4cOGWC1Kiu7lVrEz5nj/qvq64Hi2UNhSv2N/C2ATSZgyhTX8w4f9vg9Oema4OJYavzJJ/KewyGo8fozjbMdrn4AEOMgb5aGiCiGKQpIKisrcfXVV+PJJ5/EOeecg/T0dMydOxdXXXUVNmzYEKoxRgUlJbtySBUy6ekTZJ0vJyHW3QSC1arD88+XQRDgEpRYrQJEEXjuuVKsXOk+afOVV9y/lm3SQEAJymAR41yDkq5bAHtbUvGla2ADOCfKTJ4MzJ0r77kcghqfP9M4wJwBHHWcCPrkE86SEBG5oSggOXjwIEaMGOFyfMSIETh48GDQBhWNQtUCXW7jsB078rv2HHPhqUKmstKIWbPK0dzsvAbT1GTArFnleP99o9sUCVmrIC09UDnnU99bAPt6Mk+6BjaA5+RVX89zJqiRElil8mpf2lMdPpk7l0muRERuKCr77ejocFs9k5SUhI6OjqANKhqFqgW6lOh6tnGY4wzC2RmM9947O4PhqYpVqpCpr3ediKisNOKzz4owfHglUlMb0NKShZ0782G16s6Mw16ha7/vy85ZHTTKtr7jrVRW7pP17eu8hGMw2IIR6Zv1Z6bFIahpOvy+S4M4XxJbuhxQWopMRBQDFPchIf/43uzOtqmdPy3QpUTXrjdKi8WAJ54oxcaNzjc9T/dDqUKmuNh2D3a+Z4uwWnXYsaPA7RjsKRIVFhRcZwsksvZsBDDK5/izsuB7C2C5DU5WrLA9l6fAxp+ZljNBTVM+3DaIO9OOxZUV0DcBKTu7HO/SY4U9SoiI/AhI/vnPf2LLli1Ox6qrqwEAN954o8v5giDgo48+8nN40cPXTAbg3AJdFC2y27oDzi3iT59uwHffZeG22/LR3Oz6Nd7uh1KFTNfeYH3RgsNI8/l9NkycBrxyLQAgf9ZEGFCDemRDdLM6KAi2e32+nBhMmr7xlMAqPVlBgfcbvNyZlj//GbjwQntQI8YB1Vty4TaYlH6cjkGJ1fZ53guAYHXz/G576BMRxS7FAUl1dbU9AOlq9erVLscETxUUMcjTTEbXFuhy943pShB0WL++wCWYcMfb/dBotAUqlU9tRMOsl5CFA7AgDtfjU5/fY9bhXcCEF4DUVOhgQRmmoRjlEGB1CkqEM3fs0lJB3gSBNH3jrsrGXZ6IxwHKnGm57jqnC3P0SIX3ZZouv+b6Jlswku4rR1lugEREFOUUBSQ1NTWhGkfM8LbZHaBs35iuPHVP98bT/VAHCwpe+W9IXVotiIMBtZ5nO2CFAXXIx0bbgRZb4oQRK1GOYkxDGeqQYz/fgDqUzm6F0ThM/mA95Vt0zRPxxluiDOBx2kZusnE/E5C+0bZM43ZmpCu5ARIRUZRTFJCce+65oRpHTPG0qZ3vXiXO+8Y48rcq1uP9sEuuhQ5WH7MdQClKoIPrXdiIlSjC+6hEPhqQhSw0IB+V0A36JwAFAQkAFBYC//438NFHQGOj8r1ivCXKeJlpkZtsnL4R6LNDxomK1quIiKKfX3vZUGgE0qtEaa6mu9YcTtxMnUizHdmodzpuQB3KUQwjVnp8PR2sKMAGTMLbKMAGW+ASyOzA1VcDkyb5zhlxx1Mr2a6lxg58lldbAf1BNwmsgO8eK0RExCobLQmkV4mSVARZ90MPwYLH2Q43MyNeB6D27IA9UUberrxek5K9JbDOmWPrDtd192C5S0xERDGCAYmGBNKrRMlkg6z7oZdcC2m2wyNBcO4HInNZJOx8lRp3YU9K/uZemHVnm4u4TWCVgq6ZM23/ZAY+RESxigGJhgTSq8RXriZgixFWrPCwymGxuN40veVaSJ97ysN4+WXbx64lPxE+O5BeCaRNbMHRYbYOrIktbhJY3QVdLO0lIvKKOSQaIi0LnPms66MAnHuVOJJyNW3P0/V5bf9eecVWzeoSjHTd12X0aNvngOdci3fftf3zloch7bC3fj2wbJntY01NxAYjUuawYLElrmZ8avvoskyTnc0urERECnGGRGPk9ipxx1NTM6+TEp5qhR3buXpr6+4rD0Phsoimyc0cXrLEFvkREZFsDEg0yFevEm8U5Wp6qxXu2s7VU1ARTQGHL3Izhw8dCu04iIiiEAMSjfLUq0QO2TGCrO142d7cTm7mMJudEREpxhySWCZ7O162NwdwNnPY03YIPpu7EBGRJwxIYhnf8SvjK3MY0EY5MxFRBGJAEsv4jl85P7q8EhGRb8whiWV+7usS8xR2eSUiIt8YkMQ6v2qFKaaqi4iIwoABCfEdPxERqY4BCdnwHT8REamISa1ERESkOgYkREREpDoGJERERKQ6BiRERESkOgYkREREpDoGJERERKQ6BiRERESkOgYkREREpDoGJERERKQ6BiRERESkOgYkREREpDoGJERERKQ6BiRERESkOgYkREREpDoGJERERKQ6BiRERESkOgYkREREpDoGJERERKQ6BiRERESkOgYkREREpDoGJERERKQ6BiRERESkOgYkREREpDoGJERERKQ6BiRERESkOgYkREREpDoGJERERKQ6BiRERESkuni1B0DRzWK1oHJ/JRqONyCrVxby++dDF6dTe1hERKQxDEgoZExVJkxbPQ11rXX2Y4ZkA8rGl8E4xKjiyIiISGu4ZEMhYaoyoXhFsVMwAgB1rXWYsGICntjwBCxWi0qjIyIirWFAQkFnsVowbfU0iBA9njOrYhZyS3NhqjKFcWRERKRVDEgo6Cr3V7rMjLhTd7wOxSuKGZQQEREDEgq+huMNis4vWV3C5RsiohjHgISCLqtXluxzRYioba1F5f7KEI6IiIi0jlU2FHT5/fNhSDagvrXeax6JI6WzKpv2b0JjWyNLiYmIogQDEgo6XZwOZePLULyiWPbXyJ1VWfX9Kuigw03LbsIp6ykALCUmIooGXLKhkDAOMaJ8Yjmye2V7PU+AgJzkHOT3z/f5nKYqE6asnOJyvL61nsmxREQRjgEJhYxxiBH7SvZhTsEct48LEAAApeNLfS65eCsllo4xOZaIKHIxIKGQ0sXp8Pg1j+Pdie/CkGxwesyQbED5xHJZSy2+SomZHEtEFNmY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Xuzduxd33303BgwYgO7du2PgwIGYNWsW2tvbnc7bv38/CgsL0bNnT6SlpeGhhx5yOWfnzp245ppr0L17d2RnZ+OJJ57w2dc/lj311FO48sor0aNHD6SkpLg9h9c9fF588UUMGDAA3bp1w6WXXorKykq1hxTRNm7ciMLCQvTr1w+CIOC9995zelwURcyePRv9+vVD9+7dUVBQgF27djmdYzab8eCDDyItLQ09e/bEL37xC9TV1YXxu4g8zzzzDC6//HL06tUL55xzDn75y1/i+++/dzqH1149DEi82L17N6xWK/7xj39g165dWLhwIV566SX86U9/sp9jsVhw00034eTJk9i0aRPefvttvPvuu/j9739vP6e1tRVjxoxBv379sHXrVixatAjz58/HggUL1Pi2IkJ7eztuueUW/O53v3P7OK97+LzzzjsoKSnBzJkzsW3bNuTn5+OGG27A/v371R5axDp58iQuuugiPP/8824ff+6557BgwQI8//zz2Lp1KzIzMzFmzBj7vloAUFJSgpUrV+Ltt9/Gpk2bcOLECdx8882wWCzh+jYizoYNG/DAAw9gy5YtWLduHTo7OzF27FicPHnSfg6vvYpEUuS5554TBwwYYP/83//+txgXFyfW19fbjy1fvlzU6/XisWPHRFEUxRdffFHs3bu3ePr0afs5zzzzjNivXz/RarWGb/AR6PXXXxd79+7tcpzXPXyuuOIK8b777nM6dsEFF4iPPvqoSiOKLgDElStX2j+3Wq1iZmamOG/ePPux06dPi7179xZfeuklURRF8ejRo2JCQoL49ttv28+pr68X4+LixNWrV4dt7JHu0KFDIgBxw4YNoijy2quNMyQKHTt2DH379rV/vnnzZgwbNgz9+vWzHxs3bhzMZjO++uor+znXXHONU4OdcePG4cCBA9i7d2/Yxh5NeN3Do729HV999RXGjh3rdHzs2LH4/PPPVRpVdKupqUFjY6PTNdfr9bjmmmvs1/yrr75CR0eH0zn9+vXDsGHD+HNR4NixYwBg/5vOa68uBiQK/Pjjj1i0aBHuu+8++7HGxkZkZGQ4ndenTx8kJiaisbHR4znS59I5pAyve3g0NzfDYrG4vY68hqEhXVdv17yxsRGJiYno06ePx3PIO1EUMX36dFx99dUYNmwYAF57tcVkQDJ79mwIguD135dffun0NQcOHMD48eNxyy234De/+Y3TY4IguLyGKIpOx7ueI55JrHT3tdHKn+vuDa97+Li7jryGoeXPNefPRb6pU6fim2++wfLly10e47VXR7zaA1DD1KlTcdttt3k9Jzc31/7fBw4cwOjRozFy5Ei8/PLLTudlZmbiP//5j9OxI0eOoKOjwx5lZ2ZmukTOhw4dAuAaiUczpdfdG1738EhLS4NOp3N7HXkNQyMzMxOA7Z14VlaW/bjjNc/MzER7ezuOHDni9E790KFDuPLKK8M74Aj04IMP4oMPPsDGjRthMBjsx3ntVaZW8kqkqKurEwcNGiTedtttYmdnp8vjUnLlgQMH7Mfefvttl+TKlJQU0Ww228+ZN28ekytl8JXUyuseeldccYX4u9/9zunYkCFDmNQaJPCQ1Prss8/aj5nNZreJle+88479nAMHDjCx0ger1So+8MADYr9+/cQffvjB7eO89uphQOJFfX29mJeXJ1577bViXV2d2NDQYP8n6ezsFIcNGyZed9114tdffy1+/PHHosFgEKdOnWo/5+jRo2JGRoY4adIkcefOnaLJZBKTk5PF+fPnq/FtRYR9+/aJ27ZtE+fMmSMmJSWJ27ZtE7dt2yYeP35cFEVe93B6++23xYSEBHHx4sXid999J5aUlIg9e/YU9+7dq/bQItbx48ftv9MAxAULFojbtm0T9+3bJ4qiLXDu3bu3aDKZxJ07d4qTJk0Ss7KyxNbWVvtz3HfffaLBYBA//vhj8euvvxavvfZa8aKLLnL7xolsfve734m9e/cWKyoqnP6et7W12c/htVcPAxIvXn/9dRGA23+O9u3bJ950001i9+7dxb59+4pTp051KjUVRVH85ptvxPz8fFGv14uZmZni7Nmz+S7dizvvvNPtdV+/fr39HF738HnhhRfEc889V0xMTBQvueQSe5kk+Wf9+vVuf7/vvPNOURRt79RnzZolZmZminq9Xhw1apS4c+dOp+c4deqUOHXqVLFv375i9+7dxZtvvlncv3+/Ct9N5PD09/z111+3n8Nrrx5BFNm2koiIiNQVk1U2REREpC0MSIiIiEh1DEiIiIhIdQxIiIiISHUMSIiIiEh1DEiIiIhIdQxIiIiISHUMSIgo6Pbu3euycWJiYiJycnIwefJkfPPNNy5f09nZiddffx033ngjMjMzkZiYiN69e+Pyyy/Hn//8Z+zbt8/j67322mv21/n2228DHv/27dvxpz/9CePGjUN6ejoEQUBBQUHAz0tEnsXk5npEFB4DBw7E7bffDgA4ceIEtmzZguXLl8NkMuHTTz+1b0a2b98+FBUVYceOHcjIyMCYMWOQk5ODkydP4uuvv8a8efMwf/58fPvtt8jLy3N5HSkgEUURixcvxsKFCwMa93vvvYdnnnkGiYmJOP/889Hc3BzQ8xGRDCp3iiWiKFRTUyMCEMeNG+fy2MyZM0UAYkFBgSiKotja2ioOHjxYBCD+4Q9/EE+dOuXyNXv27BELCwvFbdu2uTy2e/duEYB4yy23iLm5uWJqaqrThor++Pbbb8WvvvpKbG9vFxsaGkQA4jXXXBPQcxKRd1yyIaKwevDBBwEAW7duBQDMnz8f33//PW6//XY899xz6Natm8vX5OXl4YMPPsCFF17o8tjixYsBAHfccQduv/12tLS04P333w9ojEOHDsUll1yChISEgJ6HiORjQEJEYSUIgtPnr732GgDg8ccf9/m1iYmJTp93dnbizTffRHp6OsaPH4877rgDwNkghYgiBwMSIgqrv/3tbwCAyy+/HPv27UNdXR0MBgMGDRqk+Lk+/PBDHDx4EJMmTUJ8fDwGDRqEkSNHYt26daitrQ320IkohJjUSkQhU11djdmzZwM4m9T62WefoVu3bnj66afR2NgIADAYDH49vzQTMmXKFPuxO+64A5s3b8brr78ua9aFiLRBEEVRVHsQRBRd9u7diwEDBjgdS0hIQEZGBkaNGoVHH30Uw4cPx3/+8x+MGDECI0aMwObNmxW9RkNDA3JycjBo0CBUVVXZjx85cgRZWVnIysrCTz/95LJEpFRjYyOysrJwzTXXoKKiIqDnIiLPuGRDRCEzbtw4iKIIURTR3t6O2tpaLF26FMOHDwcAZGZmAgDq6+sVP/cbb7wBi8XiNDsCAH369EFhYSH27t2LTz/9NPBvgojCggEJEanm3HPPRXZ2Nmpra7Fnzx5FXyslw86cOdOlCVt5eTkAJrcSRRLmkBCRqu6++2488cQTmDt3Lt544w2v57a3tyMxMREbN27Enj17MHDgQI8dVFeuXImVK1fiyJEj6NOnTwhGTkTBxICEiFT1yCOP4J133sGbb76J7OxszJo1C3q93umcmpoaPPzww5g9ezZ+9rOf2Wc+/vznP+Ouu+5y+7zJyclYuHAhli5diqlTp4b62yCiADGplYiCTkpqHTduHFavXu3zfMfW8ZmZmRg7diwMBgPa2tqwbds2fPbZZ4iPj8fOnTtxzjnnICsrC3FxcWhsbETPnj3dPufOnTvxX//1X/jZz36Gbdu2KRr/7t27MW/ePADAqVOnsGLFCmRkZGD8+PEAgLS0NMyfP1/RcxKRd5whISLVnXvuudi6dSv++c9/YsWKFVizZg0OHz6Mbt26YdCgQfjDH/6A3/3ud8jJycE//vEPtLW14e677/YYjADA8OHDcemll+Krr77C119/jUsuuUT2eBobG12Wjw4ePGg/du655zIgIQoyzpAQERGR6lhlQ0RERKpjQEJERESqYw4JEUW99957D9u3b/d5XkFBgccyYiIKLQYkRBT13nvvPZ89TiQMSIjUwaRWIiIiUh1zSIiIiEh1DEiIiIhIdQxIiIiISHUMSIiIiEh1DEiIiIhIdQxIiIiISHUMSIiIiEh1DEiIiIhIdQxIiIiISHX/D/nu0XbgeL7oAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# PCAのプロット\n", "plt.figure(figsize=(6, 6))\n", "\n", "colors = ['r', 'g', 'b','y']\n", "species = ['BT', 'BC', 'GT','GC']\n", "\n", "for color, specie in zip(colors, species):\n", " plt.scatter(X_pca[y == specie, 0], X_pca[y == specie, 1], \n", " label=specie, \n", " color=color\n", " )\n", "\n", "plt.xlabel('PCA_1', fontsize =14)\n", "plt.ylabel('PCA_2', fontsize =14)\n", "\n", "plt.legend()\n", "plt.grid()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "011a6ee3-56b1-4ac4-be27-dfbcc3548aed", "metadata": {}, "source": [ "### ③ 標準化\n", "PCAは、データのスケールに敏感であるため、次元削減の前に標準化が必要です。標準化では、各特徴量を平均0、標準偏差1にスケーリングし、異なるスケールを持つ特徴量が等しく扱われるようにします。これにより、PCAが特徴量のスケールに依存せず、データ全体の構造を正確に反映できます。" ] }, { "cell_type": "code", "execution_count": 9, "id": "a689e75e-7e6a-47b1-98c5-0b1aac968bdd", "metadata": {}, "outputs": [], "source": [ "from sklearn.preprocessing import StandardScaler" ] }, { "cell_type": "code", "execution_count": 10, "id": "3cc9a216-08eb-4c50-953d-020d6df2715f", "metadata": {}, "outputs": [], "source": [ "# データの標準化\n", "scaler = StandardScaler()\n", "X_std = scaler.fit_transform(X)" ] }, { "cell_type": "code", "execution_count": 11, "id": "f9158873-407b-4d20-9f2b-3c075d3d809c", "metadata": {}, "outputs": [], "source": [ "# 主成分分析(PCA)で2次元に次元削減\n", "pca = PCA(n_components=9) \n", "X_pca = pca.fit_transform(X_std)" ] }, { "cell_type": "code", "execution_count": 13, "id": "225cd755-4d6d-470e-9737-8017403f9619", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiAAAAIXCAYAAACl9uUJAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAABgnklEQVR4nO3de1xUdf4/8NdhgBFUvADKxKComLcsSzMvkbDlpTaXbUQrL637s/r6zVyob9e176qtaVtWsLZd7GJWahpidjVtE+WbWeZlu3gLFRUExRuoEAzD+f0xDDL3c2bOnDMDr+fjwUPnzJlzPvNhmPM+n8/78/kIoiiKICIiIlJRmNYFICIiotaHAQgRERGpjgEIERERqY4BCBEREamOAQgRERGpjgEIERERqY4BCBEREamOAQgRERGpjgEIERERqY4BCBEREaku5AOQ0tJSTJ06FbGxsYiOjsagQYOwc+dOrYtFREREHoRrXQB/nDt3DiNHjkR6ejq++OILdOnSBYcOHULHjh21LhoRERF5IITyYnRPPPEEvvnmGxQWFmpdFCIiIpIhpAOQ/v37Y+zYsSgpKcGWLVuQmJiIBx54APfdd5/b19TW1qK2trbpcUNDA86ePYvY2FgIgqBGsYmIiFoEURRx4cIFXHHFFQgLk5nVIYYwvV4v6vV68cknnxR37dolvvbaa2KbNm3E5cuXu33N3LlzRQD84Q9/+MMf/vBHoZ/jx4/LvoaHdAtIZGQkhgwZgm3btjVt+8tf/oIdO3bg22+/dfkaxxaQyspKdOvWDQcPHkTnzp0DXuaWwGw2Y/PmzUhPT0dERITWxQkZrDf5WGe+Yb3JxzrzzdmzZ3HllVfi/Pnz6NChg6zXhnQSqsFgQP/+/e229evXD2vXrnX7Gr1eD71e77S9c+fOiI2NVbyMLZHZbEZ0dDRiY2P5hyoD600+1plvWG/ysc7840sKQ0gPwx05ciQOHDhgt+3gwYPo3r27RiUiIiIiKUI6AHnooYewfft2LFy4EEVFRVi5ciWWLl2KWbNmaV00IiIi8iCkA5Drr78e69atw6pVq3DVVVfh73//O3JycjBlyhSti0ZEREQehHQOCADcfvvtuP3227UuBhERtQCiKMJsNsNisWhdlKCg0+kQHh4ekGkqQj4AISIiUkJYWBhKS0vx22+/aV2UoBIdHQ2DwYDIyEhFj8sAhIiIWr2GhgbEx8ejvr4eV1xxBSIjI1v95JSiKKKurg4VFRU4cuQIevfuLX+yMQ8YgBARUatnNpsREREBg8GAdu3aaV2coBEVFYWIiAgcPXoUdXV1aNOmjWLHDukkVCIiIiXY5uRU8g6/pQhUnbCmiYiISHUMQIiIiEh1DECIiIhIdQxAiIiIQtj06dMhCELTT2xsLMaNG4cff/wR77zzjt1zrn4KCgo0KTcDECIiIiVZLEBBAbBqlfVfFSY1GzduHMrKylBWVoZ///vfCA8Px+23344777yzaXtZWRmGDx+O++67z27biBEjAl4+VzgMl4iISCn5+UBWFlBScnmb0Qjk5gImU8BOq9frkZCQAABISEjA448/jptuugkXL15s2g4AkZGRiI6OttumFbaAEBERKSE/H8jMtA8+AKC01Lo9P1+VYly8eBErVqxASkoKYmNjVTmnL9gCQkRE5C+Lxdry0TifiB1RBAQByM4GMjIAnU7x03/66adNE6hdunQJBoMBn376aVDPaxK8JSMiIgoVhYXOLR/NiSJw/Lh1vwBIT0/Hnj17sGfPHnz33XcYM2YMbr31Vhw9ejQg51MCW0CIiIj8VVam7H4ytW3bFikpKU2PBw8ejA4dOuCNN97AggULAnJOf7EFhIiIyF8Gg7L7+UkQBISFhaGmpkaV8/mCLSBERET+Sk21jnYpLXWdByII1udTUwNy+traWpSXlwMAzp07h5dffhkXL17E+PHjA3I+JTAAISIi8pdOZx1qm5lpDTaaByGCYP03JycgCagAsGHDBhgaW1fat2+Pvn374sMPP0RaWlpAzqcEBiBERERKMJmAvDzX84Dk5ARsHpB33nkH77zzjqR9tZr11BUGIEREREoxmaxDbQsLrQmnBoO12yVALR+hjAEIERGRknQ6IIi7PoIFR8EQERGR6hiAEBERkeoYgBAREZHqGIAQERGR6hiAEBERkeoYgBAREZHqGIAQERGR6hiAEBERkeoYgBAREYWw6dOnQxCEpp/Y2FiMGzcOP/74Y9M+oihi6dKluOGGG9CuXTt07NgRQ4YMQU5ODqqrqzUpNwMQIiIiBVkaLCgoLsCqn1ahoLgAlgZLwM85btw4lJWVoaysDP/+978RHh6O22+/ven5adOmITs7GxkZGdi8eTP27NmD//3f/8X69euxcePGgJfPFU7FTkREpJD8ffnI2pCFkqrLi9EZY4zIHZcLU7/ALEYHAHq9HgkJCQCAhIQEPP7447jppptQUVGBzZs3Y8WKFfjoo4+QkZHR9Jrk5GT84Q9/QFVVVcDK5QlbQIiIiBSQvy8fmWsy7YIPACitKkXmmkzk78tXpRwXL17EihUrkJKSgtjYWKxYsQJ9+vSxCz5sBEFAhw4dVCmXI7aAEBER+cnSYEHWhiyIEJ2eEyFCgIDsDdnI6JMBXZjyK+N++umnaNeuHQDg0qVLMBgM+PTTTxEWFoZff/0Vffr0Ufyc/mILCBERkZ8KjxU6tXw0J0LE8arjKDxWGJDzp6enY8+ePdizZw++++47jBkzBrfeeiuOHj0KURQhCEJAzusPtoAQERH5qexCmaL7ydW2bVukpKQ0PR48eDA6dOiAN954A1deeSX27dsXkPP6gy0gREREfjK0Nyi6n78EQUBYWBhqamowefJkHDx4EOvXr3faTxRFVFZWqlImRwxAiIiI/JTaLRXGGCMEuO7qECAgKSYJqd1SA3L+2tpalJeXo7y8HPv27cPs2bNx8eJFjB8/HpMmTcKdd96Ju+++G4sWLcIPP/yAo0eP4tNPP8Utt9yCzZs3B6RM3rALhoiIyE+6MB1yx+Uic00mBAh2yai2oCRnXE5AElABYMOGDTAYrK0r7du3R9++ffHhhx8iLS0NALBy5UosXboUb7/9NhYsWIDw8HD07t0b99xzD8aOHRuQMnnDAISIiEgBpn4m5E3KczkPSM64nIDNA/LOO+/gnXfe8bhPWFgYZs6ciZkzZwakDL5gAEJERKQQUz8TMvpkoPBYIcoulMHQ3oDUbqkBa/kIZQxAiIiIFKQL0yEtOU3rYgQ9JqESERGR6hiAEBERkeoYgBAREZHqGIAQERGR6hiAEBERkeoYgBAREZHqGIAQERGR6hiAEBERkeoYgBARESnIYgEKCoBVq6z/WizqnLe8vBxZWVlISUlBmzZt0LVrV9x444147bXXMHToUAiC4PYnOTlZnUI2w5lQiYiIFJKfD2RlASWXl4KB0Qjk5gKmwCwFAwA4fPgwRo4ciY4dO2LhwoUYOHAg6uvrcfDgQbz99tt48MEHMWbMGADA8ePHMXToUHz11VcYMGAAAECnU3+qeAYgRERECsjPBzIzAVG0315aat2elxe4IOSBBx5AeHg4fvjhB7Rt27Zp+8CBAzFhwgSIoghBsK7K+9tvvwEAYmNjkZCQEJgCScAuGCIiIj9ZLNaWD8fgA7i8LTs7MN0xZ86cwcaNGzFr1iy74KM5W/ARTBiAEBER+amw0L7bxZEoAsePW/dTWlFREURRRJ8+fey2x8XFoV27dmjXrh0ef/xx5U/sJwYgREREfiorU3Y/Xzi2cnz//ffYs2cPBgwYgNra2sCd2EfMASEiIvKTwaDsfnKkpKRAEATs37/fbnvPnj0BAFFRUcqfVAFsASEiIvJTaqp1tIu7VAtBAJKSrPspLTY2FqNHj8bLL7+MS5cuKX+CAGEAQkRE5CedzjrUFnAOQmyPc3Ks+wXCK6+8gvr6egwZMgSrV6/Gvn37cODAAbz//vvYv3+/JsNsvWEXDBERkQJMJutQW1fzgOTkBHYekF69emH37t1YuHAhnnzySZSUlECv16N///545JFH8MADDwTu5D5iAEJERKQQkwnIyLCOdikrs+Z8pKYGruWjOYPBgCVLlmDJkiUe90tOToboarywyhiAEBERKUinA9LStC5F8GMOCBEREamOAQgRERGpjgEIERERqY4BCBEREamOAQgRERGprkUFIIsWLYIgCMjOzta6KERERORBiwlAduzYgaVLl+Lqq6/WuihERETkRYsIQC5evIgpU6bgjTfeQKdOnbQuDhEREXnRIiYimzVrFn7/+9/jlltuwYIFCzzuW1tba7cscVVVFQDAbDbDbDYHtJwtha2eWF/ysN7kY535hvUmX319PQBAFEU0NDRoXJrg0tDQAFEUYTabndaU8eczFvIByAcffIBdu3Zhx44dkvZftGgR5s+f77R98+bNiI6OVrp4LdqmTZu0LkJIYr3JxzrzDetNuvDwcCQkJODSpUt+B26iaMHFi9+ivr4c4eEJaNduOAQh8HOxnzx5Ei+99BI2btyIEydOICYmBj179sSkSZNw1113NV3jfvzxR7z44ovYtm0bqqqqYDQaMXLkSMyePRspKSlOx62rq0NNTQ22bt3aFKjZVFdX+1zekA5Ajh8/jqysLGzcuBFt2rSR9Jonn3wSDz/8cNPjqqoqJCUlIT09HbGxsYEqaotiNpuxadMmjB49GhEREVoXJ2Sw3uRjnfmG9SbfxYsXcfjwYbRt2xZRUVE+H+f06XwUFT2EurrLq9FFRhqRkvIS4uICtxrd4cOHkZaWho4dO2LhwoUYOHAg6uvrcfDgQSxbtgw9e/bEH/7wB3z66aeYOHEixowZg/fffx+9evXCqVOnkJeXh+eeew4ffPCB07F/++03REVF4aabbnK61p45c8bnMod0ALJz506cOnUKgwcPbtpmsViwdetWvPzyy6itrXVqLtLr9dDr9U7HioiI4B+qTKwz37De5GOd+Yb1Jl14uPVyKAgCwsJ8S4+sqMjH3r2TANgv9FZXV4q9eydhwIA8xMcHJgh58MEHER4ejh9++AFt27Zt2n7NNddg4sSJEEURNTU1mDFjBm677TasW7euaZ9evXph+PDhOH/+vMv3HhYWBkEQXH6e/Pl8hXQAcvPNN+Onn36y2/bnP/8Zffv2xeOPP+4UfBAREQWCKFpQVJQFx+Cj8VkAAoqKshEXl6F4d8yZM2ewceNGLFy40C74aE4QBHz55Zc4ffo0HnvsMZf7dOzYUdFyeRPSAUj79u1x1VVX2W1r27YtYmNjnbYTEREFyvnzhaitLfGwh4ja2uM4f74QnTqlKXruoqIiiKKIPn362G2Pi4vDb7/9BsA6WMOWZtC3b19Fz++rFjEMl4iISEt1dWWK7ucLQRDsHn///ffYs2cPBgwYgNraWoiiq9YZ7YR0C4grBQUFWheBiIhamchIg6L7yZGSkgJBELB//3677T179gSApqTaK6+8EgCwf/9+DB8+XPFyyMUWECIiIj917JgKvd4IQHCzhwC9PgkdO6Yqfu7Y2FiMHj0aL7/8Mi5duuR2vzFjxiAuLg7PPfecy+fPnz+veNk8YQBCRETkJ0HQISUl1/bI8VkAQEpKTsDmA3nllVdQX1+PIUOGYPXq1di3bx8OHDiA999/H/v374dOp0Pbtm3x5ptv4rPPPsMf/vAHfPXVVyguLsYPP/yAxx57DDNnzgxI2dxhAEJERKSA+HgTBgzIg16faLddrzcGdAguYB1Ku3v3btxyyy148skncc0112DIkCFYsmQJHnnkEfz9738HAGRkZGDbtm2IiIjA5MmT0bdvX9x9992orKz0OpO40lpcDggREZFW4uNNiIvLwPnzhairK0NkpAEdO6aqMhOqwWDAkiVLsGTJEo/7DRkyBGvXrg14ebxhAEJERKQgQdApPtS2JWIXDBEREamOAQgRERGpjgEIERERqY4BCBERtXq2WUSDbbbQYBCoOmEAQkRErV54eDgaGhpQXV2tdVGCjq1OlF5ZmaNgiIhaKEuDBd8Uf4OyC2UwtDcgtVsqdGFcJdwVnU6HCxcuoKKiAmFhYYiOjnZaW6W1EUUR1dXVOHXqFDp27Kj4CvMMQIiIWqiBrw5EUWVR02NjjBG543Jh6qf8hFiWBgsKjxWGdLBz4cIFXHnllTh16pTWRQkqHTt2REJCguLHZQBCRNTCfHLgE+igQ+mFUrvtpVWlyFyTibxJeYoGIfn78pG1IQslVZeXow9ksBNIXbt2hcFggNls1rooQSEiIkLxlg8bBiBERC2IpcGCx796HIt7LHZ6ToQIAQKyN2Qjo0+GIi0U+fvykbkmEyLsExUDFeyoQafTBeyiS5cxACEiakEKjxU6tXw0J0LE8arjKDxWiLTkNL/OZWmwIGtDllPwYTuPAAFZX2Shg74DTl06FbJdMxQYDECIiFqQsgtliu7nSeGxQrtuF0ciRJRcKMEt793StC1Uu2ZIeRyGS0TUghjaGxTdzxNfghhb10z+vny/z0+hjQEIEVELktotFYntE90+L0BAUkwSUrul+n0uX4IYW3dN9oZsWBosfpeBQhcDECKiFkQXpsM/bvkHAGuw0Zztcc64HEXyMFK7pcIYY3Q6jzfN81Co9WIAQkTUwozvMx4AcEX7K+y2G2OMio5K0YXpkDsuF4BzsCOFEnkoFLqYhEpE1EL99N8/YXvZ9oBODmbqZ0LepDyneUCkUCIPhUIXAxAiohZKF6bze6itFKZ+JmT0yWiaCbVL2y6Y/tF0lF4odTlEV4AAY4xRkTwUCl0MQIiIyG+OwU7urbnIXJMJAYJdEKJ0HgqFLuaAEBGR4mxdM4kx9iNylM5DodDFFhAiIgoIx64ZzoRKzTEAISLSSEtYQdYbtfJQKPQwACEi0kBLWkGWyBfMASEiUpltBVnHYaucppxaEwYgREQq8raCLMBpyql1YABCRKQiKSvIqjlNuaXBgoLiAqz6aRUKigsY+JBqmANCRKQiqdOPqzFNOfNQSEtsASEiUpHU6ccDPU0581BIawxAiIhU5G0FWQECkmKSAjpNOfNQKBgwACEiUpGnFWTVmqY82PJQqHViAEJEpDKtpykPpjwUar2YhEpEpAF305QDQEFxQUBnRw2WPBRq3RiAEBFpxHGacrVGpdjyUEqrSl3mgQgQYIwxBjQPhYhdMEREQUDNUSnBkIdCxACEiEhjWoxK0ToPhYhdMEREGpMzKkXJlWXd5aGw5YPUwACEiEhjWo5KccxDIVILu2CIiDTGUSnUGjEAISLSWDDMjkqkNgYgREQa46gUao0YgBARBQGOSqHWhkmoRERBgqNSqDVhAEJEFEQ4KoVaC3bBEBERkeoYgBAREZHqGIAQERGR6hiAEBERkeqYhEpE5AdLg4WjVoh8wACEiMhH+fvykbUhy24hOWOMEbnjcjlvB5EX7IIhIvJB/r58ZK7JdFrFtrSqFJlrMpG/L1+jkhGFBgYgREQyWRosyNqQBRGi03O2bdkbsmFpsKhdNKKQwQCEiEimwmOFTi0fzYkQcbzqOAqPFapYKqLQwgCEiEimsgtlkvYrrSoNcEmIQhcDECIimQztDZL2y/4ym7kgRG4wACEikim1WyqMMUYIEDzud7r6NBNSidxgAEJEJJMuTIfccbkA4DUIAZiQSuQKAxAiIh+Y+pmQNykPcdFxHvdjQiqRa5yIjIjIR6Z+JtSYazB13VSv+0pNXCVqLdgCQkTkh8SYREn7SU1cJWotGIAQEfnBW0KqAAFJMUlI7ZaqcsmIghsDECIiP3hKSLU9zhmXwwXqiBwwACEi8pMtIdWxO8YYY0TepDwuTEfkQkgnoS5atAj5+fnYv38/oqKiMGLECPzjH/9Anz59tC4aEXnQEpewN/UzIaNPRot7X0SBEtIByJYtWzBr1ixcf/31qK+vx5w5czBmzBjs3bsXbdu21bp4ROSCqyXs46Lj8Mptr2DigIkalsx/ujAd0pLTtC4GUUgI6QBkw4YNdo+XLVuGLl26YOfOnbjppps0KhURuWNbwt5xFdnT1acxKW8SHj3xKJ4b/ZxGpSMiNYV0AOKosrISANC5c2e3+9TW1qK2trbpcVVVFQDAbDbDbDYHtoAthK2eWF/ytPZ6szRY8PiXj6NNWBu3+7y8/WUMTRiKjL4ZAFhnvmK9ycc6840/9SWIoih63y34iaKIjIwMnDt3DoWF7mccnDdvHubPn++0feXKlYiOjg5kEYmIiFqU6upqTJ48GZWVlYiJiZH12hYTgMyaNQufffYZ/u///g9Go9Htfq5aQJKSklBWVobY2Fg1ihryzGYzNm3ahNGjRyMiIkLr4oSM1l5veXvzMOPjGZL2/WzyZ7ix242tvs58xXqTj3XmmzNnzsBgMPgUgLSILpjZs2fj448/xtatWz0GHwCg1+uh1+udtkdERPBDJxPrzDehUG+BGKVi6GBATUONpH3Lq8vt6igU6iwYsd7kY53J409dhXQAIooiZs+ejXXr1qGgoAA9evTQukhEIc/VKBVjjBG543L9ms8itVsq4qLjcLr6tNd9AzVteUsc/ksUqkJ6IrJZs2bh/fffx8qVK9G+fXuUl5ejvLwcNTXS7rKIyJ5tlErz4AMASqtKkbkmE/n78n0+ti5Mh1due8XrfoGatjx/Xz6Sc5ORvjwdk/MnI315OpJzk/16T0Tku5AOQF599VVUVlYiLS0NBoOh6Wf16tVaF40o5FgaLMjakOU0RBZA07bsDdmwNFh8PsfEARPx6IhH3T4vQAjItOXuAquSqhK/Aysi8k3Id8EQkTIKjxU6XaCbEyHieNVxFB4r9GuyredGP4ehVwzFA58/gIrqiqbtSTFJyBmXo8i05c27Wrq07YKsL1wHVoD1fd3/yf3I6JPB7hgiFYV0AEJEyim7UKbofp5kDsjEHf3uCEg+hqscFm/O1JzBM4XP4G+j/ub3+YlIGgYgRARAeuKnUgmigZi23N1Mq1LkfpeLOalz2ApCpJKQzgEhIuWMMI6ATvB88dUJOowwjlCpRPJ4ymGR4mzNWRQecz+JIREpiwEIEQEAtpVsg0X0nGBqES3YVrJN9rEtDRYUFBdg1U+rUFBc4FciqzveclikUKJ7iYikYRcMEQEIXA5IoOYV8bdcrgRq/hEicsYWECICEJgckEDOK+JPuRwJEAI2/wgRucYAhIgAWGcqNcYYIUBw+bzci7SceUWU6KLxVn53bPsHYv4RInKPAQgRAbCOSskdlwsAThdxXy7SUucVeabwGUVmKPVUfpvbr7wd8dHxdtuMMUbkTcpTtDuIiLxjAEJETUz9TMiblIfEmES77b5cpKXmZMwtmOu2i+aTA59IPh/gvvy20T2fHvwUFdUViIuOQ/awbGz+02YcyTrC4INIA0xCJSI7pn4mZPTJ8HuSMH9yMkSIECDgia+ewPM9npf12ublX79/PXK+y3Ea3XOm+gxyt+dyMToiDTEAIWoBlF7lVYlJwmw5GaVVpT7NzSFCRMkF34bV6sJ0SO2Wimnrprk9tgAB2RuyOQU7kUYYgBCFOE/DXJVoyfCVLScjc00mBAh2QYjj40BQa20bIvINAxCiEOZu6vGSqhJMWDMBsVGxOFNzpml7IObf8MSWk+EqQLr3unsxt2BuwM6t5to2RCQfAxCiECVl6vHmwQdwOblTzVEf7nJKAOCNXW+47aIRIMDY3ujzedVe24aI5OEoGKIQ5cvU447zb6jFllNy98C7kZacBl2YTtKw32dvedbncyo9rwkRKYsBCFGQkDsZl69dB81zH7Tmbdjv+D7jfT620vOaEJGy2AVDFAR8WS/F366DYMl98DTs12w2+31sdzkoOeNyOP8HkYYYgBBpzF0iqbd8jdRuqegc1Rlna876dN5gyn1QYtivO0rNa0JEymIXDJGG5KyX4kgXpkPWDVmyz9kacx9c5aAQkbYYgBBpSM5cFa7MSZ2D2KhYyedj7gMRBQsGIEQa8neuCl2YDkvHL5V8Pi68RkTBgjkgRBrq0raL3/uZ+pmwdtJap0TLpJgkvDDmBcS3jWfuAxEFHQYgRC0AEy2JKNQwACHS0KlLpxTbL5AjSYiIlMYcECINcbpwImqt2AJC5IHSy9w78rZkvQABxhhjqxoyS0StAwMQIhcsDRY8U/gMcr/LtZvoS+pqsnX1dXjlh1dw6Owh9OrcCw8MecDlmiTelqwHOGSWiFomBiBEDvL35eP+T+53WkkWkLaa7GObHsOL374Ii3h58rBHNj6CR4c9imEY5rQ/pwsnotaIAQhRM+6mRbcRIUKAgOwN2cjok+HUMvHYpsfw/LbnnV5nES3I/S4Xw652DkAAjmIhotaHAQhRI0uDBfd/cr/b4MOm+eykzUed1NXX4cVvX/R6nrr6OkRERDht5ygWImpNOAqGWiS5S9sDwDOFz7jsdnFn/YH1do9f+eEVu24Xd97c/abkcxARtVRsAaEWx5el7S0N1i4SOXK25yC1W2rTMQ+dPSTpdUfOHZF1HiKilogtINSi2HI4HBd4syWP5u/Ld/m6wmOFPi1r33yl2l6de0l6TY9OPWSfh4iopWEAQi2GnKXtHbtoSqtKfTpn85VqHxjyAHSC96TRe6+916dzERG1JOyCoRbB0mDBku+XSFra/pnCZ/DGrjfs9o2LjvP53LaVaiPDI/Hw8IddjoJpLjI80udzERG1FAxAKGTZZildv389Vvy0AhXVFZJeN7dgrtO209WnfS5H82nSnxv9HAA4zQOiE3TIuiELqPH5NF4FetZWIiIlMQChkOQq0VQpjjOSetrP1TTpz41+DgvSFzjPhCoK+PzzzxUvL+Bb4i0RkZYYgFDI8TZZmL/iouO8tqZ4myY9MjwS2cOy7baZzWbFyticu/qQMmsrkWIsFqCwECgrAwwGIDUV0LXiFrhQqw8NyssAhEKKp0RTT6S2agDAS2NfQmJMYlNXxulLp/HQxoeCcpp0b4m3nmZtJVJMfj6QlQWUNGuRNBqB3FzA1AqD31CrD43KywCEQkrhsUKful2MMUbce929LvM/HCXGJDrNSHpHvzuCMr/CW324m7WVSDH5+UBmJiA6BMGlpdbteXnKXsSUulN3PM4w18skyKZ2ffhLw/JyGC6FFNuIEzleGvsSjmQdwZzUOTDGGF2uSgtYW0mSYpKccjqAy9Ok3z3wbqQlpwVF8AFIrw9f6o3IK4vFeufsePECLm/Lzrbup4T8fCA5GUhPByZPtv6bnGzd7u9xBg70v3xq14e/NC4vAxAKKc1HnHhjCyhmD50NXZgOujAdcsflNj3nuC/gPqcjWEmtDzn1RiRZYaF9s70jUQSOH7fu5y/bnbrj+Wx36lKDEHfHOXHC+u8nn/heRjXrQwkal5cBCIWU1G6piI+Ol7SvCNEpoDD1MyFvUh4SYxLt9jXGGEMyWTO1W6rPrTpEfiuT2LImdT93lLpTl3KcJ57w/Y7f1/qwWICCAmDVKuu/arWQqPX7c4MBCIUUXZgOUwZOkbRv9g3ZLgMKUz8TirOKsflPm7HStBKb/7QZR7KOhFzwAaBFtupQCDFIbFmTup87St2pezsOYH3e1zt+X+pDqW4lX6j1+3ODAQiFnIy+GX7vF6w5Hb5oaa06FEJSU62jJQTXLXAQBCApybqfP5S6Uw/0Hb/c+lCqW8kXFov1p3Nn9/so9ftzw6cAZO3atfjLX/6Chx9+GF9++aXb/ZYvX47f/e53PheOyBVbt4M7AgQY2xthabA0rfViWzCupWpJrToUQnQ661BNwPmia3uck+P/fBJK3akH+o5fTn1omQBqa3W55RbgrJtFOJX8/bkhaxhuQ0MDTCYTPvnkE4iNFZSbm4ubb74Z7733Hrp27Wq3f3FxMbZs2aJcaanVcTe9eO64XGSuyQQAuzkwbPN91NTX4Jb3bmna3hpmBbW16hCpymSyDtV0NY9ETo4yQzhtLQulpa4v2IJgfd7bnbq34wDSjuOJ1PqQ062UluZ7eRy5G3brSMnfnxuyWkBef/11fPzxxxg8eDBWrlyJDz/8EGPHjsVXX32FESNG4OjRo4EqJ7VC+fvykZybjPTl6ZicPxnpy9ORnJuM/H35brsdOkdZmxPP1Jyx226bFTR/nwr9qkStjckEFBcDmzcDK1da/z1yRLmLl1ItLVKO8+yz/t/xS6kPLRJAPbW62HTuDHz1lbK/PzdktYAsX74ciYmJ2LJlC6KiogAAEyZMwNKlSzF79myMGjUKmzdvRo8ePQJSWGo9pE4vntEno6mFpEvbLpj+0XSXx+OsoC1fqM183eLodMreqTtSqqXF3XESG29mxo9Xprze6kOLBFApSbhnz1rLrsIfj6wWkL1792L8+PFNwYfN/fffj/z8fJw8eRJpaWk4fPiwooWk1sXb9OIAkL0hG5YGi10yqS5Mh5IL0mYFpZZFy4EEoUKrkZ6K8rOlpakOak0oeKcYlq+aHefHHwNadCdqJfA2p/GwW0eyc0A6dOjg8rnf//73+Oijj3DHHXdg1KhR+PrrrxUpILVMnpaO93V6cc4Kqg2tWx5CbeZrLYTa0iQe+djS4lwHOhiNadY6SAMQoMUi3bJ1B2VmWoON5h/gQCWAajzs1pGsFpBu3brhwIEDbp8fO3Ys8vPzcfr0aaSlpeHgwYN+F5BaHk+5HYDvgQRnBVWf1i0PwTDzdbC3LGg50jNYBG0d2LqDEu1z2WA0BiZy1qLVxQNZAcjQoUPx9ddf47fffnO7z7hx47Bu3TqcPXsWH3zwgd8FpJbFltvh2MLRPEnU10CCs4KqKxi+1LWYSbp5wPH008Hd9eMtQBNFEdlZYtAFTUoKhiDVo0An8Dan1rBpiWQFIOPHj0dVVRWWL1/ucT9bEBIREeFX4ahlkZrbccMVN0AneP4D0Ak6jDCOsN/GWUFVEyxf6mp3aTu2+MydG4R31c18+623nEMBx0sEFE55Ta0iqU5qkPrtt+qVyaYpmF2jQwHSYJl0t7V7KZABgNqtLh7ICkAyMjKwb98+jJeQJTxu3Dj85z//YS4INZGa2/H6rtdhET1fuSyiBdtKtjltb02zgmrZ9P/MM8Gx5paaXdruWnwcBcVddaPycmn7rV9dDTz2WGALoxGpwafUulKKpt2Xara6eCArCTU8PBx9+vSRvH+fPn2c9t+yZQu2bNmCv/3tb3JOTS2A1NyOQ2cP+XU8x+G5jkmuLYGWSYX5+dY7fykCnUxv69L2FhRUVPh3HinTJzQXqDmk5EpIkLbfCkzB4heSoFuwAIiMDGyhmlEjgVlq8JmQAFRVKXtud4IicTrQw6YlUH0tmIKCAsyfP1/t01IQ6NK2i6T9enXuJWk/T7kiLWmtF0daLx+RlSV9/0An0+t0wEsved/vf/7Hv9YIKdMnuKLSaEa3hg8H4uK871eBrihsGAG88krgC9VIrRYAqXmXw4cre153gqX7MhhwMTpSRf6+fPzpoz953MeWJPrAkAdCKpnUsSukri5wXSNaf3nJuRCrlUwv5QLrb3eQr4GESqMZ3fbH6XTA1KnSDlEGA3BIWuujv9wF0SUlwIQJ1uRepT7DQZZ3qUnidLBiAEIBZxv5Unqh1O0+zZNEI8MjQyaZ1NVdXHS0snd1za8tS5Zo++Ul50Ls+KUeqJwVNRJR5QYSqo5mdPUhHDiw6ekMaYtHw4AyoJe01kd/SOnOmjtX2daQIMq7DLa5wDQlKweESC5PI1+aS4xJtFsszpZMmrUhyy5x1RhjRM64nKBIJnXXj+t4YW3eryv3LstVrocUgfryknohnj/f/ks9kDkraiSiSlnDzEapu2pJ+RHuPoQnTlj//eQTpGaYYEwUUVoqQnRxzymgAUaUIDVsG/DARt8LLJHUVrSSEmXzIUwmazDmWKeANSAuK7PePFgsQCAHcAbZXGCaYgsIBZS3kS8272S84xRUBPMS83KSEm37PPGEvHNIHXXhSqC+vLz1pwPW5+fMufzYU87KhAnAQw/51yKixtxKzZvxvUlMBObNA2prfX9fLvMjulxC/tM/Xz6glP64J56ADhbk/lOAtf2wwW432+McZEP3P9mqJKDKDY6V7FK05V3e3Tjadf36y/U8Y4Z1n4EDA5tHFWRzgWmKAQgFlNSRL6cunXK5PViTSeUmJYqivP3ljrqwCfSXl7f+dEGwPm+7U5dyjczJ8a+rSq0+fpMJeOQRz/vceaf1fc2d63sXnNuA7WwUMuf2R37XmdadpHwIS0qAwkJrF8RaAYnt7Id5GFGCvLBJMD2aAjz3nPRC+kFOcBzILkV39XziRGCTuYMtJ0VLDEBINkuD9XYkb28eCooLmh670lKnRw90/6wvoy7U+vKS058u5334M4pHjT5+i8Wav+LJ6tXW99GcnPdlDdhEiC4iNlv3SfaZ/4VlwiTr7bsUjR9WkwkoPt8RmzeasXLaF9j8x1wceWEdTDUrVQs+ACC1Ih9GHHdqjfFE6b83rZO5bZ/XK66w356Y2LrWLmIOCEliWzxu/f71WPvLWixJWYIZH89ATUMNjDFGu/yN5mzTo5dWlbrMAxEgwBhjDJoRLVIFun/Wly9cuauS+8Ndf7pj4CPnfYiiNYjKzrYeW24QJbVMvvJ1KK6c91X4zFaUlNzk/lgIw3F0QyFSkbZihbQCNPuw6nRA2ugIYPStAG61JgaruZCgxQLdw1nIxfXIRB6ABki5D1b6703OSJRATpXhqSsz0LReRBJgAEIS5O/Lt0sGjQqLsnveto6Lq5lGbdOjZ67JhADBLggJthEtcshJSgSsXzRGo/TjS/3CfekloGtXbb5ApMxjJPfC4e8XfyDnVvLnLlzS+8rPR9ncPADuA5CmsiABqCgA4uOB06fdfwiNRrf9cZpMZtd45TehBHnIxF+Qi1Ikud3d9nejdJei1iNRtJ6ILFhWRw54F8yePXvsHg8aNAj33HNPoE9LCnG3eFxzzddxcdUd0xKnR/fUj+vI9vyzz0o/vtREtdmzLyfUBWOfsZSkVVeCcQii4detfh/D7ftq7BMw4IS0sqDxQFOmWP91l0zw7LMuPxiaTWbXrAJMWIejSMZ8/C8AEXBMkA1gl6KWI1G07v4JhkUkbQISgFRWVuKVV17B4MGDMWTIELvnMjIysGzZMkXP98orr6BHjx5o06YNBg8ejMLWMIOLCqQOoQUur+NSeMx13QfziBZfucs7cPyytOUheFxCyWGSDB0sHhLVREAUkTOhELrCAs/fVBqvFS8nUGsu6IYgWixIXTpNdu6CI7fvq7FlIBWFHs8hoAFJOIZUNP6dZWS4/hDaHrv40Gl6AXSoAB0a8DcswFpMgBH2yTOBnKNDy5EoWk5EpnXw40jRAGTz5s2YOnUqrrjiCsyePRu7d+/Gtddeq+QpnKxevRrZ2dmYM2cOdu/ejdTUVNx66604duxYQM/bGkgdQtucp1EvwTqixR+u1nSqrpa5xpObOalNyHedWBl2AnmYAFPOTZ6HWWi62tVl7gI1V4J2CGJhIXSlx5AL6zz0roezio0/zpoChwo3dd/YMqBDg5dzNA6ZFcTLFeXqQ/jjj57einaT2bm58puwDsVIxmakY2XnB7H5K0tA10bTciSKlt0/wTYLq98BSGlpKRYsWIBevXrhlltuwapVqxAVFYXs7Gz8+OOP2LFjhxLldOvFF1/EjBkzcO+996Jfv37IyclBUlISXn311YCetzWQOoS2uVAbzaIEx7kFIiPtH3v8EvPSHmpC/uVrS/b32Ix0HLF0gwnrnPa1CyyktrOq1ELS/BqZne16n6AegmgbSYJ1yEMmEh3v1lGCR/EcBIgeAoeHrHNtuKrjZi0Dns6Rh0yYhI+sG5pXlOOH0EMFapr/4OHKrxNEpAlbcPcbv0PazbqAfwbcBcaBHomiZfeP1rkvjnxKQq2vr8f69evx1ltvYdOmTbBYLNDr9ZgwYQLy8vJgMpnwwgsvKF1WJ3V1ddi5cyeecJjhacyYMdi2zXmpdgCora1FbW1t0+OqxuUPzWYzzGZz4AobghKiE5wSToHLSajNnxMgILF9IoYZhrEe3bDVS1P9WCzA448Dbdq4foEgWGcvu+02jBwG4L4pQFQpGqB3bqBvti8Az8cFrFGA2Qw89ZT9uNHEROAf//DSX+S7kSOtP6mp1iI2P7XRaE1ZGD/eWjTARZ1pJSEBiLJ+3sdjA25DP3yLEShHVyTgJIZjG3RowDDswuP4B0px+apmRAmexRMYjy9gPg1g61bgxhvtjz9sGJCSYp2EQhRdnmMotuN7DMOqTrOR8N8mDL9tBHRu6sVTvTV7K17fckCqffx46xVeygcgwMaPt/7JfPstUF5uPeeuXWbo9YErgsOv2okgWP8Mhw1TvgxK/O4tFlt9Wffr08f3QgqiqwHnbuzduxdvvfUW3nvvPZw5cwaiKGL48OG45557cOedd6Jjx44ICwvDvffei6VLl/pcKKlOnDiBxMREfPPNNxgxYkTT9oULF2L58uU4cOCA02vmzZvncjXelStXIjo6OqDlJSIiakmqq6sxefJkVFZWIiYmRtZrZbWAXHXVVRAEAd27d8fMmTNxzz33ICUlRdYJA0FwaMoTRdFpm82TTz6Jhx9+uOlxVVUVkpKSkJ6ejtjY2ICWMxR9cuATTFs3DcDl0S5RYVF4+6q38f9+/n/WeUDaG/HsLc9ifJ/A3DW3FGazGZs2bcLo0aMRERFhvQu0zf/syVtvWf+Vsm+nTtZmeH+WVbfdgv34o+Z9IU51prbmt3uHDgELF1rrp/l9m+275sknrc9789lnzi0gNp984tQy8Enn6Zh2Ngei48KMjQ/fe8+5wcpbvX3yCTDN+mft8q24OmZLp/ZnzcWv2q4RKJDn9eV3b3udY5NFmzZnfC6L7C4YQRAwdOhQDBs2DD179vT5xEqIi4uDTqdDeXm53fZTp06ha9euLl+j1+uh1+udtkdERGjzBRfkTFeZAB2cFoUDgD8P/jNu73s7UrultoiEUrU0fdYMBqCmxvsLbJ3BUvatqQGU6P789Vdg+/bAzsIkgyZ/n64mS7DdpJxp9qWblGTNx8jIAF5/3f3kMLZJLW66yX1g5zCbmqWLAVnTR6G6xvUNlbcJztzVmy2/wfHt2d5Ka5mJ0xW1PmuBnjjP03kBeb972+iZ6mrn50TR97qSFYC8+eabWLZsGdasWYMPP/wQ8fHxmDx5MqZOnYrrrrvO50L4KjIyEoMHD8amTZtwxx13NG3ftGkTMqSuQU1emfqZkNEnA4XHClF2oQwJ0Qmo+rkKi25exKDNH1JmM9PprBNN3XGHvJnPdDqgoUH+YjLNBeNkHHL5Ot2ju5mizp61/jt/PtC7t/Mxc3Otr3PXSiIlw7bZbGqFBQrN2OmiHkwmnSYXQLoskBPneSI3+PF1FmCvRB8cOHBAfPTRR8WEhARREAQxLCxMHDBggLho0SJREATxvvvu8+WwPvnggw/EiIgI8a233hL37t0rZmdni23bthWLi4slvb6yslIEIJ4+fTrAJW056urqxI8++kisq6vTtiD19aK4ebMorlxp/be+PqiP67Le1q4VRUEQrTN7uPkRBOt+UvZV8mfzZkXetz/8+qytXSuKRqP9ezIards9qa93fp3j7yMpyf3nwtV5k5K8n9eFlSul/apWrrR/nV29+VoPrUzQfK8FIU+fwzZtTosAxMrKStnH9SkAsamvrxfXrVsn3n777WJ4eLgYFhYmhoWFib179xbfffddsbq62p/DS/avf/1L7N69uxgZGSled9114pYtWyS/lgGIfB7/UAMVFDgK1JdqoI5bXy/Wff21td6+/tq+XtasEUWdTtoFb+1aUezcWdpVKTtbFOPi5Ace3i6wgeLis+PzRcFdsCYIlwM6dzZv9j9AU+jvwNeiNNWbP/XQyjAAcc/T51CzAKS5srIycdGiReKVV17Z1CoSExMj3n///UqdIiAYgMjn9g/V1cU7Ls56IVQqGKmvF8X5891fOP35UlXyy7r5BWj+fFE0GsW6qChrvUVF2Qc1cq8yX30lff/aWlGMj5cXfGhxYXIT+NWtXSv/ouBvC4avzQ4BYHsr7hq+3L2Vpr/RlJTgCzSDFAMQ9zx9DoMiAGlu69at4j333CNGR0eLYWFhgTiFYhiAyOdzV4K/LQlr14piYmJg7t79vWg5ltPFsewCkOYXerkXPLlXJdvvRkr3jY9dBX7xEPjVRUfLvyj424KhRAuIgtz9+jzFik1/o1FRQfM+gh0DEM/cfQ6jonwPQAKyFkxqaiqWL1+O8vJyzkjaGnhaYKA5f1Y7siUFlpZ63k8UfZtLWKk5it3NQOrqeIB1CEOXLtLKaBsNI3ce6cYpHy1XJKEAo7AKd6EAo2Axdgc+/FDmvPEKs1iA++93/dlpvk3ODK3+Tveo5UIhLribsVOptVIspeVaLhdEIcLd59CfGVtlD8M9fPgwLl68iP79+yM83PXLzWYz9u3bh3bt2uH+++/3vXQUGiSkSFsQhkIxFWW4AoaZHyD19gzoIiWm20sNcJqTO4JDiTmK5ZbTFtQAnke4uFqT3PZt4GpNbRdj6fJhQpZwB0qazSVhhIjcMAGmNM/F9HUgiSTPPGM/pNWRrT6+/da6lo0U/s51bQvwpI5mCWgFWQVqyGY+7kDWQ39EScXlbVosy06hwdXnsH9/wM2sF97JaS45evSoGBUVJWZkZHjd949//KMYHR0tlpSUyG6WURO7YORzaqr00oWwFneIRhyz742Jr5He0i+1SdyfZmUlmt29HMOuC8axa8WXdnZRlJTs6E9qS0AHUNTXe02obaozOfkW3rrTbF1N3rrTpIxmCdIRJnY5IG663tbCJAqwiECD7M9FS8QuGN+cPq1SF8wbb7yB+vp6vPjii173ffHFF2E2m/Haa6/5GBpRyPBwx5mPO5CJPJTAvt2upEKPCROAp5+W0OQroXXCgrDG7oW7URA/EZYRMpvHlWh293XeDIPB93Z2L4uQ+bP8ttT17HxWWHh5Xg1vEhKkH1ens9aHJ3fd5b35wNUqs827qAJeQQr4xz+s/zp8ri3QIQs5jbOrOs4kbf1XzWXZqXWSFYB8+eWXGD58uKQZUHv06IGRI0diw4YNPheOQoSbi7cFYchCbuME7o4fNeu+c+dKWCHeTYBjCzoewgswoAzpKMBkrER6xRok99J5/f63Wwi2UAfLi36uzy23M9QxqPF2wfOBr6kt/gQukskJ2Dx10ziyWKy/VE8++EBa4d0FeKpUkAJsC785BLaF8SaUIAmOwYeNr6lURHLICkAOHjwoa8bTa6+9Fr/++qvsQlGIaZ4U2UwhUhu/5Dx/zEpKvNwwughw8nEHklGMdBQgBw+jAvaJnN5uQvPyrPFCejowebL13+SHTcj/wztAmEN5w8KARx7xHgh4a0Vpzl1Q4+KCZxcoFaiTj6lUTq5HcgK2v/5V+huXMm2jv4VXpYIU4iKwLXvpA0kvbQmT4VLwkhWA1NTUoG3btpL3j46Oxm+//Sa7UBSCbF0IRmPTpjLIaxFwe8PoMOrDXbdOc55uQh97DJg4EaiosN9eUiIic/1U5Fv+YP+ExQIsXuy9SV1nbUUpEBu7gjAKFnd/YhKHMOTnW1uI7AKlZOmt+77mYyqRk+uVLWCToqQEWLJEWhSmRuFVqSAFOQS2hkRpX/3+jHAg8kZWANK5c2cct2XtS1BSUoLOnTvLLhSFqOZ3WtnZMHSQsHhaI683jM2Gkrrv1vF+zA8/BJ5/3t0rBIgAspHjOnDw0qSen29tRUnHZmtXEAqQjGLko3EdlyeesO746KPAsmXWdHIPlEgx8DW1xd+BJJK4aTlz66GHpEVhahRelQoKnCAbaUytlZyM1dtuu000GAxibW2t131ra2tFg8Eg3nbbbbIzY9XEUTDySc0Wr6+tF43xNaLgkGXv6cfbYIfNX9XLHhDTfP4uqTOTb8YoWaNg3M/D1iACDeKazNViXUqK/SgYD6MlpAzkiI8Xxfff9z7JrC8DbHydgdMn7ma29TRySOvCq1pB8kn5G/V14FVLxVEwvlFtFExmZibKy8sxd+5cr/vOnz8fJ0+exKRJk3wMjSjU6SJ1yH2tjbSciEbebhjLTsmf+MB2zMJC68KyUrjtPnLRpO55+g/rKIO780xYXzrE/ikPTRlS0hgqKoCpU703CHgdYJNhTTKxrPgABTl7sGpFAwoLgZdeanwHPubkSjZnjvSuGBtPfWxyJ2rzhRrnCLBAT3BG5JWcaKW+vl685pprxLCwMPFPf/qTWFRU5LRPUVGROH36dDEsLEy89tprxfogX2eALSDyyb1TUHIGdTlTgjgeU+qM53JbQKSWKSqq1vlu3s0bl1NWqXetLqcMaZzHwuVcLUZRfPRRxRZ29czN7bjbFhAJrVJKrkrrsdyqVJA8cv5G1Vo/MtixBcQ3/rSAyJoJVafT4eOPP8aYMWPw7rvv4r333oPRaISx8e6ltLQUx48fhyiK6NOnD9avXw9dEN8BkDpss+c984x12K0jOTeMtr5rd5OGejqm1O74eJxEKhySUVzNRtpIep6htcAWhCGiaZN4OVElLa1pT7mpA6JoLWJ2trWuXdWjLQ+xSWOSSb74R2QiD47VWVoiYvFiAatXA/HxAZ3o0/3MrlK4+wUEavpQtc8RYE6fCyKVyJ6KvVu3bvjhhx/w/PPP4+2338bx48ftElMTExMxY8YMPPLII2jXrp2ihaXQpdMBf/sbcNVVkmcPd3scd7NkN+fqmLbgxf31zXqwVzALOjRc3uwlQpIeLFh7PL/FCKRjk/1TDhdRqYFWc25iGdca+40souA2qVeEAAEi/ud/BBw5osI11fFifvKkdfitN55+AWpcXXkFJ/KJ7AAEANq1a4f58+dj/vz5OHbsGMrLywEACQkJ6Natm6IFpJZFiRtGdzfL8fHAlCnW47s6ZvPgxV2+xqMZB5C58zugeZDiJULyHtjYK4eLhRMcLqJSAy1XJLXINCaZFGJU41wtromiID2oUULzi7nFAvzrX+739dAqRUTBT3YAsn37dsyZMwc7duwAAAwdOhQLFy7E0KFDFS8ctUxK3DD6Gsh4Cl7+9S9g4sQ+gKVY1oFtwcKECdLKnoCTlx94uIj62ishqUWmMUqROleLJtNZ6HRupxIPlURPInJPVgDy008/4Xe/+53d5GJff/010tPT8f3332PAgAGKF5DIHV8DGa/Biw8HNpmANWuAu+8WYbG4HvUjNHbrDMe2xg3eL6LNy1paap0K4/Rp1y0ishoEGqMUA6RFFppNZzF+PPD558AVVwBFRZe3y+m3I6KgJGsY7rPPPovffvsNc+bMQXl5OU6ePIm//vWvqKmpwT9sdypEIcDLGm4+mTgR+OADAdZckga754Rmj5vySySOd7SVdcoUwLa2o98NAo39Rqn4Pxhx3K589scVg2NCqp9+UnSNHCLSnqwApLCwEDfeeCP+/ve/o0uXLoiPj8eCBQswcuRIbNmyJVBlJAoZmZnA2rUCjLH2SxAYUYL3OmdbH7z1ls8XUcXmbmjsN9IJDciFtVyOQYh1XlghOHo5AhExEpGmZAUgJ0+exLBhw5y2Dxs2DCdPnnTxCqLWx2QCik9GY/NXFqx8ai82P/VvHPnqMMYXNc7slZnp10VUsUVzG6MZk/F75CETiSi1e9qYJHgNavxZKI+IWjdZOSBms9nl0Np27drBbDYrViiiUKfTAWk364Cb+wPoDwBoUPBvRLGRn41JJqbCQmSUfoPCir4oi78ahsQwr0m9+fmuh1Tn5rJ3hIi882kYLhG1II3RjA5AmsSX2BbKc0yGtc0uz6m8icgb2QHI+++/j+3bt9ttK2rMTr/tttuc9hcEAZ999pmPxaOWRhQtOH++EHV1ZYiMNKBjx1QIAvvzQ4mntW+kzMhKRAT4EIAUFRU1BRyONmzY4LRNkLEQGbVsFRX5KCrKQm3t5TZ7vd6IlJRcxMfzdjlUeFsoT9aMrETUaskKQI4cORKoclALV1GRj19+yQQcVhyprS3BL79MQPfu85GcPIetISFA6qRkmkxeRkQhQ1YA0r1790CVg1owUbSgqCgLjsFHc0ePzkVZ2VL07v1PtoYEOamTkmk2eRkRhQRZw3CJfHH+fKFdt4s7dXWl+OWXTFRU5KtQKvKVbe0bd72rgoDgmLyMiIIaAxAKuLo6eW3xRUXZEEVOKBGsbGvfAFyihYh8xwCEAi4yUk5bvIja2uM4f75Q9nlE0YJz5wpw8uQqnDtXwCAmgBSbkZWIWi3OA0IB17FjKvR6I2prS+EpD6Q5ua0mUkbYcAiwsnxdkZiICGAAQioQBB1SUnIbR8FII6fVxP0IG2tOyYABeQCgyhDg1hbkKDYjKxG1OgxASBXx8SYMGJCHX3/NQl2dp4RUAXq9ER07Sstg9DzCxrqY2oED96O+/qzTPs0DFCWCEM5zQqGgtQXJFLyYA0KqiY83YfjwYiQnz3ezhzWDMSUlR/IXovcRNiLq68/AfYCiTNKrrRXGsSy2IIcjeygYVFTkY/v2ZPznP+nYt28y/vOfdGzfnszPJ2mCAQipShB0SE7+GwYMWAu93mj3nF5vlN0aITdXxJn0pFd3Sa7eW2FCe2RPS0vuDcX3o0SZGSRTsGEXDGkiPt6EuLgMv5uC5Y2wcc9bIOOpeyU8vLPXVpja2uOorPxWkbL6Q27zuxLdSsHU5B+K3WRK/Q68dVUWFWUjLi6D3TGkGgYgpBlB0KFTpzS/juHLCBtXPAUy3pJcjcYsSeeoqysHEO1zGf29kMu9kElJ7vV2AQymC74S70dtSpVZSlelrSXQ379JIqnYBUMhzTbCpvGR47MAgPDwWBfPXd5Hr09ym/QqpXvl5MkVksoaGZkgaT9X/O27P3UqD7/8MkFy87sS3Urum/yt6/8UFT2kWhdIKHaTKVlmqV2V/ndpEknHAIRCnm2EjV5vPyuWNadkLfr0Wdq4xXWA4inpVcqdo9lcgYiIeBfHv3yeyEgjAEvjMf/P5UXDXT+/v333p059iL1773JbfsD5Qibnjtl1+f+NX3/9Czy1SpWU5KiWBOnL+/GXv3kbSpZZalelUl2aRFKwC4ZaBG85JQMG5LnpCsjx2IQt9Y6wS5cpKC3NdfGMAEBEQ0MNfv75DwBW4eeff482bWLtuiHcdVX06vUiDh16GFL67gE4vf/Tp9dj795JXkrv3Pwu947ZVfmlUqMLxNpF551SLQBKdD0p2WrhvatS3vB3IiUwAKEWw1NOia9Jr1LvCMPDOyE8vHPjkN/LwsLaoqHhYuP2qKbtjpOkue7nL5EcPBQXP4Py8jfsLniRkYloaPhNUvkB62KAl18r/Y7ZXZ6CdIFNgqyoyMehQw9J2leJFgCl8jaUbLWwnwxQcCjb5ZZAADh3riAoEoap5WMAQq2GL0mvUu4cw8M74+jReS6fb2i46ObItotuFkRRdHNs6Y4eneu0rXlAIUVRUTbCwqIQH29q9r49t2jU1Z3E4cOPwN/yByoJUnpwpEwLgNS8DSmBlrQEax3M5lNOQYMrtq5Kdy2BALB9e3JQJAxT68AAhMgD73eOtse+XIBFn7osAsVsPm13h96r14teW2CKimbDbK5QrAxKJkF6DgacNc8F8nXEkfe8DUgOtKQtYWDB3r132m3R641ITs4F4Fxedy2Bp0+vD7kRQhT6mIRK5IWnJNfk5PlO3S6hzpaQak2s9UzJ4ANQNglSSjAAABER8XYXWH9GHEkNoE6fXi9pv/h4E/r3Xw1XwYQ7tbWl2L9/mtvnbS2BXbve3RQEhdoIIWoZGIAQSRAfb8KwYcW45prN6NdvJa65ZjOGDTuCqKjeGpbK3agbf1i7QkpKlsjuwvGP5+HQvpAaDKSkvGQXfPgz4khqAHXq1ArJF3RrICjn4n85kJByDi1GCBEBDECIJHO8cxQEnZ937Na8A52uk6S9w8M72z22tcAEwqFDD6GoKFuBI1nf49VXf4XExOymbY77APLWAJJCehKntWVLiXk3OnZMRUREnNdzms0Vki/ovnVLWcsrZfZdzhHin1Cc2j9YMAeEyA/SZ2J1d9HNxaVLP6O42DmJ1FH//msgCDqnZMOysje8JsmGhUV5WYXYmdl8Wtb+rolISclF5843o3Pnm9GxY6pPw6F9IXfoqRKzhQqCDl27TkVJSY7X8km9oPsT5Fpn37Vyl9fCOUJ8F0wz/YYiBiBEfpAyvDEp6RGcOrUKv/12OVek+UU3Li4DJSX/9JBLYr1Q2lpdHHk7f58+S5sSD2trS3Ho0EONwYWcxFnHY0uTmJht90Ws1BpAUkgdemo7t1ItAbGxGZICEKkXdH+WG7DNvuvpQhkXl8E5QnwQilP7Bxt2wRD5yfNMrHno1es5DBtWjKuu+gwAcNVVn2HYsCNNX06CoGucrdVVTof37glv54+PNzV1HyUkTMGVV75md2wpHLsVpCSoAmiaIK05V11ZgSKlbmyUagmwBQy+Tv/vtLfH5QbcvgoA0KHDcK95LadPr/e6nIHS3WPeBHu3RihO7R+M2AJCpABvd/aCoEPHjjcC+BwdO97o9GXubY4Gb3dScloW3J3Lk169XoJen9h07A4dRuC773qFxF2z1LpRarZQuS0vUt+D9N+ZfRAhZRXcYcOO+PX5U1IodGtwcT9lMAAhUoi/q/v62z0h5/yXu36WSJolVK9PdDq20hfZQJJSN0oGDv4GlO6O6fj5MJsrcOjQw07nSE7OwfffW5NQpV4o1ewecydUujWkdtdVVKwFAM4o6wYDEKIg4m8QI/dcRuNslJS84NNdfyAuslpT8j0F4oLu6vMRH29yOkd9fQOAz+2SUD2xXVDV/Pw58t6tEbjp+uWS2l134sTLOHHi5aBrwQkWDECIWjF/7/qD4a5ZaUq+JzUu6K7P0QDgchKqN8EwwiWUujXkJgYHWwtOsGASKlErJydR0xU1k0rV0lLeU4cOwxVNiA2kUJqPRH5iMBNTXWELCBG1yJYMCkxCbKCE2nwk8pO5g6cFJ1gwACEiANr2/4caXxer00Ko5OooNQpJTc0D94qKtThx4mWvrwmGFhwl+dOiwwCEiEiGUBgm6igUWrhCqbWmueaBu5QAJFhacJRSVfW9z69lDggRkUT+LlanpVDIa/E3H0lLSk9AFyrq6k76/Fq2gBARSRBKw0RDWSi01rgSjC04anQVRkZ29fm1DECIiCQIpWGioS5U85GCKd9Gra7CmJihPr+WAQgRkQShNEyUtBMMLThqzijrz/tiAEJEJEGoDRMl7XBGWWmYhEpEJEFrTTKk0CKnq1BrDECIiCTwPPtl8A4TpdZFTlehKFpw7lwBTp5chXPnClSfpZVdMEREEgVTkiGRK1K7AKurf8X27cmazmfDAISISIZgSDIkckfKjLLh4Z1x9Og8p+fVXjSPXTBERDKFwqRe1Dp57yq0BR3uklTVWzQvZAOQ4uJizJgxAz169EBUVBR69eqFuXPnoq6uTuuiERERacbTjLLJyfNRX3/Gw6vVS1IN2S6Y/fv3o6GhAa+//jpSUlLw888/47777sOlS5ewePFirYtHRESkGXddhadOrZH0ejXmswnZAGTcuHEYN25c0+OePXviwIEDePXVVxmAEBFRq+dqPpJgms8mZAMQVyorK9G5c2eP+9TW1qK2trbpcVVVFQDAbDbDbDYHtHwtha2eWF/ysN7kY535hvUmX2ups7ZthyEiIgV1dSfgLkk1MjIRbdsOk1QX/tSXIIqiqxKEnEOHDuG6667DCy+8gHvvvdftfvPmzcP8+fOdtq9cuRLR0dGBLCIREVGLUl1djcmTJ6OyshIxMTGyXht0AYi7AKG5HTt2YMiQIU2PT5w4gVGjRmHUqFF48803Pb7WVQtIUlISysrKEBsb61/hWwmz2YxNmzZh9OjRiIiI0Lo4IYP1Jh/rzDesN/laW52dPv0JDh9+HHV1pU3bIiON6NnzWcTFjZd8nDNnzsBgMPgUgARdF8yDDz6Iu+66y+M+ycnJTf8/ceIE0tPTMXz4cCxdutTr8fV6PfR6vdP2iIiIVvGhUxLrzDesN/lYZ75hvcnXWurMYDAhIcH/+Wz8qaugC0Di4uIQFxcnad/S0lKkp6dj8ODBWLZsGcLCQnZUMRERqUwULU0X4LCwBK2LozotF80DgjAAkerEiRNIS0tDt27dsHjxYlRUVDQ9l5DQ+j5IREQkXUVFvt2U+qIYBWAVTp/+BAYDp9RXQ8gGIBs3bkRRURGKiopgNBrtnguytBYiIgoiFRX5+OWXTLgaBbJ//zSEh4Pr+qggZPsspk+fDlEUXf4QERG5IooWFBVlwfUQVCu1piJv7UI2ACEiIpLr/PlCuxVgnak3FXlrxwCEiIhaDalTjKsxFXlrxwCEiIhajWCairy1YwBCREStRseOqdDrjXBeqt5GgF6fhI4dU9UsVqvEAISIiFoNQdAhJSXX9sjlPikpObIn5CL5GIAQEVGrEh9vwoABedDrE52e69v3PQ7BVUnIzgNCRETkq/h4E+LiMuxmQt22rUrWOijkHwYgRETUKjWfity6rPznWhan1WEXDBEREamOAQgRERGpjgEIERERqY4BCBEREamOAQgRERGpjgEIERERqY4BCBEREamOAQgRERGpjgEIERERqY4BCBEREamOAQgRERGpjgEIERERqY4BCBEREamOAQgRERGpjgEIERERqY4BCBEREamOAQgRERGpjgEIERERqY4BCBEREamOAQgRERGpjgEIERERqY4BCBEREamOAQgRERGpjgEIERERqY4BCBEREamOAQgRERGpjgEIERERqY4BCBEREamOAQgRERGpjgEIERERqY4BCBEREamOAQgRERGpjgEIERERqY4BCBEREamOAQgRERGpjgEIERERqY4BCBEREamOAQgRERGpjgEIERERqY4BCBEREamOAQgRERGpjgEIERERqY4BCBEREamOAQgRERGpjgEIERERqY4BCBEREamOAQgRERGpjgEIERERqY4BCBEREamOAQgRERGpjgEIERERqY4BCBEREamOAQgRERGpjgEIERERqY4BCBEREamOAQgRERGpjgEIERERqY4BCBEREamuRQQgtbW1GDRoEARBwJ49e7QuDhEREXnRIgKQxx57DFdccYXWxSAiIiKJQj4A+eKLL7Bx40YsXrxY66IQERGRROFaF8AfJ0+exH333YePPvoI0dHRkl5TW1uL2trapsdVVVUAALPZDLPZHJBytjS2emJ9ycN6k4915hvWm3ysM9/4U1+CKIqigmVRjSiKuO222zBy5Eg89dRTKC4uRo8ePbB7924MGjTI7evmzZuH+fPnO21fuXKl5CCGiIiIgOrqakyePBmVlZWIiYmR9dqgC0DcBQjN7dixA9u2bcPq1auxdetW6HQ6yQGIqxaQpKQklJWVITY2Vqm30aKZzWZs2rQJo0ePRkREhNbFCRmsN/lYZ75hvcnHOvPNmTNnYDAYfApAgq4L5sEHH8Rdd93lcZ/k5GQsWLAA27dvh16vt3tuyJAhmDJlCpYvX+7ytXq93uk1ABAREcEPnUysM9+w3uRjnfmG9SYf60wef+oq6AKQuLg4xMXFed3vn//8JxYsWND0+MSJExg7dixWr16NG264IZBFJCIiIj8FXQAiVbdu3ewet2vXDgDQq1cvGI1GLYpEREREEoX8MFwiIiIKPSHbAuIoOTkZQZZPS0RERG6wBYSIiIhUxwCEiIiIVMcAhIiIiFTHAISIiIhUxwCEiIiIVMcAhIiIiFTHAISIiIhUxwCEiIiIVMcAhIiIiFTHAISIiIhUxwCEiIiIVMcAhIiIiFTHAISIiIhUxwCEiIiIVMcAhIiIiFTHAISIiIhUxwCEiIiIVMcAhIiIiFTHAISIiIhUxwCEiIiIVMcAhIiIiFTHAISIiIhUxwCEiIiIVMcAhIiIiFTHAISIiIhUxwCEiIiIVMcAhIiIiFTHAISIiIhUxwCEiIiIVMcAhIiIiFTHAISIiIhUxwCEiIiIVMcAhIiIiFTHAISIiIhUxwCEiIiIVMcAhIiIiFTHAISIiIhUxwCEiIiIVMcAhIiIiFTHAISIiIhUxwCEiIiIVMcAhIiIiFTHAISIiIhUxwCEiIiIVMcAhIiIiFTHAISIiIhUxwCEiIiIVMcAhIiIiFTHAISIiIhUxwCEiIiIVMcAhIiIiFTHAISIiIhUxwCEiIiIVMcAhIiIiFTHAISIiIhUxwCEiIiIVMcAhIiIiFTHAISIiIhUxwCEiIiIVMcAhIiIiFTHAISIiIhUxwCEiIiIVMcAhIiIiFTHAISIiIhUxwCEiIiIVMcAhIiIiFQX8gHIZ599hhtuuAFRUVGIi4uDyWTSukhERETkRbjWBfDH2rVrcd9992HhwoX43e9+B1EU8dNPP2ldLCIiIvIiZAOQ+vp6ZGVl4fnnn8eMGTOatvfp00fDUhEREZEUIRuA7Nq1C6WlpQgLC8O1116L8vJyDBo0CIsXL8aAAQPcvq62tha1tbVNjysrKwEAZ8+eDXiZWwqz2Yzq6mqcOXMGERERWhcnZLDe5GOd+Yb1Jh/rzDe2a6coivJfLIaoVatWiQDEbt26iXl5eeIPP/wg3n333WJsbKx45swZt6+bO3euCIA//OEPf/jDH/4o9HPo0CHZ13FBFH0JWwJn3rx5mD9/vsd9duzYgYMHD2LKlCl4/fXXcf/99wOwtm4YjUYsWLAA//Vf/+XytY4tIOfPn0f37t1x7NgxdOjQQbk30oJVVVUhKSkJx48fR0xMjNbFCRmsN/lYZ75hvcnHOvNNZWUlunXrhnPnzqFjx46yXht0XTAPPvgg7rrrLo/7JCcn48KFCwCA/v37N23X6/Xo2bMnjh075va1er0eer3eaXuHDh34oZMpJiaGdeYD1pt8rDPfsN7kY535JixM/qDaoAtA4uLiEBcX53W/wYMHQ6/X48CBA7jxxhsBWPvwiouL0b1790AXk4iIiPwQdAGIVDExMZg5cybmzp2LpKQkdO/eHc8//zwAYOLEiRqXjoiIiDwJ2QAEAJ5//nmEh4dj2rRpqKmpwQ033ICvv/4anTp1knwMvV6PuXPnuuyWIddYZ75hvcnHOvMN600+1plv/Km3oEtCJSIiopYv5KdiJyIiotDDAISIiIhUxwCEiIiIVMcAhIiIiFTHAMTBZ599hhtuuAFRUVGIi4uDyWTSukgho7a2FoMGDYIgCNizZ4/WxQlaxcXFmDFjBnr06IGoqCj06tULc+fORV1dndZFCzqvvPIKevTogTZt2mDw4MEoLCzUukhBa9GiRbj++uvRvn17dOnSBX/84x9x4MABrYsVchYtWgRBEJCdna11UYJaaWkppk6ditjYWERHR2PQoEHYuXOnrGMwAGlm7dq1mDZtGv785z/jP//5D7755htMnjxZ62KFjMceewxXXHGF1sUIevv370dDQwNef/11/PLLL3jppZfw2muv4a9//avWRQsqq1evRnZ2NubMmYPdu3cjNTUVt956q8eZjluzLVu2YNasWdi+fTs2bdqE+vp6jBkzBpcuXdK6aCFjx44dWLp0Ka6++mqtixLUzp07h5EjRyIiIgJffPEF9u7dixdeeEH2VOwhuxid0sxms5iYmCi++eabWhclJH3++edi3759xV9++UUEIO7evVvrIoWU5557TuzRo4fWxQgqQ4cOFWfOnGm3rW/fvuITTzyhUYlCy6lTp0QA4pYtW7QuSki4cOGC2Lt3b3HTpk3iqFGjxKysLK2LFLQef/xx8cYbb/T7OGwBabRr1y6UlpYiLCwM1157LQwGA2699Vb88ssvWhct6J08eRL33Xcf3nvvPURHR2tdnJBUWVmJzp07a12MoFFXV4edO3dizJgxdtvHjBmDbdu2aVSq0FJZWQkA/FxJNGvWLPz+97/HLbfconVRgt7HH3+MIUOGYOLEiejSpQuuvfZavPHGG7KPwwCk0eHDhwFYV+N9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qRPGjx+P4uJifP311/6/CSLSDAMQIgqI7t27IzExEcePH8evv/4q67W25NU5c+Y4TXqWl5cHgMmoRKGOOSBEFDAzZszA008/jQULFmD58uUe962rq0NkZCS2bt2KX3/9Fb169XI7Q+m6deuwbt06nDt3Dp06dQpAyYko0BiAEFHAPPLII1i9ejXeffddJCYmYu7cudDr9Xb7HDlyBA899BDmzZuHQYMGNbVsPPXUU5g+fbrL48bExOCll17CihUr8OCDDwb6bRBRADAJlYhksSWhjh07Fhs2bPC6f/Op2BMSEjBmzBgYjUZUV1dj9+7d+OabbxAeHo6ffvoJXbp0gcFgQFhYGMrLy9G2bVuXx/zpp59w9dVXY9CgQdi9e7es8u/fvx/PPvssAKCmpgZr1qxB165dMW7cOABAXFwcFi9eLOuYRCQfW0CIKKC6d++OHTt24P3338eaNWvw5Zdf4uzZs2jTpg169+6NRx99FP/93/+NpKQkvP7666iursaMGTPcBh8AMHDgQAwePBg7d+7Erl27cN1110kuT3l5uVN30MmTJ5u2de/enQEIkQrYAkJERESq4ygYIiIiUh0DECIiIlIdc0CIKKR99NFH2LNnj9f90tLS3A7rJSL1MQAhopD20UcfeZ1jxIYBCFHwYBIqERERqY45IERERKQ6BiBERESkOgYgREREpDoGIERERKQ6BiBERESkOgYgREREpDoGIERERKQ6BiBERESkuv8PpW9KCozq0aYAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# PCAのプロット\n", "plt.figure(figsize=(6, 6))\n", "\n", "colors = ['r', 'g', 'b','y']\n", "species = ['BT', 'BC', 'GT','GC']\n", "\n", "for color, specie in zip(colors, species):\n", " plt.scatter(X_pca[y == specie, 0], X_pca[y == specie, 1], \n", " label=specie, \n", " color=color\n", " )\n", "\n", "plt.xlabel('PCA_1', fontsize =14)\n", "plt.ylabel('PCA_2', fontsize =14)\n", "plt.xlim(-6,6)\n", "plt.ylim(-6, 6)\n", "\n", "plt.legend()\n", "plt.grid()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "edeeac1d-d6ad-4cfa-9792-8f9a63731f1c", "metadata": {}, "source": [ "### ④ 寄与率と累積寄与率\n", "PCAでは、データセットの特徴量を直交する新たな軸(主成分)に変換しますが、それぞれの主成分は、元のデータの分散(情報量)をどの程度説明できるかを示す寄与率を持ちます。例えば、寄与率が0.4であれば、その主成分だけで元のデータの40%の分散を説明できることを意味します。累積寄与率は、最初のn個の主成分まででどれだけの分散を説明できるかを示します。累積寄与率が1に近づくほど、それまでの主成分がほぼ全ての分散を説明していることを意味します。\n", "\n", "pythonでは`explained_variance_ratio_`からは各主成分の寄与率を計算できます。`np.cumsum()`メソッドより累積寄与率を計算します。" ] }, { "cell_type": "code", "execution_count": 14, "id": "6be9b97d-5ca1-45ca-a053-a7c1d0790e47", "metadata": {}, "outputs": [], "source": [ "# 寄与率の計算\n", "explained_variance_ratio = pca.explained_variance_ratio_\n", "\n", "# 累積寄与率の計算\n", "cumulative_explained_variance = np.cumsum(explained_variance_ratio)" ] }, { "cell_type": "code", "execution_count": 15, "id": "f67c211d-26c4-48da-b05c-cd58ca71583c", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0.71650408, 0.13997561, 0.07671744, 0.02861021, 0.02109378,\n", " 0.00737171, 0.00557342, 0.00230621, 0.00184754])" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "explained_variance_ratio" ] }, { "cell_type": "code", "execution_count": 16, "id": "dd3f12bb-e850-454a-9dea-3495e1bbeec5", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0.71650408, 0.85647969, 0.93319713, 0.96180734, 0.98290112,\n", " 0.99027283, 0.99584625, 0.99815246, 1. ])" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cumulative_explained_variance" ] }, { "cell_type": "code", "execution_count": 17, "id": "afcedc83-26ae-4757-90f4-e2e8ed5c5fcd", "metadata": {}, "outputs": [ { "data": { "image/png": "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pxtuuEE//fST3WVVWVOnTpXD4dCYMWPsLqVK2bdvn26//XZFREQoNDRU7dq10/r16+0uq0ooLi7Www8/rJiYGIWEhKhJkyaaPHmySktL7S6tyrL9VuG4MCxfvlz33nuv2rdvr+LiYj300ENKTEzU1q1bVb16dbvLq1K+/fZbzZkzR23atLG7lCrlt99+U8eOHdWtWzf94x//UL169bRz507uHFxJnn76ac2ePVuvv/66WrZsqXXr1mnIkCGqVauW7rvvPrvLq5K4TBVe8e9//1v16tXT8uXL1aVLF7vLqTKOHj2qK664QrNmzdITTzyhdu3aKS0tze6yqoSJEydq1apVWrFihd2lVEl/+ctfFBkZqblz57rabrrpJoWGhurNN9+0sbKqi0Mk8IrDhw9LksLDw22upGq599571adPH11zzTV2l1LlfPLJJ4qPj9f//d//qV69err88sv1yiuv2F1WldGpUyctWbJE27dvlyRt2rRJK1euVO/evW2urOriEAmMsyxLycnJ6tSpk1q1amV3OVXGe++9p++++07ffvut3aVUSbt27VJ6erqSk5P14IMP6ptvvtHo0aMVFBRU5pEH8I4HHnhAhw8fVvPmzeXn56eSkhI9+eSTGjhwoN2lVVkEDBg3cuRIff/991q5cqXdpVQZv/zyi+677z5lZmYqODjY7nKqpNLSUsXHx2vKlCmSpMsvv1xbtmxReno6AaMSLFiwQG+99ZbeeecdtWzZUhs3btSYMWNUv359DRo0yO7yqiQCBowaNWqUPvnkE3311Vdq0KCB3eVUGevXr1dubq7i4uJcbSUlJfrqq680c+ZMFRYWys/Pz8YKL3xRUVFq0aJFmbbY2Fh98MEHNlVUtYwfP14TJ07ULbfcIklq3bq1fv75Z02dOpWAYRMCBoywLEujRo3SokWLtGzZMsXExNhdUpXSo0cP/fDDD2XahgwZoubNm+uBBx4gXFSCjh07lrs0e/v27a6HN8K7CgoKVK1a2dMK/fz8uEzVRgQMGHHvvffqnXfe0ccff6yaNWvqwIEDkqRatWopJCTE5uoufDVr1ix3vkv16tUVERHBeTCVZOzYserQoYOmTJmi/v3765tvvtGcOXM0Z84cu0urEvr27asnn3xSDRs2VMuWLbVhwwZNnz5dQ4cOtbu0KovLVGGEw+GosH3evHkaPHhw5RYD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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# 寄与率のプロット\n", "plt.figure(figsize=(6, 6))\n", "\n", "plt.bar(range(1, 10), explained_variance_ratio, alpha=0.2, align='center',\n", " label='Individual explained variance')\n", "\n", "plt.step(range(1, 10), cumulative_explained_variance, where='mid',\n", " label='Cumulative explained variance')\n", "\n", "plt.xlabel('Principal Components')\n", "plt.ylabel('Explained Variance Ratio')\n", "\n", "plt.grid()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "2aff0a34-b3e6-449c-935a-b37d7d2ae6ff", "metadata": {}, "source": [ "## 2. t-分布型確率的近傍埋め込み\n", "t-分布型確率的近傍埋め込み(t-SNE)は、高次元データを低次元空間に効果的に埋め込む手法です。この手法は、データポイント間の局所的な類似性を保持しながら、データの高次元構造を視覚化します。" ] }, { "cell_type": "code", "execution_count": 18, "id": "948038e6-5b03-4a10-99ff-d76ee685e7f7", "metadata": {}, "outputs": [], "source": [ "from sklearn.manifold import TSNE" ] }, { "cell_type": "markdown", "id": "f3253e4e-c785-4c43-856c-6f5b807fcaba", "metadata": {}, "source": [ "### ① モデル構築\n", "t-SNEクラスは、Scikit-learnライブラリから提供されるt-分布型確率的近傍埋め込みのクラスです。このクラスを使用して、高次元データを低次元空間に埋め込み、データの局所的な構造を保持しながら視覚化します。t-SNEは、データポイント間の類似性を反映する2次元または3次元のプロットを生成し、複雑なデータのパターンを理解するのに役立ちます。" ] }, { "cell_type": "code", "execution_count": 19, "id": "287ce68d-00e8-4a4a-abc5-acfccbf1ad81", "metadata": {}, "outputs": [], "source": [ "# t-SNEの実行\n", "tsne = TSNE(n_components=2, random_state=42)\n", "X_tsne = tsne.fit_transform(X)" ] }, { "cell_type": "markdown", "id": "93718fd1-773d-49db-bee1-c152826cf9f5", "metadata": {}, "source": [ "### 【解説】t-SNEのハイパーパラメータ\n", "\n", "t-SNEにはいくつかの重要なハイパーパラメータがあり、これらはアルゴリズムの挙動や結果に大きな影響を与えます。以下に主要なハイパーパラメータを挙げ、それぞれの役割を説明します。\n", "1. **`n_components`**\n", "- **説明**: 埋め込み後の次元数を指定します。通常は2次元または3次元に設定されます。\n", "- **デフォルト値**:\n", "2. **`perplexity`**\n", "- **説明**: t-SNEの「近傍」の尺度を決定するパラメータで、データポイントのローカルな構造をどの程度考慮するかを調整します。小さい値(例: 5)では局所的な構造を、より大きな値(例: 50)ではより広い範囲の構造を捉えます。データのサイズや密度によって適切な値が変わりますが、一般的には5〜50の範囲で設定されます。\n", "- **デフォルト値30\n", "\n", "3. **`learning_rate` (または `lr`)**\n", "- **説明**: 埋め込み空間での更新のステップサイズを決定します。小さすぎると収束が遅くなり、大きすぎると発散する可能性があります。学習率は通常、データの範囲に基づいて調整されます。\n", "- **デフォ*: 200\n", "\n", "4. **`n_iter`**\n", "- **説明**: 最適化のための反復回数を指定します。通常、t-SNEは多数の反復を必要とし、通常1000回以上の反復が推奨されます。学習の収束に影響します。\n", "- **ト値**: 1000\n", "\n", "5. **`init`**\n", "- **説明**: 埋め込みの初期化方法を指定します。`'random'`と`'pca'`のオプションがあります。`'pca'`を選択すると、初期値をPCAで初期化します。\n", "- **デフ**: `'random'`\n", "\n", "6. **`metric`**\n", "- **説明**: データ間の距離を計算するためのメトリックを指定します。例えば、ユークリッド距離(`'euclidean'`)やマンハッタン距離(`'manhattan'`)などがあります。\n", "- **デ値**: `'euclidean'`\n", "\n", "7. **`early_exaggeration`**\n", "- **説明**: 初期段階でのクラスタリングを強調するためのパラメータです。通常はデフォルト値(12.0)のままにしす。\n", "- **デフォルト値**: 12.0\n", "\n", "8. **`random_state`**\n", "- **説明**: 再現性を保つための乱数シードを指定します。結果が再現可能になるようきます。\n", "- **デフォルト値**: `None`\n", "\n", "9. **`n_iter_without_progress`**\n", "- **説明**: 進展がないとみなすための許容反復数。収束速度をるために使用されます。\n", "- **デフォルト値**: 300\n", "\n", "10. **`min_grad_norm`**\n", "- **説明**: 勾配のノルムがこの値以下になった場\n", "\n", "これらのハイパーパラメータは、t-SNEの結果に大きな影響を与えるため、データセットや目的に応じて適切に設定することが重要です。特に、perplexityやlearning_rateは結果の品質に直接影響するため、試行錯誤して最適な値を見つけることが推奨されます。`は結果の品質に直接影響するため、試行錯誤して最適な値を見つけることが推奨されます。" ] }, { "cell_type": "markdown", "id": "c067ef67-3f11-4cc9-9cd6-0a7821f3a490", "metadata": {}, "source": [ "### ② 二次元プロット(可視化)" ] }, { "cell_type": "code", "execution_count": 20, "id": "7560b929-115c-4450-a8a1-e7c303434d50", "metadata": {}, "outputs": [ { "data": { "image/png": "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mDVrFvbs2YOTJ08iNzcXo0ePRlBQEB588MHW+BpERETURG2yR8deW7ZswfHjx3H8+HGoVCqzc/XnYOfn56OiogIAIJfLcejQIaxcuRIXLlyAUqlEXFwc1q5dC19f3xatPxERETWPpIPOpEmTMGnSpOuWqx96vL298e2337qwVkRERNRSJD10RURERO0bgw4RERFJFoMOERERSRaDDhEREUkWgw4RERFJFoMOERERSRaDDhEREUkWgw4RERFJFoMOERERSRaDDhEREUkWgw4RERFJFoMOERERSRaDDhEREUkWgw4RERFJFoMOERERSRaDDhEREUkWgw4RERFJFoMOERERSRaDDhEREUkWgw4RERFJFoMOERERSRaDDhEREUkWgw4RERFJFoMOERERSRaDDhEREUkWgw4RERFJFoMOERERSRaDDhEREUkWgw4RERFJFoMOERERSRaDDhEREUkWgw4RERFJFoMOERERSRaDDhEREUkWgw4RERFJFoMOERERSRaDDhEREUkWgw4RERFJFoMOERERSRaDDhEREUkWgw4RERFJFoMOERERSRaDDhEREUkWgw4RERFJFoMOERERSRaDDhEREUkWgw4RERFJluSDTlRUFARBMPv1/PPPN3qNKIpIS0tDeHg4vL29ERsbi8OHD7dQjYmIiMhZJB90AOCVV16BRqMx/XrppZcaLb9w4UK8+eabWLx4Mfbu3YuwsDCMGDECFy9ebKEaExERkTN4tHYFWoKvry/CwsLsKiuKIjIyMvDiiy8iMTERAPDxxx8jNDQUn332GZ588kmr12m1Wmi1WtPnyspKAIBOp4NOp2vmN2gf6tqJ7eUYtpvj2GZNw3ZzHNusaZzZXoIoiqLT7uaGoqKioNVqUVNTg4iICIwdOxbPPvssvLy8rJb/448/0KNHD/z888+46aabTMcTEhIQEBCAjz/+2Op1aWlpSE9Ptzj+2WefwcfHxzlfhoiIqB2orq7GhAkTUFFRAT8/v2bdS/I9OsnJybj55pvRuXNn/PTTT5gzZw4KCgrw4YcfWi1fUlICAAgNDTU7HhoailOnTtl8zpw5czBz5kzT58rKSkRERCAuLg6BgYFO+CbSp9PpkJOTgxEjRsDT07O1q9NmsN0cxzZrGrab49hmTVNeXu60e7XJoGOr96S+vXv3YsiQIZgxY4bp2KBBg9C5c2ckJSXhtddeazSACIJg9lkURYtj9SkUCigUCovjnp6e/OF2ENusadhujmObNQ3bzXFsM8c4s63aZNCZPn06Hn744UbLREVFWT1+2223AQCOHz9uNejUzeUpKSmBUqk0HS8tLbXo5SEiIiL31iaDTlBQEIKCgpp0bV5eHgCYhZj6unfvjrCwMOTk5Jjm6NTU1GD79u147bXXmlZhIiIiahWSfr18z549WLRoEQ4cOICCggKsW7cOTz75JO6//35069bNVK5Pnz7YsGEDAOOQVUpKCubNm4cNGzbg119/xaRJk+Dj44MJEya01lchIiKiJmiTPTr2UigUWLt2LdLT06HVahEZGYnHH38cs2fPNiuXn5+PiooK0+fZs2fj8uXLmDp1Ks6fP49bb70VW7Zsga+vb0t/BSIiImoGSQedm2++GT/88MN1yzV8w14QBKSlpSEtLc1FNSMiIqKWIOmhKyIiImrfGHSIiIhIshh0iIiISLIYdIiIiEiyGHSIiIhIshh0iIiISLIYdIiIiEiyGHSIiIhIshh0iIiISLIYdIiIiEiyGHSIiIhIshh0iIiISLIYdIiIiEiyGHSIiIhIshh0iIiISLIYdIiIiEiyGHSIiIhIshh0iIiISLIYdIiIiEiyGHSIiIhIshh0iIiISLIYdIiIiEiyGHSIiIhIshh0iIiISLIYdIiIiEiyGHSIiIhIshh0iIiISLIYdIiIiEiyGHSIiIhIshh0iIiISLIYdIiIiEiyGHSIiIhIshh0iIiISLIYdIiIiEiyGHSIiIhIshh0iIiISLIYdIiIiEiyGHSIiIhIshh0iIiISLIYdIiIiEiyGHSIiIhIshh0iIiISLIYdIiIiEiyGHSIiIhIshh0iIiISLIYdIiIiEiyJB10cnNzIQiC1V979+61ed2kSZMsyt92220tWHMiIiJyBo/WroArDRs2DBqNxuzYyy+/jK1bt2LIkCGNXhsfH4/ly5ebPnt5ebmkjkREROQ6kg46Xl5eCAsLM33W6XTYtGkTpk+fDkEQGr1WoVCYXUtERERtj6SDTkObNm3C2bNnMWnSpOuWzc3NRUhICAICAnDnnXdi7ty5CAkJsVleq9VCq9WaPldWVgIwhiudTtfsurcHde3E9nIM281xbLOmYbs5jm3WNM5sL0EURdFpd3Nz99xzDwDgm2++abTc2rVr0alTJ0RGRqKgoAAvv/wyamtrsX//figUCqvXpKWlIT093eL4Z599Bh8fn+ZXnoiIqJ2orq7GhAkTUFFRAT8/v2bdq00GHVuhor69e/eazcMpKipCZGQk1q1bhzFjxjj0PI1Gg8jISKxZswaJiYlWy1jr0YmIiIBGo0FgYKBDz2uvdDodcnJyMGLECHh6erZ2ddoMtpvj2GZNw3ZzHNusacrLy6FUKp0SdNrk0NX06dPx8MMPN1omKirK7PPy5csRGBiI+++/3+HnKZVKREZG4vfff7dZRqFQWO3t8fT05A+3g9hmTcN2cxzbrGnYbo5jmznGmW3VJoNOUFAQgoKC7C4viiKWL1+ORx55pEmNV15ejtOnT0OpVDp8LREREbUeSa+jU+f7779HQUEBJk+ebPV8nz59sGHDBgBAVVUVZs2ahT179uDkyZPIzc3F6NGjERQUhAcffLAlq01ERETN1CZ7dBy1bNkyDBs2DH379rV6Pj8/HxUVFQAAuVyOQ4cOYeXKlbhw4QKUSiXi4uKwdu1a+Pr6tmS1iYiIqJnaRdD57LPPGj1ffz62t7c3vv32W1dXiYiIiFpAuxi6IiIiovaJQYeIiIgki0GHiIiIJItBh4iIiCSLQYeIiIgki0GHiIiIJItBh4iIiCSLQYeIiIgki0GHiIiIJItBh4iIiCSLQYeIiIgki0GHiIiIJItBh4iIiCSLQYeIiIgki0GHiIiIJItBh4iIiCSLQYeIiIgki0GHiIiIJItBh4iIiCSLQYeIiIgki0GHiIiIJItBh4iIiCSLQYeIiIgki0GHiIiIJItBh4iIiCSLQYeIiIgki0GHiIiIJItBh4iIiCSLQYeIiIgki0GHiIiIJItBh4iIiCSLQYeIiIgki0GHiIiIJItBh4iIiCSLQYeIiIgki0GHiIiIJItBh4iIiCSLQYeIiIgki0GHiIiIJItBh4iIiCSLQYeIiIgki0GHiIiIJItBh4iIiCSLQYeIiIgki0GHiIiIJItBh4iIiCSLQYeIiIgkq00Hnblz52LYsGHw8fFBQECA1TKFhYUYPXo0OnbsiKCgIPzrX/9CTU1No/fVarV4+umnERQUhI4dO+L+++9HUVGRC74BERERuVKbDjo1NTUYO3YsnnrqKavn9Xo97r33Xly6dAk7d+7EmjVrsH79ejzzzDON3jclJQUbNmzAmjVrsHPnTlRVVeG+++6DXq93xdcgIiIiF/Fo7Qo0R3p6OgBgxYoVVs9v2bIFR44cwenTpxEeHg4AeOONNzBp0iTMnTsXfn5+FtdUVFRg2bJl+OSTT/DXv/4VALBq1SpERERg69atuPvuu13zZYiIiMjp2nTQuZ49e/ZgwIABppADAHfffTe0Wi3279+PuLg4i2v2798PnU6HkSNHmo6Fh4djwIAB2L17t82go9VqodVqTZ8rKioAAOfOnXPW15E8nU6H6upqlJeXw9PTs7Wr02aw3RzHNmsatpvj2GZNU/f/TlEUm30vSQedkpIShIaGmh3r3LkzvLy8UFJSYvMaLy8vdO7c2ex4aGiozWsAYP78+aYepvp69erVhJoTERFReXk5/P39m3UPtws6aWlpVgNDfXv37sWQIUPsup8gCBbHRFG0erwx17tmzpw5mDlzpunzhQsXEBkZicLCwmb/R2ovKisrERERgdOnT1sdViTr2G6OY5s1DdvNcWyzpqmoqEC3bt3QpUuXZt/L7YLO9OnT8fDDDzdaJioqyq57hYWF4ccffzQ7dv78eeh0OouenvrX1NTU4Pz582a9OqWlpRg2bJjNZykUCigUCovj/v7+/OF2kJ+fH9usCdhujmObNQ3bzXFss6aRyZr/zpTbBZ2goCAEBQU55V5Dhw7F3LlzodFooFQqARgnKCsUCgwePNjqNYMHD4anpydycnIwbtw4AIBGo8Gvv/6KhQsXOqVeRERE1DLa9OvlhYWFOHDgAAoLC6HX63HgwAEcOHAAVVVVAICRI0eiX79+mDhxIvLy8vDdd99h1qxZePzxx03Juri4GH369MFPP/0EwNgDM3nyZDzzzDP47rvvkJeXh7///e8YOHCg6S0sIiIiahvcrkfHEf/+97/x8ccfmz7fdNNNAIBt27YhNjYWcrkcX3/9NaZOnYrbb78d3t7emDBhAl5//XXTNTqdDvn5+aiurjYdW7RoETw8PDBu3DhcvnwZd911F1asWAG5XG533RQKBVJTU60OZ5F1bLOmYbs5jm3WNGw3x7HNmsaZ7SaIznh3i4iIiMgNtemhKyIiIqLGMOgQERGRZDHoEBERkWQx6BAREZFkMei4wP33349u3bqhQ4cOUCqVmDhxIs6cOWNWprCwEKNHj0bHjh0RFBSEf/3rX6ipqWmlGreukydPYvLkyejevTu8vb3Ro0cPpKamWrQH28zS3LlzMWzYMPj4+CAgIMBqGbabpXfffRfdu3dHhw4dMHjwYKjV6tauklvZsWMHRo8ejfDwcAiCgC+++MLsvCiKSEtLQ3h4OLy9vREbG4vDhw+3TmXdxPz583HLLbfA19cXISEheOCBB5Cfn29Whu1m7r333sOgQYNMiykOHToU//vf/0znndVeDDouEBcXh3Xr1iE/Px/r16/HiRMnkJSUZDqv1+tx77334tKlS9i5cyfWrFmD9evX45lnnmnFWreeY8eOwWAw4P3338fhw4exaNEiLFmyBC+88IKpDNvMupqaGowdOxZPPfWU1fNsN0tr165FSkoKXnzxReTl5SEmJgajRo1CYWFha1fNbVy6dAk33ngjFi9ebPX8woUL8eabb2Lx4sXYu3cvwsLCMGLECFy8eLGFa+o+tm/fjmnTpuGHH35ATk4OamtrMXLkSFy6dMlUhu1mTqVSYcGCBdi3bx/27duHv/zlL0hISDCFGae1l0gut3HjRlEQBLGmpkYURVH85ptvRJlMJhYXF5vKrF69WlQoFGJFRUVrVdOtLFy4UOzevbvpM9usccuXLxf9/f0tjrPdLP2///f/xClTppgd69Onj/j888+3Uo3cGwBxw4YNps8Gg0EMCwsTFyxYYDp25coV0d/fX1yyZEkr1NA9lZaWigDE7du3i6LIdrNX586dxQ8//NCp7cUeHRc7d+4cPv30UwwbNgyenp4AgD179mDAgAEIDw83lbv77ruh1Wqxf//+1qqqW6moqDDbzI1t1jRsN3M1NTXYv38/Ro4caXZ85MiR2L17dyvVqm0pKChASUmJWRsqFArceeedbMN6KioqAMD05xjbrXF6vR5r1qzBpUuXMHToUKe2F4OOizz33HPo2LEjAgMDUVhYiI0bN5rOlZSUWGwq2rlzZ3h5eaGkpKSlq+p2Tpw4gbfffhtTpkwxHWObNQ3bzdzZs2eh1+st2iQ0NLRdtkdT1LUT29A2URQxc+ZM3HHHHRgwYAAAtpsthw4dQqdOnaBQKDBlyhRs2LAB/fr1c2p7MejYKS0tDYIgNPpr3759pvLPPvss8vLysGXLFsjlcjzyyCMQ6y1CLQiCxTNEUbR6vK1ytM0A4MyZM4iPj8fYsWPx2GOPmZ1rD20GNK3dGtNe2s0RDb97e2+PpmAb2jZ9+nQcPHgQq1evtjjHdjPXu3dvHDhwAD/88AOeeuopPProozhy5IjpvDPaq03vddWSpk+fjocffrjRMlFRUaZ/r9uFvVevXujbty8iIiLwww8/YOjQoQgLC8OPP/5odu358+eh0+ks0mtb5mibnTlzBnFxcRg6dCiWLl1qVq69tBngeLs1pj21mz2CgoIgl8st/kZYWlraLtujKcLCwgAYeyiUSqXpONvQ6Omnn8amTZuwY8cOqFQq03G2m3VeXl6Ijo4GAAwZMgR79+5FZmYmnnvuOQDOaS8GHTvVBZemqOvJ0Wq1AIChQ4di7ty50Gg0pv+AW7ZsgUKhwODBg51TYTfgSJsVFxcjLi4OgwcPxvLlyyGTmXc2tpc2A5r3s9ZQe2o3e3h5eWHw4MHIycnBgw8+aDqek5ODhISEVqxZ29G9e3eEhYUhJyfHtJFyTU0Ntm/fjtdee62Va9d6RFHE008/jQ0bNiA3Nxfdu3c3O892s48oitBqtc5tL2fMkqZrfvzxR/Htt98W8/LyxJMnT4rff/+9eMcdd4g9evQQr1y5IoqiKNbW1ooDBgwQ77rrLvHnn38Wt27dKqpUKnH69OmtXPvWUVxcLEZHR4t/+ctfxKKiIlGj0Zh+1WGbWXfq1CkxLy9PTE9PFzt16iTm5eWJeXl54sWLF0VRZLtZs2bNGtHT01NctmyZeOTIETElJUXs2LGjePLkydaumtu4ePGi6WcJgPjmm2+KeXl54qlTp0RRFMUFCxaI/v7+YnZ2tnjo0CFx/PjxolKpFCsrK1u55q3nqaeeEv39/cXc3FyzP8Oqq6tNZdhu5ubMmSPu2LFDLCgoEA8ePCi+8MILokwmE7ds2SKKovPai0HHyQ4ePCjGxcWJXbp0ERUKhRgVFSVOmTJFLCoqMit36tQp8d577xW9vb3FLl26iNOnTzcFofZm+fLlIgCrv+pjm1l69NFHrbbbtm3bTGXYbpbeeecdMTIyUvTy8hJvvvlm0yvAZLRt2zarP1ePPvqoKIrGV6VTU1PFsLAwUaFQiMOHDxcPHTrUupVuZbb+DFu+fLmpDNvN3D//+U/T78Pg4GDxrrvuMoUcUXReewmiWG+GLBEREZGE8K0rIiIikiwGHSIiIpIsBh0iIiKSLAYdIiIikiwGHSIiIpIsBh0iIiKSLAYdIiIikiwGHSIiIpIsBh0iahHX25G94a861dXVmDdvHm6++WZ06tQJHTp0gEqlQkxMDObMmYMTJ06YPSc2NhaCIMDb2xtFRUVW6xIVFYUOHTqYHcvNzb1unR544IEmffdVq1bhySefxJAhQ6BQKCAIAlasWNGkexGRY7ipJxG1iNTUVItj6enp8Pf3R0pKitVrLl68iDvuuAMHDx5EdHQ0/v73vyMgIACnT5/G4cOHsWDBAvTo0QM9evSwuPbKlSv497//jY8++siheg4ePBj33Xef1XN9+vRx6F51XnrpJZw6dQpBQUFQKpU4depUk+5DRI5j0CGiFpGWlmZxLD09HQEBAVbPAUBGRgYOHjyIyZMn44MPPjDr6QGAgoICaLVaq9f26NEDK1euxDPPPIP+/fvbXc8hQ4bYrE9Tffjhh+jZsyciIyOxYMECzJkzx6n3JyLbOHRFRG5rz549AIDp06dbhBwA6N69u81elldffRV6vd4tQsVf//pXREZGtnY1iNolBh0icltdunQBABw/ftzha2NjYzFq1Ch8+eWX2Llzp7OrRkRtBIeuiMhtjR07Fp9++ikmT56Mffv2YeTIkbjpppvQuXNnu65fsGABvv32Wzz33HPYtWuXXdfs27fP5tBVfHw8brvtNnurT0RugEGHiNxWQkICFi5ciFdeeQWvvfYaXnvtNQDG+Tfx8fFITk5Gz549bV4/aNAgTJgwAatWrcIXX3xh11tT+/fvx/79+62eCwgIYNAhamM4dEVEbu3ZZ5/FmTNnsG7dOqSkpOCOO+5AYWEh3nnnHQwaNAibNm1q9PpXX30VCoUCL7zwAvR6/XWf9+STT0IURau/bL0dRkTui0GHiNyer68vxo4di0WLFkGtVqOsrAxTp07FlStXMHnyZNTU1Ni8NjIyEk899RSOHj2K5cuXt2CticgdMOgQUZvj7++PxYsXIzIyEmfPnsWhQ4caLf/SSy/Bz88PaWlpuHz5cgvVkojcAYMOEbVJgiDAx8fHrrKBgYGYPXs2iouL8dZbb7m4ZkTkThh0iMhtvf/++9i7d6/Vc9nZ2Th27BgCAgIwYMCA695rxowZUCqVWLBgAaqqqpxdVSJyU3zriojc1v/+9z9MmTIF0dHRuP322xEeHo6qqiocOHAAarUaMpkM7777LhQKxXXv5ePjg9TUVEyZMgUAbF7T2OvlAQEBTZqQ/OGHH5rW8qkbZvvwww+Rm5sLAHjggQeavI8WETVOEEVRbO1KEFH7JAgCIiMjcfLkSavn8/PzsWnTJuTk5OD48ePQaDQAgK5du+KOO+7A008/jcGDB5tdExsbi+3bt0Oj0SAsLMzsXG1tLQYMGID8/HwoFApcuXLFdC43NxdxcXGN1rexujZm0qRJ+Pjjj22eT01Ndfq2E0RkxKBDREREksU5OkRERCRZDDpEREQkWZyMTETkIHvn06SkpCAgIMCldSGixnGODhGRgwRBsKtcQUEBoqKiXFsZImoUe3SIiBzEvx8StR2co0NERESSxaBDREREksWgQ0RERJLFoENERESSxaBDREREksWgQ0RERJLFoENERESSxaBDREREkvX/AbIp8/EtSV+ZAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# t-SNEのプロット\n", "plt.figure(figsize=(6, 6))\n", "\n", "colors = ['r', 'g', 'b','y']\n", "species = ['BT', 'BC', 'GT','GC']\n", "\n", "for color, specie in zip(colors, species):\n", " plt.scatter(X_tsne[y == specie, 0], X_tsne[y == specie, 1], \n", " label=specie, \n", " color=color\n", " )\n", "\n", "plt.xlabel('TSNE_1', fontsize =14)\n", "plt.ylabel('TSNE_2', fontsize =14)\n", "plt.xlim(-30,30)\n", "plt.ylim(-10,10)\n", "\n", "plt.legend()\n", "plt.grid()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "d3f53cf7-c231-48c6-be76-7ded6947711e", "metadata": {}, "source": [ "### ③ 標準化\n", "\n", "t-分布型確率的近傍埋め込み(t-SNE)を適用する際には、データの標準化が推奨されます。標準化を進めることで、データのスケールによる偏りを防ぎ、より正確で意味のある可視化を得ることができます。標準化を行わないと、データのスケールによってt-SNEの結果が歪む可能性があるとされます。その影響について比較してみましょう。" ] }, { "cell_type": "code", "execution_count": 21, "id": "d2ee645c-c213-4268-8824-237bd8f436bc", "metadata": {}, "outputs": [], "source": [ "# データの標準化\n", "scaler = StandardScaler()\n", "X_std = scaler.fit_transform(X)" ] }, { "cell_type": "code", "execution_count": 22, "id": "91750b37-2b96-4dee-a054-bbeaaed5ff18", "metadata": {}, "outputs": [], "source": [ "X_tsne = tsne.fit_transform(X_std)" ] }, { "cell_type": "code", "execution_count": 24, "id": "8968da26-4c84-4431-a2b5-3503c39e1cf5", "metadata": {}, "outputs": [ { "data": { "image/png": "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bW2ty9dERESgT58+dtf79evn8jUA8NRTT7XNMLU3dOjQTvSciIiI6uvr0bt37y7dI+ACncLCQqcBQ3s7d+7E2LFjFd1PEASHa6IoOr3ujqfXzJ8/H3PmzGl7fPLkSaSmpqKysrLLH1Iga2xsRHJyMqqqqpwuBeoFx6kvoTJOIHTGynHqS0NDA1JSUhAbG9vlewVcoHPffffh1ltvddsmLS1N0b0SExPx5Zdf2l07ceIEWlpaHGZ62r+mubkZJ06csJvVOXr0KCZMmODyvYxGI4xGo8P13r176/ovoyw6Oprj1BGOU39CZawcp76EhXX9zFTABTrx8fGIj49X5V7jx4/HE088gZqaGiQlJQGQNigbjUaMGTPG6WvGjBmD8PBwbN68GdOmTQMA1NTU4D//+Q+efvppVfpFREREvhHUx8srKyuxZ88eVFZWwmazYc+ePdizZw9Onz4NAJg8eTIuvfRSzJgxA7t378ann36KuXPn4o477miLhKurqzF8+HD861//AiDNwNx22234wx/+gE8//RS7d+/Gr3/9a4wePbrtFBYREREFh4Cb0fHGn/70J7zyyittj3/6058CALZs2YKMjAwYDAZ88MEHuOeee3DVVVchMjISeXl5WLJkSdtrWlpasH//fpw9e7bt2rPPPotu3bph2rRpOHfuHH7+859j9erVMBgMivtmNBqxYMECp8tZesJx6gvHqT+hMlaOU1/UHKcgqnF2i4iIiCgABfXSFREREZE7DHSIiIhItxjoEBERkW4x0CEiIiLdYqCjsoqKCtx2220YOHAgIiMjMWjQICxYsADNzc127SorK5GdnY0ePXogPj4e//u//+vQJtA98cQTmDBhAqKiohATE+O0jSAIDl/Lly/3bUe7SMk49fB5OpOWlubw+T344IP+7laXvfDCCxg4cCC6d++OMWPGoKSkxN9dUlVhYaHD55aYmOjvbnXZZ599huzsbPTv3x+CIOCdd96xe14URRQWFqJ///6IjIxERkYG9u7d65/OdoGncc6aNcvh8x03bpx/OtsFTz31FH72s5+hV69e6Nu3L26++Wbs37/fro0anykDHZXt27cPra2t+Pvf/469e/fi2WefxfLly/HQQw+1tbHZbLjxxhtx5swZfP7553jjjTewYcMG/OEPf/Bjz73X3NyMqVOn4ve//73bdqtWrUJNTU3b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EQUlQRAQFRWlqG1cXBweeOABVFdX47nnntO4Z0QUSBjoEFHA+vvf/46dO3c6fc5isWDfvn2IiYnBqFGjPN5r9uzZSEpKwqJFi3D69Gm1u0pEAYqnrogoYP3jH//A3XffjcGDB+Oqq65C//79cfr0aezZswclJSUICwvDCy+8AKPR6PFeUVFRWLBgAe6++24AcPkad8fLY2JiOrUh+aWXXmrL5SMvs7300kuwWq0AgJtvvrnTdbSIyD1BFEXR350gotAkCAJSU1NRUVHh9Pn9+/fjvffew+bNm1FWVoaamhoAwIABA3D11Vfj/vvvx5gxY+xek5GRga1bt6KmpgaJiYl2z124cAGjRo3C/v37YTQacf78+bbnrFYrMjMz3fbXXV/dmTVrFl555RWXzy9YsED1shNEJGGgQ0RERLrFPTpERESkWwx0iIiISLe4GZmIyEtK99MUFBQgJiZG074QkXvco0NE5CVBEBS1Ky8vR1pamradISK3OKNDROQl/n5IFDy4R4eIiIh0i4EOERER6RYDHSIiItItBjpERESkWwx0iIiISLcY6BAREZFuMdAhIiIi3WKgQ0RERLr1/wFBBZRZ54rVHAAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# t-SNEのプロット\n", "plt.figure(figsize=(6, 6))\n", "\n", "colors = ['r', 'g', 'b','y']\n", "species = ['BT', 'BC', 'GT','GC']\n", "\n", "for color, specie in zip(colors, species):\n", " plt.scatter(X_tsne[y == specie, 0], X_tsne[y == specie, 1], \n", " label=specie, \n", " color=color\n", " )\n", "\n", "plt.xlabel('TSNE_1', fontsize =14)\n", "plt.ylabel('TSNE_2', fontsize =14)\n", "plt.xlim(-20,20)\n", "plt.ylim(-10,10)\n", "\n", "plt.legend()\n", "plt.grid()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "3e16497f-51ed-40e0-9e73-5b060e0e3fdd", "metadata": {}, "source": [ "## 3. 統一マニホールド近似と射影(UMAP)\n", "統一マニホールド近似と射影(UMAP)は、高次元データを低次元空間に効率的に埋め込む手法です。UMAPは、データの局所的な構造と全体的な構造を保持しながら、複雑なデータの可視化を行います。" ] }, { "cell_type": "code", "execution_count": 25, "id": "b295e94b-bc3e-4862-8526-41c0d4e14f07", "metadata": {}, "outputs": [ { "ename": "ModuleNotFoundError", "evalue": "No module named 'umap'", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", "Cell \u001b[1;32mIn[25], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mumap\u001b[39;00m\n", "\u001b[1;31mModuleNotFoundError\u001b[0m: No module named 'umap'" ] } ], "source": [ "import umap" ] }, { "cell_type": "markdown", "id": "08b0cb98-12a9-41f8-988f-d89c71a34c90", "metadata": {}, "source": [ "### ① モデル構築\n", "UMAPクラスは、umap-learnライブラリから提供される統一マニホールド近似と射影の実装クラスです。このクラスを使用して、高次元データを低次元空間に効果的に埋め込むことができます。" ] }, { "cell_type": "code", "execution_count": 62, "id": "b5d71abe-4723-447b-878e-3e45767a71c0", "metadata": {}, "outputs": [], "source": [ "# UMAPの実行\n", "umap_model = umap.UMAP(n_components=2, random_state=42)\n", "X_umap = umap_model.fit_transform(X)" ] }, { "cell_type": "markdown", "id": "e710e60a-7b4c-434b-855b-527b0f87308f", "metadata": {}, "source": [ "### 【解説】UMAPのハイパーパラメータ\n", "UMAP(Uniform Manifold Approximation and Projection)は、高次元データの低次元空間への埋め込みを行うための手法で、特にデータの局所的および大域的な構造を保持することに優れています。UMAPにはいくつかの重要なハイパーパラメータがあり、これらを調整することで埋め込みの特性を制御できます。\n", "\n", "1. **`n_neighbors`**\n", "- **説明**: 各データポイントの近傍の数を指定します。このパラメータは局所的な構造をどの程度保持するかに影響を与えます。値が小さいと局所的な構造を強調し、値が大きいとより大域的な構造が強調されます。一般的には5〜50の範囲で設定されます。\n", "- **デフォルト値**: 15\n", "\n", "2. **`min_dist`**\n", "- **説明**: 埋め込み空間でのクラスタの圧縮度を決定するパラメータです。値が小さいとデータポイントがより密集し、値が大きいとデータポイント間に余裕が生まれます。`min_dist`は0.0から0.99までの範囲で設定されることが多いです。\n", "- **デフォルト値**: 0.1\n", "\n", "3. **`n_components`**\n", "- **説明**: 埋め込み後の次元数を指定します。通常は2次元または3次元に設定されますが、場合によってはそれ以上の次元に設定することもあります。\n", "- **デフォルト値**: 2\n", "\n", "4. **`metric`**\n", "- **説明**: 高次元空間での距離を計算するためのメトリックを指定します。デフォルトはユークリッド距離ですが、他にもマンハッタン距離やコサイン類似度、またはカスタムメトリックなども使用できます。\n", "- **デフォルト値**: `'euclidean'`\n", "\n", "5. **`random_state`**\n", "- **説明**: 再現性を確保するための乱数シードを指定します。指定しない場合はランダムになります。\n", "- **デフォルト値**: `None`\n", "\n", "6. **`spread`**\n", "- **説明**: `min_dist`と組み合わせて使用され、埋め込み空間でのクラスターの間隔を制御します。`spread`と`min_dist`の組み合わせによって、データの局所的なクラスタリングの度合いが決まります。\n", "- **デフォルト値**: 1.0\n", "\n", "7. **`set_op_mix_ratio`**\n", "- **説明**: 最近傍グラフの構築に使用される。このパラメータは0から1の範囲で設定され、0に近いと「OR」論理(大域的構造を強調)、1に近いと「AND」論理(局所的構造を強調)になります。\n", "- **デフォルト値**: 1.0\n", "\n", "8. **`local_connectivity`**\n", "- **説明**: 各データポイントが属するべき最小の近傍クラスタの数を指定します。これにより、少なくともこの数の近傍と接続されるようになります。\n", "- **デフォルト値**: 1\n", "\n", "9. **`repulsion_strength`**\n", "- **説明**: 埋め込み空間でのデータポイント間の反発力を調整します。値が大きいとポイントがより分離され、小さいとより密集します。\n", "- **デフォルト値**: 1.0\n", "\n", "10. **`negative_sample_rate`**\n", "- **説明**: UMAPのアルゴリズムで使用される負のサンプルの数を指定します。このパラメータは最適化の過程で使用される負のサンプルの比率を制御します。\n", "- **デフォルト値**: 5\n", "\n", "11. **`transform_seed`**\n", "- **説明**: UMAPのトランスフォーメーションが再現可能になるようにシードを設定します。埋め込みがトレーニングされる際にこのシードが使用されます。\n", "- **デフォルト値**: 42\n", "\n", "これらのハイパーパラメータは、UMAPによるデータの埋め込み結果に大きく影響します。特に`n_neighbors`、`min_dist`、および`metric`は結果に大きな影響を与えるため、データの特性や分析目的に応じて適切に調整することが重要です。" ] }, { "cell_type": "markdown", "id": "a372f2b4-64a0-4af7-b691-c6bbe808c4d1", "metadata": {}, "source": [ "### ② 二次元プロット(可視化)" ] }, { "cell_type": "code", "execution_count": 65, "id": "de5762e8-f386-414b-a8a7-e6d7f51502bf", "metadata": {}, "outputs": [ { "data": { "image/png": "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44915plnWl0aADRattt3SF+8IK166CQtK8JKTIzva0LwatAlmz/+8Y+Kj4/XrFmzlJSUpAsuuEB/+tOfajzbpjEaM2aMtm3bptLSUq1du1b9+/e3uiQAaLRcbpfu+uguaeAjUt9pHh2Tn+/bmhDcGhRInnrqKW3dulWffPKJrrvuOm3YsEEZGRmKj4/X1VdfrbfffttXdQIA/ChrW5YKDxdWDH50/9CjY05nYTWgwSu1GoahK664Qu+++6527Nihl19+Weecc44+/vhj3XTTTTIMQ2vXrpXT6fRFvQAAP8jalvXLizOdUmSOJHetbQ25ldD2CBNacVpOa+n4Nm3aKCMjQ99++61Wr16tO++8Uy1bttS6deuUkpKis846S88++6y3agUAWMHmlgaPO/bixFBS8XrarFAmtOK0eO1ZNhdccIFee+015efna/78+brkkkv0008/6Y9//KO3TgEA8JOUTinVN/RYLI1IlyLzqm1uZSvQuKt/UpsYu1wu/9WH4OP1h+uFh4frlltu0YoVK/TDDz/o4Ycf9vYpAAA+ltIpRdHh0dU39lgsZXSSRl4lSTIc+3XA3V7TlpylAQOkTp14wB5OnU+f9puYmKgpU6b48hQAAB+w2+yaPbSWFbdtbumngZIkszSq2q7c3Ipl4wklOBUNWofkVFdi7du37ykdBwCwTlr3NL0/4n3d98l9yjt47FLNf6+TVo+T9Emtx5imlJEhpaby1F80TIMCyYUXXnhKq7K6uLAIAAEprXuaUrularJzsib8a5L08Swdv2qrzeZSUpJT0dH5KiyM04YNycrJscvplFJSLCsbAajBD9cLCQnRwIED1bZtW1/UAwBohP7yn79I25OlknZSeLkk6aKLPtJdd41Tu3a5Ve12747XzJnTlZ+fZlWpCFANCiS/+tWvtH79ei1btkxXXXWVbrvtNl155ZWy2Xw6FQUAYCFntlO5RblS8SXVtj/22M0yjJJq22Ji8jRpUroMY5EkQgk816Ak8Z///Efr16/X7373OzmdTqWmpio+Pl6PPvqofvjhB1/VCACwUP7BY2vCt6j402arvAxv6sSr+DabKdOUHI4MmSaX6+G5Bg9tnHfeefrTn/6kHTt2aOHChUpKStKLL76o7t276+KLL9bcuXNVXFzsi1oBABaIa3lsTfhjK7b27PlvSaoRRirZbKZKS3O0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I0eOmK1atTJfe+01CyoMPrt37zYlmStWrDBNM/j7nBGSJuLAgQNq06ZN1esvvvhC5557rjp06FC17YorrlBpaanWrl1rRYlBjz73rrKyMq1du1aDBg2qtn3QoEFatWqVRVU1HVu3btXOnTur9b/D4dCll15K/3tJ5UNgK392B3ufE0iagJ9++kkzZszQ3XffXbVt586dNR4u2Lp1a4WFhWnnzp3+LrFJoM+9a8+ePXK5XDX6tH379vSnH1T2Mf3vG6Zpavz48brkkkt07rnnSgr+PieQBJCJEyfKMIx6v77++utqx+zYsUODBw/W8OHDdccdd1TbZxhGjXOYplnr9qbqVPq8PvS5953Yd/Snf9H/vjF27Fh9++23WrhwYY19wdrnAf0sm6Zm7NixuuGGG+pt06lTp6q/79ixQwMGDFC/fv00e/bsau1iY2O1evXqatv27dun8vLyGum7KWton9eHPveumJgY2e32Gr8Z7t69m/70g9jYWEkVv7XHxcVVbaf/T9+9996rv/3tb1q5cqXi4+Ortgd7nxNIAkhMTIxiYmI8apuXl6cBAwaod+/emjdvnmy26oNh/fr10+TJk5Wfn1/1wV66dKkcDod69+7t9doDVUP6/GToc+8KCwtT7969tWzZMg0bNqxq+7Jly5SammphZU1D586dFRsbq2XLllU92LSsrEwrVqzQ888/b3F1gck0Td17771avHixsrKy1Llz52r7g77PLZxQCx/Jy8szExMTzcsuu8zMzc018/Pzq74qHT161Dz33HPNyy+/3PzPf/5j/uMf/zDj4+PNsWPHWlh5YNu+fbu5bt06c9KkSWaLFi3MdevWmevWrTMPHjxomiZ97gtvv/22GRoaas6ZM8f87rvvzIyMDLN58+bmtm3brC4tKBw8eLDqcyzJfPnll81169aZ27dvN03TNJ977jmzVatWZmZmprlhwwbzxhtvNOPi4syioiKLKw9Mv//9781WrVqZWVlZ1X5ul5SUVLUJ5j4nkAShefPmmZJq/Tre9u3bzauuusoMDw8327RpY44dO9Y8cuSIRVUHvlGjRtXa58uXL69qQ59736uvvmqeeeaZZlhYmPnrX/+66hZJnL7ly5fX+pkeNWqUaZoVt6FOmDDBjI2NNR0Oh9m/f39zw4YN1hYdwOr6uT1v3ryqNsHc54ZpmqYfB2QAAABq4C4bAABgOQIJAACwHIEEAABYjkACAAAsRyABAACWI5AAAADLEUgAAIDlCCQAAMByBBIADZKVlSXDMHTrrbc2qE1KSkrVE5I//fTTOo/99a9/XdXuyy+/rLPdk08+KcMw5HA4VFhYWGe7489rGIZsNptat26t/v37a/78+TrVtSFnzJih0aNH67zzzlNISIgMw1BWVtYpvRcAHq4HwM9CQkI0d+5cDR48uMa+b775RuvWrVNISIiOHj1a53u43W698cYbMgxDZWVlevPNNzVu3Lh6z/vAAw+oRYsWcrlc+vnnn5WZmSmn06m1a9dqxowZDf4+7rvvPklSXFyc2rZtW+OpwwAahhESAH41ZMgQffjhh7WOasyZM0chISEaOHBgve+xbNkyZWdn6+6771bz5s01Z86ck573wQcf1MSJE/X0009rwYIF+uqrrxQeHq5XX31VW7dubfD3sWTJEuXn52vHjh08XRjwAgIJAL8aPXq0ysrKtGDBgmrby8rK9NZbb+mqq65Su3bt6n2PygAyZswYDRs2TBs2bNCaNWsaVEdSUpIuvfRSmaaptWvXNuybkHTVVVcpNja2wccBqB2BBIBf9evXT927d9e8efOqbf/ggw9UWFio2267rd7jCwsL9eGHH+r888/Xueeeq1tuuUWSPBolAdB4EUgA+N3o0aO1fv16rVu3rmrbnDlz1L59e1155ZX1Hvt///d/Kisr08033yxJuvzyyxUfH6+FCxeqpKTE4xo2bNigFStWyDAM9enT59S+EQBeQyAB4He33HJL1eRWScrJydE//vGPqu31mTt3rux2u2688UZJks1m00033aSioiItWrSozuNeeuklTZw4UU888YRuuukm9e3bV4cPH9a9996rTp06ee17A3BqCCQA/K5yJOStt95SaWmp5s+fL7fbrdGjR9d73FdffaUNGzZo4MCB1eZvjBo1SpKqAk5tpk6dqkmTJmny5Mn6+9//rgsuuEDz58/XtGnTvPI9ATg93PYLoEFstorfY9xud51tKvdVtq3N6NGj9be//U2LFy/W/PnzdeGFF6p79+71nrsycFRerqnUvXt39enTRytWrNCWLVuUmJhY49j8/HwmoQKNGCMkABqkVatWklTvYmR79uyp1rY2V199tdq3b68HH3xQP//880kns5aUlGjhwoWSpJtuuqnaYmeGYejrr7+WVP8oCYDGixESAA3SrVs3hYWFac2aNTp69Gitcz6++OILSdJ5551X5/uEhITot7/9raZOnaqIiAhdf/319Z530aJFKioq0q9+9Sv17t271jZ//etf9cYbb+jpp5+W3W5vwHcFwGoEEgAN0qxZM40YMUJvvvmmnnnmGU2cOLHa/g0bNuj1119Xy5YtNWzYsHrf6w9/+IMuueQSxcTEKDIyst62lbf1vvLKK0pJSam1zd69e7V48WJ98sknuvrqqz3+ngBYj0ACoMGmTp2q1atXa9KkSVqyZIkuvfRSNWvWTD/88IP+9re/yTRNLViwQFFRUfW+T/v27XXttdee9HxbtmzRypUr1aVLF1166aV1ths9erQWL16sOXPm+DyQPPfcc9q8ebOkX0aEnnvuOc2fP1+SdMcdd+iSSy7xaQ1AMCGQAGiwdu3aac2aNXrllVf0wQcf6M9//rPKysoUGxur9PR0Pfjggzr//PO9dr7K0ZHRo0fLMIw62w0ZMkTt27fXkiVLtGvXLrVv395rNZzo008/1YoVK6pt++yzz6r+npKSQiABGsAwT/VRlwAAAF7CXTYAAMByBBIAAGA55pAAaPL279/v8YqtJ95VBMA7mEMCoMnbtm2bOnfu7FFbfmQCvkEgAQAAlmMOCQAAsByBBAAAWI5AAgAALEcgAQAAliOQAAAAyxFIAACA5QgkAADAcgQSAABguf8H7P5mvhRQSbEAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# UMAPのプロット\n", "plt.figure(figsize=(6, 6))\n", "\n", "colors = ['r', 'g', 'b','y']\n", "species = ['BT', 'BC', 'GT','GC']\n", "\n", "for color, specie in zip(colors, species):\n", " plt.scatter(X_umap[y == specie, 0], X_umap[y == specie, 1], \n", " label=specie, \n", " color=color\n", " )\n", "\n", "plt.xlabel('UMAP_1', fontsize =14)\n", "plt.ylabel('UMAP_2', fontsize =14)\n", "plt.xlim(-25,25)\n", "plt.ylim(-15,15)\n", "\n", "plt.legend()\n", "plt.grid()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "bb559200-af90-48da-a136-4ced011a16ea", "metadata": {}, "source": [ "### ③ 標準化\n", "\n", "UMAPについても適用する際には、データの標準化が推奨されます。ここでも標準化を通じた影響について比較してみましょう。" ] }, { "cell_type": "code", "execution_count": 67, "id": "52ec7ae0-0cdb-4fd8-8ad8-68a27409743f", "metadata": {}, "outputs": [], "source": [ "# データの標準化\n", "scaler = StandardScaler()\n", "X_std = scaler.fit_transform(X)" ] }, { "cell_type": "code", "execution_count": 68, "id": "d7369f98-c51f-438f-97fa-f65734597564", "metadata": {}, "outputs": [], "source": [ "X_umap = umap_model.fit_transform(X_std)" ] }, { "cell_type": "code", "execution_count": 69, "id": "fefb0222-0b42-45ac-bfb9-398a0c7e43ef", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiEAAAIXCAYAAABKNI43AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAABWNElEQVR4nO3deXxU5aH/8e/JJBnCGkgCCSQSNIAIqC2gogZDFQQFozFoRStia+W6JS51t0JVlFZpuFjLRUVsBdRiEItopf0RiBeVpVC5iCIS9gAh7FuWyfn9MU7InllzZobP+/XKK8yZZ+Y8DxPM12c1TNM0BQAA0MIirK4AAAA4MxFCAACAJQghAADAEoQQAABgCUIIAACwBCEEAABYghACAAAsQQgBAACWIIQAAABLEEIAAIAlgi6ELF++XKNHj1bXrl1lGIY+/PDDWs+bpqmJEyeqa9euiomJUUZGhjZs2GBNZQEAgNeCLoQcP35cF1xwgV599dUGn//973+vqVOn6tVXX9WqVauUmJioYcOG6ejRoy1cUwAA4AsjmA+wMwxDCxYs0PXXXy/J2QvStWtX5ebm6rHHHpMklZWVqUuXLpoyZYruvvtuC2sLAAA8EWl1BTxRVFSkPXv2aPjw4dXX7Ha7rrjiCq1YsaLREFJWVqaysrLqx1VVVTpw4IDi4uJkGEbA6w0AQLgwTVNHjx5V165dFRHh24BKSIWQPXv2SJK6dOlS63qXLl20bdu2Rl/34osvatKkSQGtGwAAZ5IdO3YoOTnZp/cIqRDiUrf3wjTNJns0nnjiCT300EPVjw8fPqyzzjpLmzZtUqdOnQJWz5ZSUVGhpUuXaujQoYqKirK6Oj4Jp7ZItCeYhVNbJNoTzMKpLZJ04MAB9erVS+3atfP5vUIqhCQmJkpy9ogkJSVVX9+3b1+93pGa7Ha77HZ7veudOnVSXFyc/yvawioqKtS6dWvFxcWF/A94OLVFoj3BLJzaItGeYBZObanJH9MZgm51TFN69OihxMRELVmypPpaeXm5li1bpksvvdTCmgEAAE8FXU/IsWPHtHnz5urHRUVFWrdunTp16qSzzjpLubm5mjx5snr27KmePXtq8uTJat26tcaOHWthrQEAgKeCLoSsXr1aQ4cOrX7smssxbtw4zZ49W48++qhOnjype+65RwcPHtTFF1+szz77zC9jUwAAoOUEXQjJyMhQU1uXGIahiRMnauLEiS1XKQBAWHM4HKqoqAjIe1dUVCgyMlKnTp2Sw+EIyD38yWazKTIyskW2sAi6EAIAQEs6duyYdu7c2eT/APvCNE0lJiZqx44dIbM3VevWrZWUlKTo6OiA3ocQAgA4YzkcDu3cuVOtW7dWQkJCQEJCVVWVjh07prZt2/q8uVegmaap8vJylZSUqKioSD179gxonQkhAIAzVkVFhUzTVEJCgmJiYgJyj6qqKpWXl6tVq1ZBH0IkKSYmRlFRUdq2bVt1vQMl+P82AAAIsFAZJmkpLRWWCCEAAMAShBAAAGAJQggAALAEIQQAgBBzxx13yDCM6q+4uDiNGDFCX3/9tWbPnl3ruYa+CgoKrG6CJEIIAAC+czikggJp3jzn9xbYlGzEiBEqLi5WcXGx/vWvfykyMlKjRo3SzTffXH29uLhYgwcP1l133VXrWrCct8YSXQAAfJGfL+XkSDt3nr6WnCxNmyZlZQXstna7vfp0+cTERD322GMaMmSIjh07Vn1dkqKjo9W6deta14IFPSEAAHgrP1/Kzq4dQCRp1y7n9fz8FqnGsWPHNGfOHKWlpSkuLq5F7ukP9IQAAOANh8PZA9LQdu+mKRmGlJsrjR4dkNsvWrRIbdu2lSQdP35cSUlJWrRoUUhsiOYSOjUFACCYFBbW7wGpyTSlHTuc5QJg6NChWrdundatW6evvvpKw4cP18iRI7Vt27aA3C8Q6AkBAMAbxcX+LeehNm3aKC0trfrxgAED1KFDB73++ut6/vnnA3JPf6MnBAAAbyQl+becjwzDUEREhE6ePNki9/MHekIAAPBGerpzFcyuXQ3PCzEM5/Pp6dLx436/fVlZmfbs2SNJOnjwoF599VUdO3ZMowM0ByUQCCEAAHjDZnMuw83OdgaOmkHEdSBeXp6zXAB8+umnSvqxl6Vdu3Y699xz9be//U0ZGRkBuV8gEEIAAPBWVpY0f37D+4Tk5Tmfr6ry+21nz56t2bNnu1U2WHZHbQghBAAAX2RlSZmZzlUwxcXOOSDp6QHrAQknhBAAAHxls0khNAwSLFgdAwAALEEIAQAAliCEAAAASxBCAACAJQghAADAEoQQAABgCUIIAACwBCEEAABYghACAECIueOOO2QYRvVXXFycRowYoa+//rq6jGmamjlzpi6++GK1bdtWsbGxGjhwoPLy8nTixAkLa38aIQQAAB85qhwq2FqgeevnqWBrgRxVjoDfc8SIESouLlZxcbH+9a9/KTIyUqNGjap+/he/+IVyc3OVmZmppUuXat26dXrmmWe0cOFCffbZZwGvnzvYth0AAB/kb8xXzqc52nnk9AF2ye2TNW3ENGX1yQrYfe12uxITEyVJiYmJeuyxxzRkyBCVlJRo6dKlmjNnjj788ENlZmZWvyY1NVXXXXedjhw5ErB6eYKeEAAAvJS/MV/Z72fXCiCStOvILmW/n638jfktUo9jx45pzpw5SktLU1xcnObMmaPevXvXCiAuhmGoQ4cOLVKv5tATAgCAFxxVDuV8miNTZr3nTJkyZCj301yN7jk6IPdftGiR2rZtK0k6fvy4kpKStGjRIkVEROj7779X7969A3Jff6InBAAALxRuL6zXA1KTKVM7juxQ4fbCgNx/6NChWrdundatW6evvvpKw4cP18iRI7Vt2zaZpinDMAJyX3+iJwQAAC8UHy12r9yxYqmT/+/fpk0bpaWlVT8eMGCAOnTooNdff129evXSxo0b/X9TP6MnBAAALyS1S3KvXFv3yvnKMAxFRETo5MmTGjt2rDZt2qSFCxfWK2eapg4fPtwidWoOIQQAAC+kn5Wu5PbJMtTwsIchQyntU5R+VnpA7l9WVqY9e/Zoz5492rhxo+6//34dO3ZMo0eP1k033aSbb75Zt9xyi1588UWtXr1a27Zt06JFi3TVVVdp6dKlAamTpxiOAQDAC7YIm6aNmKbs97NlyKg1QdUVTPJG5MkWYQvI/T/99FMlJTl7Wdq1a6dzzz1Xf/vb35SRkSFJmjt3rmbOnKlZs2bp+eefV2RkpHr27Knbb79dV199dUDq5ClCCAAAXsrqk6X5N81vcJ+QvBF5yuqTpaqqKr/fd/bs2Zo9e3aTZSIiIjRhwgRNmDDB7/f3F0IIAAA+yOqTpczemSrcXqjio8VKapek9LPSA9YDEk4IIQAA+MgWYVNGaobV1Qg5TEwFAACWIIQAAABLEEIAAIAlCCEAAMAShBAAAGAJQggAALAEIQQAAFiCEAIAACxBCAEAwEcOh1RQIM2b5/zucLTMfffs2aOcnBylpaWpVatW6tKliy6//HLNmDFDF110kQzDaPQrNTW1ZSrZBHZMBQDAB/n5Uk6OtPP00TFKTpamTZOysgJ33y1btuiyyy5TbGysJk+erP79+6uyslKbNm3SrFmzdN9992n48OGSpB07duiiiy7SP//5T/Xt21eSZLNZv608IQQAAC/l50vZ2ZJp1r6+a5fz+vz50vXXB+be99xzjyIjI7V69Wq1adOm+nr//v114403yjRNGYbzNN9Tp05JkuLi4pSYmBiYCnmB4RgAALzgcDh7QOoGEOn0tdzcwAzNlJaW6rPPPtO9995bK4DU5AogwYwQAgCAFwoLaw/B1GWa0o4dznL+tnnzZpmmqd69e9e6Hh8fr7Zt26pt27Z67LHH/H9jPyOEAADgheJi/5bzRt3ejpUrV2rdunXq27evysrKAndjP2FOCAAAXkhK8m85T6SlpckwDH377be1rp999tmSpJiYGP/fNADoCQEAwAvp6c5VMI1NvTAMKSXFWc7f4uLiNGzYML366qs6fvy4/2/QQgghAAB4wWZzLsOV6gcR1+O8PGe5QHjttddUWVmpgQMH6r333tPGjRv13Xff6Z133tG3334bFEtwm8NwDAAAXsrKci7DbWifkLw85/NVVYG59znnnKO1a9dq8uTJeuKJJ7Rz507Z7Xadd955euSRR3TPPfcE5sZ+RAgBAMAHWVlSZqZzFUxxsXMOSHp64HpAakpKStL06dM1ffr0JsulpqbKbGgtscUIIQAA+MhmkzIyrK5F6GFOCAAAsAQhBAAAWIIQAgAALEEIAQAAliCEAAAASxBCAACAJQghAADAEoQQAABgCUIIAACwBCEEAAAfmaZDBw8WaO/eeTp4sECm6WiR++7Zs0c5OTlKS0tTq1at1KVLF11++eWaMWOGTpw4UV1u7dq1GjNmjLp06aJWrVqpV69euuuuu7Rp06YWqWdj2LYdAAAflJTka/PmHJWVnT7Bzm5PVlraNCUkZAXsvlu2bNFll12m2NhYTZ48Wf3791dlZaU2bdqkWbNmqWvXrrruuuu0aNEi3Xjjjbr66qs1Z84cnXPOOdq3b5/+9re/6ZlnntF7770XsDo2hxACAICXSkrytWFDtqTah8OVle3Shg3Z6tt3vuLirg/Ive+55x5FRkZq9erVatOmTfX1/v3768Ybb5Rpmjpx4oTGjx+va665RgsWLKgu06NHD1188cU6dOhQQOrmLoZjAADwgmk6tHlzjuoGkB+flSRt3pwbkKGZ0tJSffbZZ7r33ntrBZCaDMPQP/7xD+3fv1+PPvpog2ViY2P9XjdP0BMCAIAXDh0qrDUEU5+psrIdOny4UBERP/XrvTdv3izTNNW7d+9a1+Pj43Xq1ClJ0r333qu4uDhJ0rnnnuvX+/sLPSEAAHihvLzYr+W8YRhGrccrV67UunXr1LdvX5WVlck0G+qlCR6EEAAAvBAdneTXcp5IS0uTYRj69ttva10/++yzlZaWppiYGElSr169JKleuWBBCAEAwAuxsemy25MlGY2UMGS3p6hDh3S/3zsuLk7Dhg3Tq6++quPHjzdabvjw4YqPj9fvf//7Bp9nYioAACHIMGxKS5vmelT3WUlSWlqeDMMWkPu/9tprqqys1MCBA/Xee+9p48aN+u677/TOO+/o22+/lc1mU5s2bfTGG2/o448/1nXXXad//vOf2rp1q1avXq1HH31UEyZMCEjd3EUIAQDASwkJWerbd77s9m61rtvtyerbd35A9wk555xztHbtWl111VV64okndMEFF2jgwIGaPn26HnnkET333HOSpMzMTK1YsUJRUVEaO3aszj33XN1yyy06fPiwnn/++YDVzx2sjgEAwAcJCVmKj8/UoUOFKi8vVnR0kmJj0wPWA1JTUlKSpk+frunTpzdZbuDAgfrggw8CXh9PhVxPSGVlpZ5++mn16NFDMTExOvvss/W73/1OVVVVVlcNAHCGMgybOnbMUJcut6hjx4wWCSDhIOR6QqZMmaIZM2bo7bffVt++fbV69WqNHz9eHTp0UE5OjtXVAwAAbgq5EPLFF18oMzNT1157rSQpNTVV8+bN0+rVqy2uGQAA8ETIhRDX6YCbNm1Sr1699J///Eeff/658vLyGn1NWVmZysrKqh8fOXJEklRRUaGKiopAVzngXG2gLcGH9gSvcGqLRHt8uY9pmqqqqgrYsL5rwzDXfUJBVVWVTNNURUWFbLbaQ0v+/EwMM9i3U6vDNE09+eSTmjJlimw2mxwOh1544QU98cQTjb5m4sSJmjRpUr3rc+fOVevWrQNZXQBAEIuMjFRiYqJSUlIUHR1tdXWCRllZmXbu3Kk9e/aosrKy1nMnTpzQ2LFjdfjwYbVv396n+4RcCHn33Xf1m9/8Rn/4wx/Ut29frVu3Trm5uZo6darGjRvX4Gsa6glJSUlRcXFx9b76oayiokJLlizRsGHDFBUVZXV1fBJObZFoTzALp7ZItMdblZWVKioqUteuXX3+hdoY0zR19OhRtWvXrt4268GqtLRUJSUlOvvss+v1hJSWliopKckvISTkhmN+85vf6PHHH9fPf/5zSc4ji7dt26YXX3yx0RBit9tlt9vrXY+KigqLf6wu4dSecGqLRHuCWTi1RaI9noqMjFSbNm20f/9+RUdHKyLC/4tGq6qqVF5errKysoC8vz+ZpqkTJ05o//796tixo1q1alWvjD8/j5ALISdOnKj3IdpstpAZZwMABA/DMJSUlKSioiJt27YtIPcwTVMnT55UTExMyPSExMbGKjExMeD3CbkQMnr0aL3wwgs666yz1LdvX61du1ZTp07VnXfeaXXVAAAhKDo6Wj179lR5eXlA3r+iokLLly/XkCFDQqKXKioqqt4QTKCEXAiZPn26nnnmGd1zzz3at2+funbtqrvvvlu//e1vra4aACBERURENDj04A82m02VlZVq1apVSISQlhRyIaRdu3bKy8trckkuAAAIfsE9QwYAAIQtQggAALAEIQQAAFiCEAIAACxBCAEAAJYghAAAAEsQQgAAgCUIIQAAwBKEEAAAYAlCCAAAsAQhBAAAWIIQAgAALEEIAQAAliCEAAAASxBCAACAJQghAADAEoQQAABgCUIIAACwBCEEAABYghACAAAsQQgBAACWIIQAAABLEEIAAIAlCCEAAMAShBAAAGAJQggAALAEIQQAAFiCEAIAACwRaXUFAF+ZpkOHDhWqvLxY0dFJio1Nl2HYrK4WAKAZhBCEtJKSfG3enKOysp3V1+z2ZKWlTVNCQpaFNQMANIfhGIQk03Ro69bfacOGG2sFEEkqK9ulDRuyVVKSb1HtAADuIIQg5JSU5OuLL1K1deuzjZQwJUmbN+fKNB0tVzEAgEcIIQgpJSX52rAhW+XlO5spaaqsbIcOHSpskXoBADxHCEHIME2HNm/Okaunwx3l5cWBqxAAwCeEEISMQ4cK683/aE55+V6GZAAgSBFCEDK86dX44YcH9eWXqV5PUjVNhw4eLNDevfN08GABgQYA/IgluggZ0dFJXr3OtVqmb9/5Hi3bZfkvAAQWPSEIGbGx6bLbkyUZHr7S89Uyrgmw9Zf/7tSGDTdq3775HtYBAFAXIQQhwzBsSkub5nrk4avdXy3jzgTYb775ufbt+5uHdQAA1EQIQUhJSMhS377zFR3dzavXuzOvxL0JsA59881NbIgGAD4ghCAkmab7y3Rrio7u3GwZTybAsiEaAHiPEIKQ4pqrUVGxy6vXu5NdPJkAy4ZoAOA9QghCRlVVuTZtuluebFZWV0XFvmbLnJ4A6x42RAMA7xBCEBKc58Ukq6Jiv0/v404vR+0JsP55TwBAfYQQBL3TQzAlPryLIbs9RbGx6c2WNE2HIiM7qVu3HLnzT8S3egHAmYvNyhDUvDkvpj7nct60tDwZhq3Jkg1tUNacH354WAkJWc2+NwCgNnpCENS8OS+mLrs92a3dUhvboKw5TE4FAO/QE4Kg5s2kz8jIOHXr9oBat+6p6OgkxcamN9tL4WuPC5NTAcBzhBAENW8mfdpsMUpNfcqj4RFfe1yYnAoAnmM4BkHN0+WykvN8F0+HR3zpyYiOTnZrwisAoDZCCIKaYdh0zjl/9Ph1noYKX3oyuna9i0mpAOAFQgiCXlRUvMev8TRUxMamKyoqweP7SFJMTE+vXgcAZzpCCIKep70a7u4HUpNh2NSz52sevcbFnfNoAAD1EUIQ9Dzt1XBnP5CGdO6crZSU33j8Oi/P0gOAMx4hBEHPk6GS1NRJze4H0pRzzvm9zjvvfdlsHdx+TUXFHq/vBwBnMkIIgpJpOnTwYIH27p2nQ4cKlZY2vdnX2O3J6t79KZ/v3bnzGPXs+Se3y2/enKuSknyf7wsAZxr2CUFQWrWqvyoqNlc/ttuTFReXqdLShY28wlBa2jS/rVKx27u5XbaiYr82bMh2a1dWAMBp9IQgqOzf/3dJUnn5rlrXy8p2qbT0IyUnP1xvtYzdnuL3AOD5/iSmvvvu1zJNh9/qAADhjp4QBA3TdGjLlsckvdzQs5IMlZS8r8GDd+nw4RUqLy92e1t2TxmGTWlp07RhQ7bc3cq9srJU27a9oNTU3/q1LgAQrugJQdA4dKiwXg9IbabKynbo8OEV6tgxQ1263KKOHTMCtlFYQkKW+vad71GPyM6d0+gNAQA3EUIQNNzdD6QlD4tLSMjSJZdsdXvX1srKA5yoCwBuIoQgaLi7H0hLHxZnGDYlJ98vm62jW+U5URcA3MOcEASN2Nh0RUc3tSrFkN1uzWFx+/cvlOTeMAsn6gKAe+gJQdAwDJvOPnuK61HdZyV5vxuqL0pK8rVhQ7YcjiPNlrUqJAFAKCKEIKjEx4+WJEVHd6113W5PtmQfDtN0aPPmHLm7QsbhOPljrwkAoDkMxyAoDRq0XsePfxnQZbjuOHSoUGVlO90uX1l5gI3LAMBNhBAEDdN06NChzyVJhw9/ofj4IZYEj5o8n2Tq3M9k8+ZcxcdnBqJKABA2GI5BUCgpydcXX3TX//3ftZKk//u/a/XFF90tP5PFu0mmzv1MWKoLAE0jhMByzomfN9bbqKy8fJc2bLjR0iByevv2uhNlm8dSXQBoGiEEljJNh7777tdNlrHyTBbX9u0/PvLotSdPfu//CgFAGCGEwFIHDxaosrK0yTKVlaU6eLCgZSrUgNPbt7t/sq4kbd36bPWBfACA+gghsNTu3X92q9yhQwWBrUgzXNu3X3DBUvXpM1epqZPceJWhLVseD3jdACBUsToGljFNhw4e/MzqarjNMGzq2DGj+rFpStu2PdvEK0yVl7u/vBcAzjT0hMAyhw4VyuE46lbZmr/8g0Xr1j2trgIAhDRCCCzj7uoRm62tYmMzAlsZL3BGDAD4hhACy7j7Szw5+TeWb1rWEOeBe8lulbVqdQ8ABDNCCCzjzh4ckZFxSk19quUq5QHDsCkp6S63yh4+/EWAawMAoYcQAsu4swdH794zg7IXxMXdeSHl5XsCXBMACD2EEFgqPj5TqakTFRnZsdb16Ohk9e37QdAfAufukFJ0dGKAawIAoYclurBMSUm+Nm/OqXVKrc3mDCODBn2t6OhWVlXNba4hpeZO2q2oaHpDNgA4E9ETAks4z4vJrvfL2+E4KEkqLV1sRbU8Zhg2nXPO1GbLFRU9yeRUAKiDEIIWZ5oObd6cI+ex9w37/vsJIfNLOyoqodky5eU7OVUXAOoIyRCya9cu3XbbbYqLi1Pr1q114YUXas2aNVZXC246dKiw2eELh+OYvvnm1haqkW/c3e9k//6FAa4JAISWkAshBw8e1GWXXaaoqCh98skn+uabb/TKK68oNjbW6qrBTe7+0i4peV9VVeUBro3voqM7u1Vu3745IdO7AwAtIeQmpk6ZMkUpKSl66623qq+lpqZaVyF4zP2dRk3t2vWaUlJyA1kdn5mNjyrVUlFRokOHCoNyC3oAsELIhZCPPvpIV199tcaMGaNly5apW7duuueee3TXXY1vGlVWVqaysrLqx0eOHJEkVVRUqKKiIuB1DjRXG0KlLW3aXCLDSFBV1bF6z5lmTK3vx45tDfp2nTy5r7q+ddVtz4kTxWrbNrjb05RQ+1lrSji1RaI9wSyc2iL5tx2Gabr7/3HBoVUr57LNhx56SGPGjNHKlSuVm5ur//mf/9Htt9/e4GsmTpyoSZPqH70+d+5ctW7dOqD1BQAgnJw4cUJjx47V4cOH1b59e5/eK+RCSHR0tAYOHKgVK1ZUX3vggQe0atUqffFFw1tjN9QTkpKSouLiYsXFxQW8zoFWUVGhJUuWaNiwYYqKirK6Om45eHCpNmy4vt5104zR0aOz1K7dnTKMk+rb90N17Di05SvoAdN0aOXKfqqo2N3Ac6fbY7d30qBB64N6B9jmhOLPWmPCqS0S7Qlm4dQWSSotLVVSUpJfQkjIDcckJSXpvPPOq3WtT58++uCDDxp9jd1ul91ur3c9KioqLH4gXEKpPaZZKsM42ejzhnFShnFSplkaAm2KUu/ev9eGDTc2WsIwTqpXrykhsQGbO0LpZ6054dQWifYEs3Bpiz/bEHKrYy677DJ99913ta5t2rRJ3bt3t6hG8Ib72527O4nVWgkJWerb9wNFRjbcs3buue8E/Rb0ANDSQq4n5MEHH9Sll16qyZMn66abbtLKlSs1c+ZMzZw50+qqwQOntzvfpYY3LTNkt6coNja9pavWIIdDKiyUioulpCQpPV2y1RlVSUjIUnx8pg4eLNChQ/9Pp07tUGRkdx05IsXFXWNNxQEgiIVcT8igQYO0YMECzZs3T/369dNzzz2nvLw83XpraGxsBSd3TtBNS8sLivkT+flSaqo0dKg0dqzze2qq83pdhmGTw3FYe/f+Rfv2/VW7dr0iSVq1qr9KShp4AQCcwUIuhEjSqFGjtH79ep06dUobN25scnkugpdzCGO+7PZu9Z4799y/BsXwRX6+lJ0t7ayzweuuXc7rdYNIY2filJfv1oYN2QQRAKghJEMIwkdCQpYuuWSrLrhgqfr0mat+/T6WJMXHj7a4Zs4hmJychjcjc13LzXWWc15r6kwc57XNm3PZNRUAfkQIgeUMw6aOHTPUpcstio293OrqVCssrN8DUpNpSjt2OMtJ7pyJY6qsbAcH2QHAjwghQCOK3Tviprqcu2fiuFsOAMIdIQRoRJKbq4Nd5cJt2TEABBohBGhEerqUnCwZDS/ekWFIKSnOctLpZceNrfYJtmXHAGA1r0PIgQMHqg+Ca8z27du1fPlyb28BWMpmk6b9uIq4bhBxPc7LO71fSNPLjp2Pg2XZMQAEA49DyP/+7/+qf//+SkhIUMeOHTV48GAVFjY80e6tt97S0KHBfe4H0JSsLGn+fKlbnVXEycnO61l1VhE3tuw4Orqb+vadHxTLjgEgWHi0Y+p3332n4cOH6+TJk+rVq5eioqL01Vdf6Wc/+5mef/55PfbYY4GqJ2CZrCwpM7P5HVNdXDunHjpUqBMnirV6tTRo0Ndhc24MAPiLRyFk8uTJOnnypN59913ddNNNkqSVK1dq3LhxevLJJ3Xs2DE999xzAakoYCWbTcrIcL+8a9lx27YVkhYzBAMADfBoOGbp0qW65pprqgOIJF100UX66quvlJGRocmTJ+vJJ5/0eyUBAED48SiE7N27V/379693vX379lq8eLGGDx+uKVOm6PHHH/dbBQEAQHjyaDgmPj6+0RUxdrtdCxcu1HXXXac//OEPqqqqUps2bfxSSQAAEH48CiFpaWn6/PPPG30+OjpaCxcuVGZmpl555RUlJib6XEEAABCePBqOufrqq/V///d/Wr9+faNlXD0iV111lYrd3fcaAACccTzqCbnpppu0fv16rV27tsG5IS52u10fffSR7r77bm3bts3nSgIAgPDj8XDMvHnz3Cprt9s1e/Zsb+oEAADOAC1+dsykSZMUGelR9gEAAGHIkgPsTNO04rYAACCIcIouAACwBCEEAABYghACAAAsQQgBAACWIIQAAABLEEIAAIAlCCEAAMASLR5CTNNknxAAAOBdCNm2bZvy8/OVn5+v7du3e/TaBx98UEVFRd7cFgAAhBGP90/PycnRn/70p+reDMMw9MADD2jq1Kluvb5Dhw7q0KGDp7cFQpppOnTw4P+qvLxY0dFJio1Nl2HYrK4WAFjKoxDy9ttva/r06YqJidEVV1whSVq2bJmmTZumn/70p7rtttsCUkkgGDgcUmGhVFwsJSVJ6emSzc0csWpVf1VUbK5+bLcnKy1tmhISsgJUWwAIfh4Nx8yaNUsxMTFauXKlFi9erMWLF+vLL7+U3W7XG2+8Eag6ApbLz5dSU6WhQ6WxY53fk5Kk+fObft3+/X+XJJWX76p1vaxslzZsyFZJSX6AagwAwc+jELJ+/XplZWWpb9++1df69++vG264QV9//bXfKwcEg/x8KTtb2rmz9vWSEmnMGOnRRxt+nWk6tGXLY428q3M4c/PmXJmmw3+VBYAQ4lEIOXz4sM4+++x618855xwdOXLEb5UCgoXDIeXkSE0t6PrDH6S//a3+9UOHCuv1gNRmqqxshw4dKvS5ngAQijwKIaZpytbAILjNZmPZLcJSYWH9HpCG3HuvM7DUVF5e7NY93C0HAOHG49Uxx48f1759+2pdO3bsmCSppKSkwTDSuXNnL6sHWKvYzXxQUuIMLBkZp69FRye59Vp3ywFAuPE4hLz88st6+eWX6103TVOJiYn1rhuGocrKSu9qB1gsyYN8UDewxMamKzq6WxOvMGS3Jys2Nt2rugFAqPMohAwZMkSGYQSqLkDQSU+XEhKcPR3NqRtYDMOms8+eov37Januvxvn47S0PPYLAXDG8iiEFBQUBKgaQHCy2aTXXnOugmlKSoozsNQVHz9a0mJFR3ettU9IVFS8evZ8jX1CAJzRAn52TIk7/wsJBLHsbOk3v2n8ecOQ8vKa3risR4/JioqKr35cUVGiH354kH1CAJzRAhJCTNPU4sWLdeONNyolJSUQtwBa1O9/L73/vhQfX/t6Sopzw7KsZjo0vvvuDlVU7K91jQ3LAJzpPJ6Y2pQtW7Zo1qxZevvtt7V7926ZpqkuXbr48xaAZcaMcYaNggLnl+RcDVNzRUxdpzcia2gJuynJ0ObNuYqPz2RuCIAzjs8h5NSpU5o/f75mzZqlZcuWOd80MlLXX3+9xo8fr5EjR/pcSSBYLFzo3LzMtXfI889LycnStGkN94YcPvxFM+94esOyjh0z/FxboGU4qhwq3F6o4qPFSmqXpPSz0mWLIFSjeV6HkDVr1ujNN9/UvHnzdOTIEZmmqYEDB2r16tUaN26cZs6c6c96ApbLz5duvLH+9Z07ndc/+KB+ECkv3yOpdbPvzYZlCFX5G/OV82mOdh45vatfcvtkTRsxTVl9mHiNpnk0J+TgwYOaPn26LrzwQl100UWaMWOG2rVrp0cffVTffPONVq5cGah6ApZyOKRf/7rpMr/+df1dU6Oj6++d0xA2LEMoyt+Yr+z3s2sFEEnadWSXst/PVv5G5juhaR71hHTt2lXl5eVq3bq1br31Vt1+++268sor2TsEYa+gQCotbbpMaamz3JVXnr7WocNgSf9Q/X1CXNiwDKHJUeVQzqc5MhuY72TKlCFDuZ/mKrN3JkMzaJRHPSFlZWUyDEPjxo3T448/rquuuooAgjOCu1vk1C1Xe7IpG5YhfBRuL6zXA1KTKVM7juxQwdaClqsUQo5HIeTpp59WcnKyXnvtNfXv31+DBg3Sf//3f9c7SwZAbeee+1fZ7bW3cLfbk9W373w2LENIKj7q3jymm+bfxLAMGuVRCPnd736noqIiffLJJ7rxxhu1fv165ebmKjk5WaNGjdK7774bqHoClmpqGa475eLjR+uSS7bqgguWqk+fubrggqW65JIiAghCVlI79+YxHTh5gPkhaJTHm5UZhqGrr75a77//vnbv3q2pU6fq3HPP1eLFi3XrrbfKMAytWbNGhYWFgagvYImMDCkurukycXFNhxXDsKljxwx16XKLOnbMYAgGIe3S5EvV3t7e7fK5n+bKUeVoviDOKD7tmNqpUyfl5ubq66+/1ldffaW77rpL7dq109q1a5WRkaGePXvqxRdf9FddAcvYbFJzq85nzmx663YgXORvzFePaT10pOyIW+WZH4LG+G3b9kGDBmnGjBkqLi7W7Nmzdfnll+uHH37Q008/7a9bAJbKynLuBdKpU/3nmuslqck0HTp4sEB7987TwYMFNXZVBYJf/sZ83fj+jdp9bLfHr2V+COry+9kxMTExuv3227Vs2TJt2rRJjz32mL9vAVjqwIGGr2VnOzc0a0pJSb6+/DJV//nPUG3cOFb/+c9QffllKufHICQ4qhz69d+b2TCnCcwPQV0BPUU3LS1NkydPDuQtgBbjcDi3bG+I+eNWCbm59TcscykpydeGDdkqK6u9rJGD7BAqCrYWqPRkMxvmNMOUqQmLJqi8stxPtUIo82izMm93RL3ooou8eh0QTAoLT58Z0xDTlHbscJarO0HVNB3avDlHjR9kJw6yQ9Dz15yOkhMlSv5jsmaMmlFva/fqc2gOF6u1WstR5VCUovxyXwQfj0LIJZdc4tXmZI7G/tcQCCHFbh7v0lC5w4e/qNcDUhcH2eFMUnKiRNnvZ2v+TfOrg0jNc2hiImI07/x56v/n/ppy9RTOoQlTHh9gFxkZqWHDhikhISEQ9QGCVpKbx7s0VM55kF3z9u9fSAhBUHJUORTbKtav72nKVM4nOcrsnamF3y3Uje/XPyFy99Hd9cIKwodHIeTCCy/UunXrtGTJEl177bW68847dc011ygiIqBTS4CgkJ4uJSdLu3adngNSk2E4n09v4BgYdw+y27dvjtLSXmZIBkGloZNy/WXn0Z16bvlzenXlqw0+7zqbhnNowpNH6eHf//631q1bp7vvvluFhYXKzMxUcnKynnjiCW3atClQdQSCgs0mTZvm/HPdUUnX47y8hvcK6dBhsKKi4pu9R0VFiQ4dYqM/BI/GTsr1p0nLJjU54dW1z0jhdv5thBuPuzDOP/98/fd//7d2796tefPmqX///vrDH/6gPn366LLLLtOsWbN07NixQNQVsFxWljR/vtSt9jEwSk52Xs9qpLfYMGzq0uU2t+5RXu7m5BMgwJo6KdcK7p5Xg9Dh9ThKVFSUbrrpJv3jH/9QUVGRJk6cqL179+quu+5S165dtWLFCn/WEwgaWVnS1q3S0qXS3LnO70VFjQcQl7i4TLfePzrazcknQIAVbC0IaA+Ip9w9rwahw+OJqQ1JSUnR448/rl69eumRRx7R7t27tX//fn+8NRCUbDb3D7VziY1Nl92erLKyXWp4qa4huz1ZsbENTCoBWlj+xnz96qNfWV2Nap1iOin9LP5thBufQ8h//vMfzZo1S3PnztWBAwfUuXNnPfTQQxo8eLA/6geEDcOwKS1tmjZsyJZkqHYQcU4qSUvLY1IqLFG9P8fRYn1/4HtNLJgYNMMwkpRzcQ6TUsOQVyHk4MGDmjNnjt566y2tW7dONptN11xzjcaPH69Ro0bJxileQIMSErLUt+98bd6cU2vfELs9WWlpeUpIYAkiWl4gV7/4Q1xMnJ5Kf8rqaiAAPAohn332mWbNmqWFCxeqrKxMffr00ZQpU3T77berc+fOgaojEFYSErIUH5+pQ4cKVV5erOjoJMXGptMDAku4Vr8EU69HXQ9c/AC9IGHKoxAyYsQIRUVFaeTIkRo/fnytIZd9+/Y1+joCClCbYdjYlAyWclQ59K8t/9IdH97hUwBJbpes2dfP1r7j+/T9ge/1bMGzMmQ0+J6jeo7Sv4r+pZOVJz26R89OPb2uH4Kbx8MxlZWV+vvf/66///3vbpU3DEOVlZUeVwwA4B8153sktUvS/uP7NeHjCT4fRmfI0LSR03Tl2VdWX+vXuV+9oR2bYZPDdGjR94u8us/3B773qZ4IXh6FkCFDhnh1dgwAwBqBmu/RKaaTXh/9er2t1LP6ZCmzd6YKtxdq4bcLlfdVnhymb+eHvb7mdT2V/hRDMmHIoxBSUFAQoGoAAPwtkPM93s9+v1YPSE22CJvSz0rXLxb8wi/32nl0pwq3FyojNcMv74fgwaEvABCGArnbaUr7lGYDQeH2Qr/2vrBbanjyqCfkzjvvbPL5iIgIdejQQeeff75uuOEGtW/f3qfKAQC84+8QUNMrw19pdmjE36GB3VLDk0chZPbs2W6VMwxDubm5evPNN5XV3F7WAAC/C2TPQUKbhGbL+DM0pLRPYbfUMOVRCFm6dGmTz1dVVWn//v1asWKF3nzzTY0dO1ZfffWVLrjgAp8qCQDwTCBXlLgTcNLPSlenmE46cPKAz/fLG5HHpNQw5VEIueKKK9wqN2bMGN15550aNGiQXnnlFf3lL3/xqnIAAM/lb8zXswXPBuz93enlsEXYlHNxjs/1+Mv1f6m3AgfhI2ATU/v376/rrrtOy5cvD9QtAAB1uCakBoonQyNPpT+luJg4n+6Xea57p08jNAV0dUyvXr20Z8+eQN4CAFDDFzu/COgZMO5MSnWxRdg0c/RMj++R0j5F79zwjsevQ+gJaAg5deqUoqOjA3kLAEANe44F9n/83JmUWlNWnyy9n/2+bM2cjZTQOkHv3PCOlo5bqqKcIo3uPdqXaiJEeHWKrruWLVumtLS0QN4CCH0Oh1RYKBUXS0lJUnq6xEnU8FJi28SAvr83q27G9B0jQ4bGzB9T7zlDzl24Z4yaUWvuR5WjyvtKImQEpCekqqpKkyZN0r///W9df/31gbgFELIcDqmgQJo3Tyr43XI5up8tDR0qjR3r/J6aKuXnW11NhKjByYOV0Nqz3gpPeLv0Nrtvtj646QMlt0+udT25fbLm3zSfyadnKL9uVlZVVaXS0lKtWrVKJSUl6tmzpx588EGfKgiEk/x8KSdH2lk9ZD9Eyfpc05SjLC1wXtq1S8rOlubPl9hnBx6yRdh0a/9blfdVnl/f15Ch5PbJPu3XUfNcGddheulnpbP89gwWkM3KoqOjdeutt+qVV15Ru3btvKkXEJLqjqxccsnp5/LzndnCrLOL9i51U7bma76ynUHENCXDkHJzpcxMhmbgscxzM90OIYaMZrd2dw2Z+GO/DluEjTNgUM2vm5W5tm3v3bu37Ha7TxUDQk39Xg4pLU16+WVnOMnJqR9AJMlUhAxVKVd5ytRC2VTlLLhjhzPRZGS0WBsQHtLPSldy++RGV8m4ejWmDp+qBz97sFY515La0pOl1deS2ycrb0QeQybwu4BsVgacaRrr5di92/n95Zdrh5O6TEVoh87SRD2rK/X/lK5CZxgp5tAueM4WYdO0EdOU/X62JNXq6ajZq5HVJ0s39Lmh3vCIJIZM0CJC/hTdF198sfqsGsAKTfZy/Hhtxgz33ut5/VZDVaBUbVW+bpC+D9zW2whvWX2yNP+m+erWvlut63UngrqGR27pf4syUjNki7A1eA0IhIAu0Q20VatWaebMmTr//POtrgrOYIWFTfdySNIBD4/PqJ4n8t93K+spB/NC4BUmgiLYhWxPyLFjx3Trrbfq9ddfV8eOHa2uDs5ggRgxMX/8p5lb+owcBYX+vwHOGPRqIJiFbE/Ivffeq2uvvVZXXXWVnn/++SbLlpWVqaysrPrxkSNHJEkVFRWqqKgIaD1bgqsNtMUaiYlSTEzDz8XEVNT67qn9StLy5Zt0+ZDg+PsIxc+nMeHUFon2BLNwaovk33YYptnQSHZwe/fdd/XCCy9o1apVatWqlTIyMnThhRcqLy+vwfITJ07UpEmT6l2fO3euWrduHeDaAgAQPk6cOKGxY8fq8OHDat++vU/vFXIhZMeOHRo4cKA+++wzXXDBBZLUbAhpqCckJSVFxcXFiovz7YTHYFBRUaElS5Zo2LBhioqKsro6PgnFtnz+uXTttQ0/FxNToVmzlujOO4fp5Env2vPxRw5dfkVwdKGH4ufTmHBqi0R7glk4tUWSSktLlZSU5JcQEnLDMWvWrNG+ffs0YMCA6msOh0PLly/Xq6++qrKyMtnqTOKz2+0N7lsSFRUVFj8QLuHUnlBqy5490smTTZc5eTLKixBSpZS4UxoytHXQzUsNpc+nOeHUFon2BLNwaYs/2xByIeTKK6/U+vXra10bP368zj33XD322GP1AggQaEneHaXhBkN5M4MvgACAv4RcCGnXrp369etX61qbNm0UFxdX7zrQEtLTpeRk55Ev/hrctNlMzZtncHQMgLAWskt0gWBhs0nTpjn/bBievrpuanE+fvddQ2Pqn3oOAGEl5HpCGlJQUGB1FRCs6p4ol54ekI2/srKch97WPTvGUym23cp7N1FZ2YzBAAh/9IQgfOXnS6mp0tCh0tixzu+pqc7rAZCVJW3dKi1dKt13n3uvyVGelipDc3WLlipDRY6zlBXP5mQAzgxh0RMC1NPYiXK7djmvz5+vQEy4sNlOH3r76qvNl79eC5WhZbUvcmgdgDMEPSEIP+6cKJeb6yznz3sWFEjz5kkFBUq/1KHk5MbniBiqUoq2K10N9HoEbrkNAAQVekIQHmrO/di7t+mJGaYp7djhLO/qtvBFfn69ySC25GRNu+Vv+sWfBtQrbqhKkpSnXNl+/LPzCcO5zCY93fc6AUAIIIQg9DUQAtzij2GPJoZ9sl6+VHrs83ovSdZO5elBZWnB6YuuLpO8PE7MBXDGYDgGoc0VArxZkuLrsIcbwz6jP7hDkvTxx9Lcuc5Jq0Xvr1ZW8sra5ZOTAzZPBQCCFT0hCF1NhYDmpKT4PuxRWNj8sM+Pz19+uXR6p+MsKSuzRZYOA0AwI4QgdDUXApryyiu+/9L3ZDjn88+dh8zUDBz+mI8CACGMEILQ5cucjoQE3+/vyXDOtdeePuUuOdm5xSpDLwDOcMwJQejyZU6HPyalug6N8XSvdtdeJQHaNA0AQgUhBKErPV3q1Mm71/pjLw7XoTGezkkJ1F4lABBiCCEIXTabc2KqJwzDP5NSXTIzpbg4z19Xc68SADhDEUIQ2p56yv0QEIi9OAoLpdJS71/PFu0AzmCEEASnzz+v3gK9ySELm02aOdO9eRkN7cVRZ7t1j4dHfA0RbNEO4AzG6hgEl7//3RksPFlNkpXlDBd1d01NTpbuukvq2bPhvTga2mnV05UrvoQIfw4LAUAIoicEwSM/X/rFL+pfd2c1SVaWtHWrc0tS19akW7c6h2uSkpw9FoWFp3s6Gttp1dOVK96ukJH8s1cJAIQwekIQHJrbAt0wpAkTnL0j3bo1vMNo3Q3AGuvp+OMfpQcfbPpeubnOSafNhQTXCpnsbOfrPFkp44+9SgAghNETguDgzhboJSXSbbdJQ4dKqalN91Y01dMxZoz7p+y6wzUc1K2be+VdmJQK4AxHCEFw8PQXclPDJuXl0t13N3mwnN/rVHM46Omn3XsNk1IBnOEIIQgOnv5CbmzDr/x855DL/v2+1+n77z0r7xoOmjix6Xki/t6rBABCFCEEwcGbCZ51h01cQzAlJf6p08SJ3m2t7ponItVvTyD2KgGAEEUIQXDwdgt0yTls0tTEVl94u7W6a55I1661rze0VwkAnKEIIQgeWVnSk096/rqkpOYnttbkGg559tmmy/m6tXpWlrR+vfPPb77pnC9SVEQAAYAfsUQXgedwOH+RFxc3vGlYTeec4/n7L1okDRjgfnnTdA6HlJW5V96XVSyudmZnS1FR3r8PAIQhekIQWPn5zuW0Q4dKY8c6v3fuLP3udw0Pc/zwg+f3eOUVaeFC98vHxTn3AHF3MiyrWAAgIAghCJzG9uo4cMA5FNKlS+2Jn/n50uTJ3t2rofkXjSktdfbMNDcZllUsABBQhBAEhjsTRUtLpRtvdIYPV3lf7jd8uPvli4tZxQIAFiOEwO8cDqlg+nrN23m5CnSFHM39mN12m3T77e5PLG3MoUPOnhd3uIZYGtvtlFUsABBwTEyFX50+ruVCSfMkScnaoWnKUZYWNPyikyedh8756sMPmy9jGM6AUXOIJSvLOUfE3cmzAAC/IITAb1xTQEzTlHR6eGOXuilb8zVf2Y0HkZbQ1BBL3cPvAAABx3AM/KL2FJDa8yvMH3/McpXX/NBMILXkEIvDIRUUOO/negwAqIUQAr9o9hBcRWiHzlKhLFhp8vTTLbtRWM1lyb/8pfNa//7ebQEPAGGM4Rj4hbv7eRXLhz03UlKkl1+Wdu927idy6JD0zjvNv+6881puqOX0mFTt67t3O68z2RUAqhFC4Bdu7/slD3YfffJJKSHB+dWtW/3JogUF7oWQltpszOGQ44EHVWgOUbGSlKRiXaLVzudqnvqbmcmkVwAQIQR+4tr3a9euhrcGMVSlZO1Uutw8h6VbN+euqk39sm72pg2shAmg/Bc2KmfX59qplOpradqql/Uf54OaZ9EwCRYAmBMC/2hy3y9VSZLylCvbj39u1pQpzfcWBNFmY/n5UvazfbVTtfcb2f3j8NPfNfr0RV/OogGAMEIIgd80tu9Xt4Ryzc/5XFkvXyZ17Nj0m0T8+CM5enTT5Zq7aQuuhKleGSSp7j8p18qgx/XS6ZVBnEUDAJIYjkEA1B0ZMaNbSUOGSFlDpB49Tu9q2tAQyuzZnt/Q4s3GTq8MauQMGkk7laxCDVFGyg+cRQMAP6InBH7jWhiya1ft666FIfn5arznIiVF+uADZ5jwhmuzsVtucX5vwYmfHq0M4iwaAKhGTwj8oqnz6kzTOUWjemFIUz0XFRUtXndfub0yaNIEZ28QAEASIQR+0uxmZXUXhoTRNunp6VJcnPNQ4MYkdzOV/hQBBABqYjgGfuH2kEQYLgxZuLDpACJJL00xGIUBgDoIIfALt4ckwmxhiGsYqjnXXBP4ugBAqCGEwC9c+4bV3a7DxTCcc0/DbWFIc8NQLl98Efi6AECoIYTAL4Jo37AWtXChe+X27AlsPQAgFBFC4DeNrb5t00a64w5p1ChLqlWLw+E8cmbePOd3h8O395ozx72yiT+s8P5GABCmCCHwq6wsaetW6eabT/eAHDsmvfWW1Lq19Oij1tUtP19KTZWGDpXGjnV+T039cf8SLxQWSiUl7pUdPHmU9zcCgDBFCIHfPfGE9N579fcMcTikP/zBmiDi2kit7vyNXbtqbKTmIU9W+tiMKudGKb50vQBAmCGEwK/Ky6WpU5suM3Wqs5wvPBlWaW4jNcm7fODRSp+aG6UAACQRQuBnr73W/C9zh0P65S8bDg+ux/PnNx4uPB1W8WQjNU+kp9ef/1KToSolq86Nw3GjFADwEiEEfvXDD+6Ve+ed+uEhP1/q39/551/+suFw4c2wSqA2Ulu4UDp1quHnDFVJkl7S47WfCLeNUgDAB4QQ+NU553hW3hUeHn204cPvaoYLd4ZVJkxwrlip2YsSiI3UXGGosZ1SO6lU85Wt0fq780K4bpQCAD4ghMCv7rnHs71AXOFh6tTm52wUFDQ/rFJSIt12W+1elEsvbb5ONpuznDuaCkNOVYrRSWWqziYi4bhRCgD4gBACv4qOdvYQeMI0m55H4pqzUVDg2fu6elEmT3ZvnsoKN7fyaH6X1Ajt1FkqVI1ej7/+1bl+GQBQjRACv8vMDMz7fvutZ+VN0/n13HPulff33JHi+yZLH3/sfDB6tHsvAoAzCCEEfheouZee9oS4VFW5V87fc0eSbrxUuvxy9woDwBmIEAK/S0+XEhL8+54dOkj79/v3PV08nTPq1mF9yabSHQXOtcYSm5QBQAMIIfA7m0269Vb/vufgwf59v7o8mTPa7GF9pqm8k7+W7aqhzrXGknPtMdu2A0AthBAEhL/nhVx9tX/fz6VTJ2dnhadzRhs7rC+50wnN143KKn2j9hO7d3u/PzwAhClCCALCNWThK9dQyT33ND0E4q0nn/R+0YrrsL6lS6W5c6Wl/3SoyExVlhbUL+zL/vAAEKYIIQgI15BFc6HBMKS4uNN/rvuc5BwqiY5ufAjEF4mJvr3eZpMyMqRbbpEy/vcF2Q40cawu58cAQC2EEASMa8jCFTLqcoWJmTOlDz5oYGgjufZQSVaW9P77Uny8/+rY1NkvHnE4Tqek5nB+DABIIoQgwLKypL17pUmTnPMvaqoZMlxDG65tNT7+WCoqqj1Ukp8vPfigc1dUf/DrLuqFhdKBA+6V5fwYAJAkRVpdAYQ/m0367W+lp55y/q4uLnb+Hk5Pr70ixWZzbquxeLHze83nXGe1NL5VumcMw8+7qLvbu9GpE+fHAMCPCCFoMa75E55yOKQHHvAsgLiGeh55RJo3r/Y26ykpzgDi113U3e3dyMnh/BgA+BEhBEHvhRfqn67bnOTk00HjxReb7oHxC3d2UouLc3YHAQAkEUIQ5PLzpWefda/s009L551XP2h42wPjNofDOVmlOX/+M70gAFADIQRBy+Fwjl6468orAxw2GtP8sbpO/t7LHgBCHKtjELTc/d0u+Xmli6fcnZS6cGFg6wEAIYYQgqDlyTwQv6508ZS7k1LnzGG3VACogRCCoPThh9K997pXdtIkP6908ZS7x/uWlLBbKgDUwJwQBKVx46STJ5svl5xs8YITh0OaMMH98uyWCgDV6AlBUPFk2oRhOHdKt3TBSUGBVFrqfnl2SwWAaoQQBA2HQ3roIffKRkRI771n8TCM5Awh7rJ09iwABB9CCIJGYaH70yuqqkJwxauls2cBIPgQQhA0PN0VNSimV7i7McnjjwdBtw0ABBdCCIKGp6fjBsX0iowM53bszXn00YBXBQBCDSEEQcOT4ZWgmV5hs0kzZ7pXDgBQCyEEQaNbN/fLBtX0iqws6YMPnOuFa0pOlt55x5o6AUAIYJ8QBI309OaDiM0mzZsXhNMrsrKkzMz6x/VWVUmLF1tdOwAISoQQBA2bTZoyxflnw2i4zLvvStnZLVcnjzR0XG9VlSVVAYBQwHAMgsro0c7vXbvWvp6S4hzxCNoAAgDwWMiFkBdffFGDBg1Su3bt1LlzZ11//fX67rvvrK4W/Gz9emnpUmnuXOf3oqIgHIIBAPgk5IZjli1bpnvvvVeDBg1SZWWlnnrqKQ0fPlzffPON2rRpY3X14CcNjWwAAMJLyIWQTz/9tNbjt956S507d9aaNWs0ZMiQBl9TVlamsrKy6sdHjhyRJFVUVKiioiJwlW0hrjbQluBDe4JXOLVFoj3BLJzaIvm3HYZpmqbf3s0CmzdvVs+ePbV+/Xr169evwTITJ07UpEmT6l2fO3euWrduHegqAgAQNk6cOKGxY8fq8OHDat++vU/vFdIhxDRNZWZm6uDBgyosLGy0XEM9ISkpKSouLlacO7tdBrmKigotWbJEw4YNU1RUlNXV8Uk4tUWiPcEsnNoi0Z5gFk5tkaTS0lIlJSX5JYSE3HBMTffdd5++/vprff75502Ws9vtstvt9a5HRUWFxQ+ESzi1J5zaItGeYBZObZFoTzALl7b4sw0hG0Luv/9+ffTRR1q+fLmS6+5UCQAAgl7IhRDTNHX//fdrwYIFKigoUI8ePayuEgAA8ELIhZB7771Xc+fO1cKFC9WuXTvt2bNHktShQwfFxMRYXDsAAOCukNus7M9//rMOHz6sjIwMJSUlVX+99957VlcNAAB4IOR6QkJ4MQ8AAKgh5HpCAABAeCCEAAAASxBCAACAJQghAADAEoQQAABgCUIIAACwBCEEAABYghACAAAsQQgBAACWIIQAAABLEEIAAIAlCCEAAMAShBAAAGAJQggAALAEIQQAAFiCEAIAACxBCAEAAJYghAAAAEsQQgAAgCUIIQAAwBKEEAAAYAlCCAAAsAQhBAAAWIIQAgAALEEIAQAAliCEAAAASxBCAACAJQghAADAEoQQAABgCUIIAACwBCEEAABYghACAAAsQQgBAACWIIQAAABLEEIAAIAlCCEAAMAShBAAAGAJQggAALAEIQQAAFiCEAIAACxBCAEAAJYghAAAAEsQQgAAgCUIIQAAwBKEEAAAYAlCCAAAsAQhBAAAWIIQAgAALEEIAQAAliCEAAAASxBCAACAJQghAADAEoQQAABgCUIIAACwBCEEAABYghACAAAsQQgBAACWIIQAAABLEEIAAIAlCCEAAMAShBAAAGAJQggAALAEIQQAAFiCEAIAACxBCAEAAJYghAAAAEsQQgAAgCUIIQAAwBKEEAAAYAlCCAAAsAQhBAAAWIIQAgAALEEIAQAAliCEAAAASxBCAACAJQghAADAEoQQAABgCUIIAACwBCEEAABYghACAAAsQQgBAACWCNkQ8tprr6lHjx5q1aqVBgwYoMLCQqurBAAAPBCSIeS9995Tbm6unnrqKa1du1bp6ekaOXKktm/fbnXVAACAm0IyhEydOlW//OUv9atf/Up9+vRRXl6eUlJS9Oc//9nqqgEAADdFWl0BT5WXl2vNmjV6/PHHa10fPny4VqxY0eBrysrKVFZWVv348OHDkqQDBw4ErqItqKKiQidOnFBpaamioqKsro5PwqktEu0JZuHUFon2BLNwaot0+nenaZo+v1fIhZD9+/fL4XCoS5cuta536dJFe/bsafA1L774oiZNmlTveq9evQJSRwAAwl1paak6dOjg03uEXAhxMQyj1mPTNOtdc3niiSf00EMPVT8+dOiQunfvru3bt/v8FxgMjhw5opSUFO3YsUPt27e3ujo+Cae2SLQnmIVTWyTaE8zCqS2SczThrLPOUqdOnXx+r5ALIfHx8bLZbPV6Pfbt21evd8TFbrfLbrfXu96hQ4ew+IFwad++fdi0J5zaItGeYBZObZFoTzALp7ZIUkSE79NKQ25ianR0tAYMGKAlS5bUur5kyRJdeumlFtUKAAB4KuR6QiTpoYce0i9+8QsNHDhQgwcP1syZM7V9+3ZNmDDB6qoBAAA3hWQIufnmm1VaWqrf/e53Ki4uVr9+/bR48WJ1797drdfb7XY9++yzDQ7RhKJwak84tUWiPcEsnNoi0Z5gFk5tkfzbHsP0xxobAAAAD4XcnBAAABAeCCEAAMAShBAAAGAJQggAALDEGRdCXnjhBV166aVq3bq1YmNjGyxjGEa9rxkzZrRsRd3kTnu2b9+u0aNHq02bNoqPj9cDDzyg8vLylq2ol1JTU+t9FnXPDQpWr732mnr06KFWrVppwIABKiwstLpKXpk4cWK9zyAxMdHqarlt+fLlGj16tLp27SrDMPThhx/Wet40TU2cOFFdu3ZVTEyMMjIytGHDBmsq64bm2nPHHXfU+7wuueQSayrbjBdffFGDBg1Su3bt1LlzZ11//fX67rvvapUJlc/HnbaE0mfz5z//Weeff371BmuDBw/WJ598Uv28vz6XMy6ElJeXa8yYMfqv//qvJsu99dZbKi4urv4aN25cC9XQM821x+Fw6Nprr9Xx48f1+eef691339UHH3yghx9+uIVr6j3XUmzX19NPP211lZr13nvvKTc3V0899ZTWrl2r9PR0jRw5Utu3b7e6al7p27dvrc9g/fr1VlfJbcePH9cFF1ygV199tcHnf//732vq1Kl69dVXtWrVKiUmJmrYsGE6evRoC9fUPc21R5JGjBhR6/NavHhxC9bQfcuWLdO9996rL7/8UkuWLFFlZaWGDx+u48ePV5cJlc/HnbZIofPZJCcn66WXXtLq1au1evVq/exnP1NmZmZ10PDb52Keod566y2zQ4cODT4nyVywYEGL1sdXjbVn8eLFZkREhLlr167qa/PmzTPtdrt5+PDhFqyhd7p3727+8Y9/tLoaHrvooovMCRMm1Lp27rnnmo8//rhFNfLes88+a15wwQVWV8Mv6v7brqqqMhMTE82XXnqp+tqpU6fMDh06mDNmzLCghp5p6L9V48aNMzMzMy2pj6/27dtnSjKXLVtmmmZofz5122Kaof3ZmKZpduzY0XzjjTf8+rmccT0h7rrvvvsUHx+vQYMGacaMGaqqqrK6Sl754osv1K9fP3Xt2rX62tVXX62ysjKtWbPGwpq5b8qUKYqLi9OFF16oF154IeiHksrLy7VmzRoNHz681vXhw4drxYoVFtXKN99//726du2qHj166Oc//7m2bNlidZX8oqioSHv27Kn1Wdntdl1xxRUh+1lJUkFBgTp37qxevXrprrvu0r59+6yuklsOHz4sSdUHo4Xy51O3LS6h+Nk4HA69++67On78uAYPHuzXzyUkd0wNtOeee05XXnmlYmJi9K9//UsPP/yw9u/fHxLDAHXt2bOn3sF+HTt2VHR0dL1DAINRTk6OfvrTn6pjx45auXKlnnjiCRUVFemNN96wumqN2r9/vxwOR72/9y5duoTE33ldF198sf7yl7+oV69e2rt3r55//nldeuml2rBhg+Li4qyunk9cn0dDn9W2bdusqJLPRo4cqTFjxqh79+4qKirSM888o5/97Gdas2ZNUO/YaZqmHnroIV1++eXq16+fpND9fBpqixR6n8369es1ePBgnTp1Sm3bttWCBQt03nnnVQcNf3wuYRFCJk6cqEmTJjVZZtWqVRo4cKBb71czbFx44YWSnPMSWiqE+Ls9hmHUu2aaZoPXW4In7XvwwQerr51//vnq2LGjsrOzq3tHglndv18r/859MXLkyOo/9+/fX4MHD9Y555yjt99+Ww899JCFNfOfcPmsJOexFi79+vXTwIED1b17d3388cfKysqysGZNu++++/T111/r888/r/dcqH0+jbUl1D6b3r17a926dTp06JA++OADjRs3TsuWLat+3h+fS1iEkPvuu08///nPmyyTmprq9ftfcsklOnLkiPbu3Vsv+QWCP9uTmJior776qta1gwcPqqKiokXa0hBf2ueaSb558+agDSHx8fGy2Wz1ej327dtn2d+5P7Vp00b9+/fX999/b3VVfOZa5bNnzx4lJSVVXw+Xz0qSkpKS1L1796D+vO6//3599NFHWr58uZKTk6uvh+Ln01hbGhLsn010dLTS0tIkSQMHDtSqVas0bdo0PfbYY5L887mERQiJj49XfHx8wN5/7dq1atWqVaNLYP3Nn+0ZPHiwXnjhBRUXF1f/sHz22Wey2+0aMGCAX+7hKV/at3btWkmq9YMfbKKjozVgwAAtWbJEN9xwQ/X1JUuWKDMz08Ka+UdZWZk2btyo9PR0q6visx49eigxMVFLlizRT37yE0nOOT3Lli3TlClTLK6df5SWlmrHjh1B+W/GNE3df//9WrBggQoKCtSjR49az4fS59NcWxoSzJ9NQ0zTVFlZmX8/F//MmQ0d27ZtM9euXWtOmjTJbNu2rbl27Vpz7dq15tGjR03TNM2PPvrInDlzprl+/Xpz8+bN5uuvv262b9/efOCBByyuecOaa09lZaXZr18/88orrzT//e9/m//85z/N5ORk87777rO45s1bsWKFOXXqVHPt2rXmli1bzPfee8/s2rWred1111ldtWa9++67ZlRUlPnmm2+a33zzjZmbm2u2adPG3Lp1q9VV89jDDz9sFhQUmFu2bDG//PJLc9SoUWa7du1Cpi1Hjx6t/nchqfpnatu2baZpmuZLL71kdujQwczPzzfXr19v3nLLLWZSUpJ55MgRi2vesKbac/ToUfPhhx82V6xYYRYVFZlLly41Bw8ebHbr1i0o2/Nf//VfZocOHcyCggKzuLi4+uvEiRPVZULl82muLaH22TzxxBPm8uXLzaKiIvPrr782n3zySTMiIsL87LPPTNP03+dyxoWQcePGmZLqfS1dutQ0TdP85JNPzAsvvNBs27at2bp1a7Nfv35mXl6eWVFRYW3FG9Fce0zTGVSuvfZaMyYmxuzUqZN53333madOnbKu0m5as2aNefHFF5sdOnQwW7VqZfbu3dt89tlnzePHj1tdNbf86U9/Mrt3725GR0ebP/3pT2st1QslN998s5mUlGRGRUWZXbt2NbOysswNGzZYXS23LV26tMF/I+PGjTNN07kM9NlnnzUTExNNu91uDhkyxFy/fr21lW5CU+05ceKEOXz4cDMhIcGMiooyzzrrLHPcuHHm9u3bra52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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# UMAPのプロット\n", "plt.figure(figsize=(6, 6))\n", "\n", "colors = ['r', 'g', 'b','y']\n", "species = ['BT', 'BC', 'GT','GC']\n", "\n", "for color, specie in zip(colors, species):\n", " plt.scatter(X_umap[y == specie, 0], X_umap[y == specie, 1], \n", " label=specie, \n", " color=color\n", " )\n", "\n", "plt.xlabel('UMAP_1', fontsize =14)\n", "plt.ylabel('UMAP_2', fontsize =14)\n", "plt.xlim(-15,30)\n", "plt.ylim(-0,10)\n", "\n", "plt.legend()\n", "plt.grid()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "d5b235d3-1b10-45f5-81c2-891599d5dc67", "metadata": {}, "source": [ "# 3. クラスタリング\n", "**クラスタリング**とは、データをいくつかのグループ(クラスター)に分けるデータ分析手法の一つです。この手法では、同じクラスターに属するデータポイントが互いに類似しており、異なるクラスターのデータポイントとの間には顕著な違いがあるようにします。クラスタリングは、教師なし学習の一種で、事前にラベルが付けられていないデータのパターンを識別するために使用されます。\n", "\n", "### クラスタリングの特徴\n", "クラスタリングにはさまざまな方法があり、データの特性や目的に応じて適切なアルゴリズムが選択されます。主なクラスタリング手法には以下があります。\n", "\n", "1. **階層クラスタリング**: \n", " データポイントを階層的にグループ化する方法です。凝集型(アグロメレイティブ)クラスタリングと分割型(ディバイシブ)クラスタリングに分かれます。結果はデンドログラムとして視覚化され、クラスターの形成過程を視覚的に確認できます。\n", "\n", "2. **K-平均法 (K-mean)**: \n", " 事前に設定したクラスター数`k`にデータを分ける方法です。アルゴリズムは、各データポイントを最も近いクラスターの重心に割り当て、クラスターの中心(重心)が最適化されるまで繰り返します。" ] }, { "cell_type": "markdown", "id": "70eb3262-4522-4482-b22f-1a147e6d3577", "metadata": {}, "source": [ "## 1.階層クラスタリング分析\n", "階層クラスタリングは、データを階層的にグループ化するためのクラスタリング手法です。階層クラスタリングの結果は、デンドログラムと呼ばれるツリーストラクチャーで視覚化されます。デンドログラムでは、クラスターがどのようにして結合されたのか(または分割されたのか)、またクラスター間の距離がどれくらいかが示されます。" ] }, { "cell_type": "code", "execution_count": 72, "id": "9b8df393-62f0-4c3b-b368-eba74bdc7515", "metadata": {}, "outputs": [], "source": [ "from scipy.cluster.hierarchy import linkage, dendrogram" ] }, { "cell_type": "code", "execution_count": 73, "id": "6a29309a-331d-40f1-b70a-667cf2385d76", "metadata": {}, "outputs": [ { "data": { "image/png": "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xosvvmjk5uYad91115iN7dSpU8anPvUp42c/+5nxhz/8wWhsbDSKioqMwsLCIccYj2M73549e4ybb77ZSE9PN7797W8P2WbHsY00rqNHjxpJSUlGWVmZ8eqrrxqtra1GXV2d8ec//9nW47JN8/+7v/s7Y/Xq1UNey8nJMcrLy8eootC89957hiTj4MGDhmEYxsDAgJGammo89dRTwX3+8pe/GAkJCcbWrVsNwxj8yx4TE2P89Kc/De7zzjvvGNdcc42xb9++KzuAYbz//vtGVlaWsX//fuOOO+4INv/xPLZ169YZs2fPvuj28Ty2z372s8ZDDz005LV77rnHuP/++w3DGJ9j++gvW6vGcOTIEUOS8dJLLwX3aWxsNCQZf/jDH8I8qkGXapDnvPzyy4ak4EnQeB/bsWPHjOuuu874/e9/b2RkZAxp/uNhbMONa+nSpcG/Y8Ox67hsMe3f39+vpqYmffrTnx7y+qc//Wm9+OKLY1RVaE6fPi3pbw8nevvtt9XR0TFkTBMmTNAdd9wRHFNTU5MCgcCQfdLT05Wbm2uLcX/pS1/SZz/7WX3qU58a8vp4Httzzz2nW265RYsXL1ZycrK8Xq+efvrp4PbxPLbZs2frN7/5jd566y1J0u9+9zsdOnRIn/nMZySN77GdY9UYGhsblZCQoKKiouA+t912mxISEmwxznNOnz4th8Ohj3/845LG99gGBga0fPlylZWVafr06RdsH49jGxgY0H/913/pxhtv1Pz585WcnKyioqIhlwbsOi5bNP8TJ07oww8/VEpKypDXU1JS1NHRMUZVXT7DMPTP//zPmj17tnJzcyUpWPelxtTR0SGn06nExMSL7jNWfvrTn+rVV1/Vk08+ecG28Ty2//3f/9X3v/99ZWVl6fnnn9fq1av15S9/Wf/xH/8haXyPbd26dbr33nuVk5OjmJgYeb1ePfbYY7r33nslje+xnWPVGDo6OpScnHzB8ZOTk20xTkn6y1/+ovLyct13333BB8KM57F94xvfUHR0tL785S8Pu308ju29995TT0+PnnrqKS1YsEC//vWvdffdd+uee+7RwYMHJdl3XLZ6qp/D4Rjys2EYF7xmRw8//LBee+01HTp06IJtZsY01uNub2/Xo48+ql//+tdyuVwX3W88jm1gYEC33HKLqqqqJEler1eHDx/W97//fX3hC18I7jcex/azn/1Mzz77rH7yk59o+vTp8vv9euyxx5Senq4HHngguN94HNtHWTGG4fa3yzgDgYA+//nPa2BgQN/73vdG3N/uY2tqatK//du/6dVXXw25BjuP7dxi2oULF+orX/mKJCk/P18vvviitm7dqjvuuOOif3asx2WLM/9rr71WUVFRF3zCee+99y74hG83jzzyiJ577jm98MILuv7664Ovp6amStIlx5Samqr+/n51dXVddJ+x0NTUpPfee0+FhYWKjo5WdHS0Dh48qO985zuKjo4O1jYex5aWlqZp06YNee2mm24Krswdz//dysrKVF5ers9//vPKy8vT8uXL9ZWvfCU4ezOex3aOVWNITU3Vn//85wuO/3//939jPs5AIKAlS5bo7bff1v79+4c8Bna8jq2hoUHvvfeebrjhhuDvlD/+8Y/66le/KrfbLWl8ju3aa69VdHT0iL9T7DguWzR/p9OpwsJC7d+/f8jr+/fv1+233z5GVV2aYRh6+OGHtXv3bh04cEAej2fIdo/Ho9TU1CFj6u/v18GDB4NjKiwsVExMzJB93n33Xf3+978f03H/wz/8g15//XX5/f7g1y233KJly5bJ7/drypQp43Zss2bNuuCWzLfeeksZGRmSxvd/tzNnzuiaa4b+lY6KigqenYznsZ1j1Rhmzpyp06dP6+WXXw7u89vf/lanT58e03Gea/wtLS2qr6/XJz7xiSHbx+vYli9frtdee23I75T09HSVlZXp+eeflzQ+x+Z0OnXrrbde8neKbccVlmWEJpy71e9HP/qRceTIEeOxxx4zJk2aZLS1tY11acP64he/aCQkJBj//d//bbz77rvBrzNnzgT3eeqpp4yEhARj9+7dxuuvv27ce++9w96SdP311xv19fXGq6++atx5551jfsvYcM5f7W8Y43dsL7/8shEdHW1s2rTJaGlpMf7zP//TiI2NNZ599tngPuN1bA888IBx3XXXBW/12717t3HttdcaX/va14L7jIexvf/++0Zzc7PR3NxsSDK+9a1vGc3NzcEV71aNYcGCBcaMGTOMxsZGo7Gx0cjLywv77XCXGlsgEDA+97nPGddff73h9/uH/F7p6+sb12MbzkdX+xuGPcc20rh2795txMTEGD/84Q+NlpYW47vf/a4RFRVlNDQ02Hpctmn+hmEY//7v/25kZGQYTqfT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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(6, 24))\n", "\n", "# 階層クラスタリング\n", "linkage_matrix = linkage(X, method='ward')\n", "\n", "dendrogram(linkage_matrix, \n", " labels = y.tolist(), \n", " orientation = 'right',\n", " )\n", "\n", "plt.xlabel('Distance')\n", "plt.yticks(fontsize=8) # 品種のフォントサイズを8に設定\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "6d5ed05f-0cd6-4178-9a7b-39d03a72d77f", "metadata": {}, "source": [ "### 【解説】階層クラスタリングのハイパーパラメータ\n", "階層クラスタリングは、データの階層的な構造を表現するクラスタリング手法で、クラスタの数を事前に指定する必要がありません。階層クラスタリングの主なハイパーパラメータは、以下のようにクラスタリングの手法とクラスタ間の距離をどのように定義するかに関するものです。\n", "\n", "1. **`method`(linkage法)**\n", "- **説明**: クラスタ間の距離をどのように計算するかを指定します。以下のような様々な手法があります:\n", " - **`single`**: シングルリンク法。最も近いポイント間の距離をクラスタ間の距離とする。\n", " - **`complete`**: コンプリートリンク法。最も遠いポイント間の距離をクラスタ間の距離とする。\n", " - **`average`**: 平均リンク法。すべてのペアの平均距離をクラスタ間の距離とする。\n", " - **`weighted`**: 重み付き平均リンク法。平均リンク法に似ていますが、クラスタのサイズに応じて重み付けを行います。\n", " - **`centroid`**: セントロイド法。各クラスタの重心間の距離を用います。\n", " - **`median`**: メディアン法。セントロイド法に似ていますが、重心の計算方法が異なります。\n", " - **`ward`**: ウォード法。全体の分散が最小になるようにクラスタを結合します。デフォルトではこの手法がよく用いられます。\n", "\n", "2. **`metric`(距離メトリック)**\n", "- **説明**: データポイント間の距離を計算するためのメトリックを指定します。以下のようなオプションがあります:\n", " - **`euclidean`**: ユークリッド距離。最も一般的に使用される距離メトリック。\n", " - **`manhattan`**: マンハッタン距離。各軸に沿った距離の合計。\n", " - **`cosine`**: コサイン距離。ベクトル間の角度に基づく距離。\n", " - **`mahalanobis`**: マハラノビス距離。分散共分散行列を考慮した距離。\n", "\n", "3. **`criterion`(停止基準)**\n", "- **説明**: クラスタリングを終了する条件を指定します。一般的なものには以下があります:\n", " - **`inconsistent`**: 不一致の基準を使用してクラスタの結合を停止する。\n", " - **`distance`**: 距離のしきい値を指定してクラスタの結合を停止する。\n", " - **`maxclust`**: 指定されたクラスタ数に達するまでクラスタの結合を続ける。\n", "\n", "4. **`threshold`** \n", "- **説明**: クラスタを結合する際の距離のしきい値を指定します。`criterion='distance'`と組み合わせて使用されます。\n", "\n", "5. **`depth`**\n", "- **説明**: `criterion='inconsistent'`を使用する際に、不一致性の計算に使用されるツリーの深さを指定します。\n", "\n", "6. **`optimal_ordering`**\n", "- **説明**: デンドログラムの視覚化を最適化するために、クラスタ内のポイントを並び替えるかどうかを指定します。これにより、デンドログラムの見た目が整理され、より解釈しやすくなります。\n", "- **デフォルト値**: `False`\n", "\n", "### その他の考慮事項\n", "- **データの標準化**: 距離ベースのクラスタリング手法では、各特徴のスケールの違いが影響を与えるため、特徴量の標準化やスケーリングが推奨されます。\n", "\n", "これらのハイパーパラメータを調整することで、クラスタリングの結果やデンドログラムの解釈が大きく変わります。特に`method`と`metric`の選択は、クラスタリングの特性やデータの構造に大きな影響を与えるため、データの特性に応じて適切に選択することが重要です。" ] }, { "cell_type": "markdown", "id": "b68ba703-e126-42d2-acbd-025935229da9", "metadata": {}, "source": [ "## 2. k-平均法(k-means)\n", "K-平均法の目的は、データセット内のオブジェクトを指定された数(K)のクラスタに分割することです。クラスタは、データの中心点(平均)に基づいて形成されます。このアルゴリズムは以下の手順で実行されます。\n", "\n", "まず、K個のクラスタ中心(セントロイド)をランダムに選定します。次に、各データポイントを最も近いクラスタ中心に割り当てます。この際、ユークリッド距離などの距離指標に基づいて、データポイントは最も近いクラスタ中心に属します。その後、各クラスタに属するデータポイントの平均を計算し、新しいクラスタ中心として設定します。このプロセスを、クラスタ中心がほとんど変化しなくなるか、変更が指定された閾値以下になるまで繰り返します。" ] }, { "cell_type": "code", "execution_count": 77, "id": "7a704074-0aca-4704-a3e8-cfda4a54ca7b", "metadata": {}, "outputs": [], "source": [ "from sklearn.cluster import KMeans" ] }, { "cell_type": "markdown", "id": "9e1efbfb-1d3a-49c4-b864-0f9a87a74097", "metadata": {}, "source": [ "### ① モデル構築\n", "KMeansクラスは、scikit-learnライブラリから提供されるクラスタリングアルゴリズムの実装クラスです。このクラスを使用して、データを指定した数のクラスタに分割することができます。" ] }, { "cell_type": "code", "execution_count": 79, "id": "422b8856-103c-4e4d-b71b-27283bb362d8", "metadata": {}, "outputs": [], "source": [ "# データの標準化\n", "scaler = StandardScaler()\n", "X_std = scaler.fit_transform(X)" ] }, { "cell_type": "code", "execution_count": 80, "id": "6865ae72-527d-40e6-8db6-dfe8168e5257", "metadata": {}, "outputs": [], "source": [ "# WCSSを格納するリスト\n", "wcss = []\n", "\n", "# クラスタ数を1から10まで試す\n", "for i in range(1, 11):\n", " kmeans = KMeans(n_clusters=i, random_state=42)\n", " kmeans.fit(X_std)\n", " wcss.append(kmeans.inertia_)" ] }, { "cell_type": "markdown", "id": "52ecf436-b4e2-459d-8c11-d65b779b460d", "metadata": {}, "source": [ "### 【解説】k-平均法のハイパーパラメータ\n", "K-平均法(K-means)は、データをK個のクラスタに分けるクラスタリング手法です。この手法にはいくつかの重要なハイパーパラメータがあり、これらを適切に設定することでクラスタリング結果の品質を改善できます。以下はK-meansの主なハイパーパラメータです。\n", "\n", "1. **`n_clusters`**\n", "- **説明**: クラスタの数を指定します。このパラメータはK-meansの最も重要な設定であり、通常はデータセットの性質に応じて最適なクラスタ数を選択します。エルボー法やシルエット分析などの方法を用いて適切なクラスタ数を決定するのが一般的です。\n", "- **デフォルト値**: 8\n", "\n", "2. **`init`**\n", "- **説明**: 初期クラスタ中心(セントロイド)の選択方法を指定します。初期セントロイドの選択は結果に大きな影響を与えるため、慎重に選ぶ必要があります。\n", " - **`k-means++`**: セントロイドを効果的に初期化するためのヒューリスティックな方法。一般的に推奨される方法です。\n", " - **`random`**: ランダムに初期セントロイドを選ぶ方法。\n", " - **任意の配列**: ユーザーが指定した初期セントロイドを使用。\n", "\n", "3. **`max_iter`**\n", "- **説明**: K-meansアルゴリズムの最大反復回数を指定します。収束しない場合でも、この回数に達するとアルゴリズムは停止します。\n", "- **デフォルト値**: 300\n", "\n", "4. **`tol`(tolerance)**\n", "- **説明**: 収束の許容誤差。セントロイドの位置の変化がこの値以下になった場合、アルゴリズムは収束したとみなします。\n", "- **デフォルト値**: 1e-4\n", "\n", "5. **`n_init`**\n", "- **説明**: 異なる初期クラスタ中心に対してK-meansアルゴリズムを繰り返す回数。最も低いSSE(Sum of Squared Errors)を持つ結果が選ばれます。これにより、ローカルミニマに陥るリスクを低減します。\n", "- **デフォルト値**: 10\n", "\n", "6. **`random_state`**\n", "- **説明**: 再現性を確保するための乱数シードを指定します。指定すると、同じ初期セントロイドが選ばれるため、結果が再現可能になります。\n", "- **デフォルト値**: `None`\n", "\n", "7. **`algorithm`**\n", "- **説明**: 使用するK-meansアルゴリズムの種類を指定します。\n", " - **`auto`**: デフォルトで選ばれる最適なアルゴリズムを自動的に選択します。\n", " - **`full`**: 古典的なLloyd'sアルゴリズムを使用。\n", " - **`elkan`**: Elkan'sアルゴリズムを使用。距離計算を高速化するために三角不等式を利用します。\n", "\n", "8. **`precompute_distances`**\n", "- **説明**: 距離を事前に計算するかどうかを指定します。現在のScikit-learnでは、このパラメータは無視され、`True`とみなされます。\n", "\n", "これらのハイパーパラメータの適切な設定は、クラスタリングの品質や効率に大きな影響を与えます。特に、`n_clusters`の選択はクラスタリング結果に直結するため、慎重に選択する必要があります。また、`init`や`n_init`はアルゴリズムの収束性や最終的なクラスタリング結果に影響を与えるため、ローカルミニマに陥るリスクを軽減するために適切に設定することが重要です。" ] }, { "cell_type": "markdown", "id": "1122c2b9-f9a1-4905-b4d9-b9a8b1a6757f", "metadata": {}, "source": [ "### ② エルボー法の可視化図" ] }, { "cell_type": "markdown", "id": "d65b5073-a4e7-42a1-955c-5a7f6439d986", "metadata": {}, "source": [ "#### クラスタ―数の選定\n", "K-meansクラスタリングは、与えられたデータを指定された数のクラスタに分割する手法です。エルボー法(Elbow Method)は、K-meansクラスタリングにおいて適切なクラスタ数を選択するための一般的なアプローチの一つです。\n", "\n", "エルボー法のアイデアは、異なるクラスタ数を試して、クラスタ内のばらつき(クラスタ内誤差平方和;SSE:Sum of Squared Error)がどれだけ小さくなるかを評価することです。クラスタ内の誤差平方和は、各データ点とそのクラスタの重心との距離の二乗の合計を示します。これより、誤差平方和が小さい値ほど各データ点がそのクラスタの中に集まっていることを示します。\n", "\n", "エルボー法の手順:\n", "\n", "1. 異なるクラスタ数(Kの値)を試して、それぞれのクラスタリング結果のクラスタ内誤差平方和を計算。\n", "1. 各クラスタ数に対するクラスタ内誤差平方和(SSE)をプロット。\n", "1. プロットを見て、誤差平方和(SSE)の減少率が急速で減少が鈍化するタイミング(肘部分)を探索。\n", "1. エルボー(肘部分)が見つかったクラスタ数を選択。\n", "\n", "この肘部分は、クラスタ数が増加するにつれて、誤差平方和(SSE)の減少率が緩やかになるため、最適なクラスタ数を示すことがあります。 \n", "エルボー法は、クラスタ数を選択するためのヒューリスティックな手法ですが、必ずしも肘部分が明確に見えるわけではなく、実際のデータによっては明らかな肘部分がない場合もあります。そのため、エルボー法を用いつつも、他の方法やドメイン知識と組み合わせて最適なクラスタ数を選択することが重要です。" ] }, { "cell_type": "code", "execution_count": 84, "id": "9fdbceb5-697c-4c67-b808-015aa19ecfc9", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# エルボー法のグラフをプロット\n", "plt.figure(figsize=(6, 6))\n", "\n", "plt.plot(range(1, 11), wcss, marker='o')\n", "\n", "plt.xlabel('Number of clusters')\n", "plt.ylabel('WCSS')\n", "\n", "plt.grid()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "07c3d20d-7c0b-447b-8925-dc01848aeda2", "metadata": {}, "source": [ "### ③ 主成分分析(PCA)との併用\n", "\n", "PCAは高次元データを低次元に変換する手法であり、データセットの主要な変動を説明する軸(主成分)を見つけます。ここではIrisの4つのデータ(4次元)のデータセット X をPCAで2次元に次元削減し、その図に対してk-meansクラスタ法を適用します。次元削減の大きな利点は、データを2次元または3次元に投影することで、データの構造やクラスタリングの結果を視覚的に確認できる点です。特にK-meansクラスタリングの結果を視覚化する際に、各クラスタがどのように分布しているかを直感的に理解する助けになります。" ] }, { "cell_type": "code", "execution_count": 86, "id": "afb74c1e-1b88-4868-873a-41595238f1dc", "metadata": {}, "outputs": [], "source": [ "# K-meansクラスタリング\n", "kmeans = KMeans(n_clusters=4, random_state=42)\n", "y_kmeans = kmeans.fit_predict(X_std)" ] }, { "cell_type": "code", "execution_count": 87, "id": "136fede5-b4d5-442d-b5ff-96238e508d81", "metadata": {}, "outputs": [], "source": [ "from sklearn.decomposition import PCA" ] }, { "cell_type": "code", "execution_count": 88, "id": "9a8d6b71-aa6e-495e-a637-07bb90283c70", "metadata": {}, "outputs": [], "source": [ "# 主成分分析(PCA)で2次元に次元削減\n", "pca = PCA(n_components=2)\n", "X_pca = pca.fit_transform(X_std)" ] }, { "cell_type": "code", "execution_count": 89, "id": "4860abea-76a5-41fc-af52-c1cdc644e8a1", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiAAAAIXCAYAAACl9uUJAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB6EklEQVR4nO3deVxU5f4H8M9hgAEXRAGVhkFAMfclzTRF4ZZpdv3ZRcty6Xpvy7XURNvs2iuXLMu0tEWvLbe83fRaipZpLjdFafFmbi24YSCLoIAJucAMw/n9Mc7IMNs5s5yZgc/79eJFnDnLM0fifOd5vs/3EURRFEFERESkoCBfN4CIiIiaHgYgREREpDgGIERERKQ4BiBERESkOAYgREREpDgGIERERKQ4BiBERESkOAYgREREpDgGIERERKQ4BiBERESkuIAPQIqLizFp0iRERUWhWbNm6NOnDw4ePOjrZhEREZEDwb5ugDt+++03DB48GGlpafjyyy/Rtm1bnD59GpGRkb5uGhERETkgBPJidHPmzME333yD7OxsXzeFiIiIZAjoAKRbt24YMWIEioqKsHfvXmg0Gjz22GN4+OGH7R5TU1ODmpoa8891dXW4cOECoqKiIAiCEs0mIiJqFERRxO+//44bbrgBQUEyszrEAKZWq0W1Wi0+++yz4qFDh8R//OMfYlhYmLhmzRq7x8ybN08EwC9+8Ytf/OIXvzz0VVhYKPsZHtA9IKGhoejfvz++/fZb87bHH38cBw4cwHfffWfzmIY9IJWVlYiPj8fJkyfRpk0br7e5MdDr9dizZw/S0tIQEhLi6+YEDN43+XjPXMP7Jh/vmWsuXLiAzp074+LFi2jVqpWsYwM6CTU2NhbdunWz2Na1a1ds3LjR7jFqtRpqtdpqe5s2bRAVFeXxNjZGer0ezZo1Q1RUFP9HlYH3TT7eM9fwvsnHe+YeV1IYAnoa7uDBg3HixAmLbSdPnkSHDh181CIiIiKSIqADkFmzZmH//v146aWXkJubi7Vr1+Kdd97BtGnTfN00IiIiciCgA5Cbb74ZmzZtwrp169CjRw+88MILWL58OSZOnOjrphEREZEDAZ0DAgB//OMf8cc//tGr1xBFEbW1tTAYDF69TqDQ6/UIDg5GdXV1wNwTlUqF4OBgTrUmIvITAR+AeJtOp0NJSQmuXLni66b4DVEU0b59exQWFgbUA71Zs2aIjY1FaGior5tCRNTkMQBxoK6uDnl5eVCpVLjhhhsQGhoaUA9cb6mrq8OlS5fQokUL+YVnfEAUReh0OpSVlSEvLw/JyckB0W4iosaMAYgDOp0OdXV10Gq1aNasma+b4zfq6uqg0+kQFhYWMA/y8PBwhISE4MyZM+a2ExGR7wTG08PHAuUhS47x35GIyH/wLzIREREpjgEIERERKY4BSBMmCAI2b97s62YQEVETxACkkSotLcWMGTOQlJQEtVoNrVaL0aNH46uvvvLK9bKysiAIAi5evOiV8wPAiy++iFtvvRXNmjVDZGSk165DRETex1kwSjAYgOxsoKQEiI0FUlIAlcprl8vPz8fgwYMRGRmJJUuWoFevXtDr9dixYwemTZuG48ePe+3a7hJFEQaDAcHB1r+aOp0O99xzDwYNGoT333/fB60jIiJPYQ+It2VmAgkJQFoaMGGC8XtCgnG7lzz22GMQBAHff/89xo0bh86dO6N79+6YPXs29u/fb/MYWz0YR44cgSAIyM/PBwCcOXMGo0ePRlRUFDQaDXr27Ilt27YhPz8faWlpAIDWrVtDEARMmTIFgDGgWLJkCZKSkhAeHo7evXtjw4YNVtfdsWMH+vfvD7VajezsbJttXLBgAWbNmoWePXu6f5OIiMin2APiTZmZwLhxgChabi8uNm7fsAFIT/foJS9cuIDt27fjxRdfRPPmza1ed2foYtq0adDpdMjKyoIoiigoKECLFi2g1WqxceNGjB07FidOnEBERATCw8MBAM899xwyMzOxatUqJCcnY9++fZg0aRJiYmIwbNgw87mffvppLF26FElJSRxeISJqAhiAeIvBAMycaR18AMZtggBkZABjxnh0OCY3NxeiKKJLly4eO6dJQUEBxo4di549e6Kqqgq9evUy19Zo06YNAKBt27bmAOLy5ct47bXXsHv3bgwaNAgAkJSUhK+//hqrV6+2CEAWLlyI4cOHe7zNRETknxiAeEt2NlBUZP91UQQKC437paZ67LLitYDHGyXjH3/8cTz66KPYuXMnhgwZgvvvvx99+vSxu39OTg6qq6utAgudToe+fftabOvfv7/H20tERP6LOSDeUlLi2f0kSk5OhiAIOHbsmKzjTD0ZYr0eG71eb7HPQw89hF9//RUTJ05ETk4OBgwYgDfffNPuOevq6gAA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hn79+uGDDz5AUFDAziomIiKFGeoM5gdw+2btfd0cxfly0TzADwMQqc6ePYvU1FTEx8dj6dKlKCsrM7/Wvn3T+0UiIiLpMo9lWpTUDw8Kx7pe67DlxBak92BJfSUEbACyc+dO5ObmIjc3F3FxcRav+VlaCxER+ZHMY5kY98k4m7NAJm+aDKjAdX0UELBjFlOmTIEoija/iIiIbDHUGTBz+0ybwYeJUqXIm7qADUCIiIjkyi7ItlgBtiElS5E3dQxAiIioyZBaYlyJUuRNHQMQIiJqMvypFHlTxwCEiIiajJT4FMRFxFktVW8iQIA2QouU+BSFW9b0MAAhIqImQxWkwoqRKwDAbhCyfORy2QW5SD4GIERE1KSkd03Hhns3QBOhsXrtoz99xCm4CgnYOiBERESuSu+ajjE3jrGohFr1c5WsdVDIPQxAiIioSapfilyv12Pbz9t826AmhkMwREREpDgGIERERKQ4BiBERESkOAYgREREpDgGIERERKQ4BiBERESkOAYgREREpDgGIERERKQ4BiBERESkOAYgREREpDgGIERERKQ4BiBERESkOAYgREREpDgGIERERKQ4BiBERESkOAYgREREpDgGIERERKQ4BiBERESkOAYgREREpDgGIERERKQ4BiBERESkOAYgREREpDgGIERERKQ4BiBERESkOAYgREREpDgGIERERKQ4BiBERESkOAYgREREpDgGIERERKQ4BiBERESkOAYgREREpDgGIERERKQ4BiBERESkOAYgREREpDgGIERERKQ4BiBERESkOAYgREREpDgGIERERKQ4BiBERESkOAYgREREpDgGIERERKQ4BiBERESkOAYgREREpDgGIERERKQ4BiBERESkOAYgREREpDgGIERERKQ4BiBERESkOAYgREREpDgGIERERKQ4BiBERESkOAYgREREpDgGIERERKQ4BiBERESkOAYgREREpDgGIERERKQ4BiBERESkOAYgREREpLhGEYDU1NSgT58+EAQBR44c8XVziIiIyIlGEYA8/fTTuOGGG3zdDCIiIpIo4AOQL7/8Ejt37sTSpUt93RQiIiKSKNjXDXDHuXPn8PDDD2Pz5s1o1qyZpGNqampQU1Nj/rmqqgoAoNfrodfrvdLOxsZ0n3i/5OF9k4/3zDW8b/LxnrnGnfsliKIoerAtihFFEaNGjcLg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MGCAOHXqVIttXbp0EefMmeOjFgWW8+fPiwDEvXv3+ropAeH3338Xk5OTxV27donDhg0TZ86c6esm+a1nnnlGHDJkiNvnYQ/INYcOHUJxcTGCgoLQt29fxMbG4s4778Qvv/zi66b5vXPnzuHhhx/GRx99hGbNmvm6OQGpsrISbdq08XUz/IZOp8PBgwdxxx13WGy/44478O233/qoVYGlsrISAPh7JdG0adNw11134fbbb/d1U/ze559/jv79++Oee+5B27Zt0bdvX7z77ruyz8MA5Jpff/0VgHE13ueeew5ffPEFWrdujWHDhuHChQs+bp3/EkURU6ZMwdSpU9G/f39fNycgnT59Gm+++SamTp3q66b4jfLychgMBrRr185ie7t27VBaWuqjVgUOURQxe/ZsDBkyBD169PB1c/zef/7zHxw6dAiLFy/2dVMCwq+//opVq1YhOTkZO3bswNSpU/H444/jX//6l6zzNPoAZP78+RAEweHXDz/8gLq6OgDA3LlzMXbsWPTr1w8ffPABBEHAp59+6uN3oTyp9+3NN99EVVUVnn32WV832eek3rP6zp49i5EjR+Kee+7BQw895KOW+y9BECx+FkXRahtZmz59On788UesW7fO103xe4WFhZg5cyb+/e9/IywszNfNCQh1dXW46aab8NJLL6Fv377429/+hocffhirVq2SdZ6AXgtGiunTp+O+++5zuE9CQgJ+//13AEC3bt3M29VqNZKSkppk0pvU+7Zo0SLs37/fah2A/v37Y+LEiVizZo03m+lXpN4zk7NnzyItLQ2DBg3CO++84+XWBZbo6GioVCqr3o7z589b9YqQpRkzZuDzzz/Hvn37EBcX5+vm+L2DBw/i/Pnz6Nevn3mbwWDAvn378NZbb6GmpgYqlcqHLfQ/sbGxFs9KAOjatSs2btwo6zyNPgCJjo5GdHS00/369esHtVqNEydOYMiQIQAAvV6P/Px8dOjQwdvN9DtS79sbb7yBRYsWmX8+e/YsRowYgfXr1+OWW27xZhP9jtR7BhinsKWlpZl72oKCGn1npCyhoaHo168fdu3ahT/96U/m7bt27cKYMWN82DL/JYoiZsyYgU2bNiErKwuJiYm+blJAuO222/DTTz9ZbPvLX/6CLl264JlnnmHwYcPgwYOtpnifPHlS9rOy0QcgUkVERGDq1KmYN28e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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# クラスタリング結果のプロット\n", "fig, ax = plt.subplots(figsize=(6,6))\n", "\n", "colors = ['r', 'g', 'b','y']\n", "\n", "for i in range(4):\n", " plt.scatter(X_pca[y_kmeans == i, 0], X_pca[y_kmeans == i, 1], \n", " color=colors[i], label=f'Cluster {i+1}')\n", " \n", "# クラスタの中心をプロット\n", "centroids = kmeans.cluster_centers_\n", "centroids_pca = pca.transform(centroids)\n", "\n", "plt.scatter(centroids_pca[:, 0], centroids_pca[:, 1], \n", " color='black', marker='X', s=100, label='Centroids')\n", "\n", "plt.xlabel('PCA_1', fontsize =14)\n", "plt.ylabel('PCA_2', fontsize =14)\n", "plt.xlim(-6,6)\n", "plt.ylim(-6, 6)\n", "\n", "plt.legend()\n", "plt.grid()\n", "\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.12.4" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "state": {}, "version_major": 2, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 5 }