{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "wwHZs5pbv5lw" }, "source": [ "# Практическая работа №3\n", "## по предмету \"Системы искусственного интеллекта\"\n", "\n", "Целью практической работы является изучение методов регрессии.\n", "\n", "В данно работе вам необходимо:\n", "1. используя библиотеку sklearn, обучить линейную регрессию без использования регуляризации\n", "2. изучить работу класса Lasso для регуляризации, подобрать наилучший параметр для данного набора данных.\n", "3. изучить работу класса Ridge для регуляризации, подобрать наилучший параметр альфа для данного набора данных." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "id": "EP_MhQGkw5sW" }, "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", "
brandprocessor_brandprocessor_nameprocessor_gnrtnram_gbram_typessdhddosos_bitgraphic_card_gbweightwarrantyTouchscreenmsofficePriceratingNumber of RatingsNumber of Reviews
0ASUSIntelCore i310th4 GBDDR40 GB1024 GBWindows64-bit0 GBCasualNo warrantyNoNo346492 stars30
1LenovoIntelCore i310th4 GBDDR40 GB1024 GBWindows64-bit0 GBCasualNo warrantyNoNo389993 stars655
2LenovoIntelCore i310th4 GBDDR40 GB1024 GBWindows64-bit0 GBCasualNo warrantyNoNo399993 stars81
3ASUSIntelCore i510th8 GBDDR4512 GB0 GBWindows32-bit2 GBCasualNo warrantyNoNo699903 stars00
4ASUSIntelCeleron DualNot Available4 GBDDR40 GB512 GBWindows64-bit0 GBCasualNo warrantyNoNo269903 stars00
\n", "
" ], "text/plain": [ " brand processor_brand processor_name processor_gnrtn ram_gb ram_type \\\n", "0 ASUS Intel Core i3 10th 4 GB DDR4 \n", "1 Lenovo Intel Core i3 10th 4 GB DDR4 \n", "2 Lenovo Intel Core i3 10th 4 GB DDR4 \n", "3 ASUS Intel Core i5 10th 8 GB DDR4 \n", "4 ASUS Intel Celeron Dual Not Available 4 GB DDR4 \n", "\n", " ssd hdd os os_bit graphic_card_gb weight warranty \\\n", "0 0 GB 1024 GB Windows 64-bit 0 GB Casual No warranty \n", "1 0 GB 1024 GB Windows 64-bit 0 GB Casual No warranty \n", "2 0 GB 1024 GB Windows 64-bit 0 GB Casual No warranty \n", "3 512 GB 0 GB Windows 32-bit 2 GB Casual No warranty \n", "4 0 GB 512 GB Windows 64-bit 0 GB Casual No warranty \n", "\n", " Touchscreen msoffice Price rating Number of Ratings Number of Reviews \n", "0 No No 34649 2 stars 3 0 \n", "1 No No 38999 3 stars 65 5 \n", "2 No No 39999 3 stars 8 1 \n", "3 No No 69990 3 stars 0 0 \n", "4 No No 26990 3 stars 0 0 " ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import pandas as pd\n", "\n", "df = pd.read_csv('AISP2.csv')\n", "\n", "df.head()" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Price 1.000000\n", "ssd 0.628272\n", "ram_gb 0.518323\n", "graphic_card_gb 0.459986\n", "processor_name_Core i7 0.377777\n", "processor_name_Core i9 0.359096\n", "brand_APPLE 0.312112\n", "os_Mac 0.312112\n", "processor_name_M1 0.274581\n", "processor_brand_M1 0.274581\n", "processor_name_Ryzen 9 0.253506\n", "weight_Casual 0.247878\n", "processor_gnrtn_12th 0.219060\n", "Touchscreen_Yes 0.189126\n", "ram_type_LPDDR3 0.181314\n", "ram_type_LPDDR4X 0.173809\n", "ram_type_DDR5 0.168689\n", "processor_gnrtn_10th 0.164034\n", "os_DOS 0.140780\n", "brand_MSI 0.123952\n", "msoffice_No 0.105752\n", "warranty_3 years 0.080610\n", "processor_name_Ryzen 7 0.061872\n", "ram_type_DDR3 0.042006\n", "processor_gnrtn_8th 0.040292\n", "warranty_1 year 0.033312\n", "brand_ASUS 0.032036\n", "ram_type_LPDDR4 0.028034\n", "processor_gnrtn_9th 0.021192\n", "os_bit_32-bit 0.018458\n", "processor_brand_AMD -0.001583\n", "weight_Gaming -0.012524\n", "os_bit_64-bit -0.018458\n", "processor_gnrtn_4th -0.018769\n", "processor_name_Core i5 -0.023218\n", "brand_acer -0.024663\n", "warranty_2 years -0.029339\n", "brand_HP -0.030649\n", "rating -0.033528\n", "brand_Avita -0.033819\n", "brand_Lenovo -0.039079\n", "warranty_No warranty -0.045241\n", "processor_gnrtn_7th -0.045656\n", "processor_gnrtn_11th -0.085683\n", "processor_brand_Intel -0.103966\n", "processor_gnrtn_Not Available -0.105722\n", "msoffice_Yes -0.105752\n", "processor_name_Pentium Quad -0.111755\n", "processor_name_Ryzen 5 -0.114138\n", "Number of Ratings -0.140392\n", "Number of Reviews -0.148738\n", "processor_name_Ryzen 3 -0.150211\n", "brand_DELL -0.166272\n", "Touchscreen_No -0.189126\n", "processor_name_Celeron Dual -0.200490\n", "weight_ThinNlight -0.250425\n", "hdd -0.252699\n", "ram_type_DDR4 -0.270184\n", "os_Windows -0.337929\n", "processor_name_Core i3 -0.377232\n", "Name: Price, dtype: float64" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df['ram_gb'] = df['ram_gb'].str.replace(' GB', '').astype(float)\n", "df['ssd'] = df['ssd'].str.replace(' GB', '').astype(float)\n", "df['hdd'] = df['hdd'].str.replace(' GB', '').astype(float)\n", "df['graphic_card_gb'] = df['graphic_card_gb'].str.replace(' GB', '').astype(float)\n", "df['rating'] = df['rating'].str.replace(' stars', '').str.replace(' star', '').astype(float)\n", "\n", "df = pd.get_dummies(df, \n", " columns=['brand', 'processor_brand', 'processor_name', 'ram_type', \n", " 'os', 'os_bit', 'Touchscreen', 'msoffice', 'warranty', 'processor_gnrtn', 'weight'])\n", "\n", "df.corr(numeric_only=True)['Price'].sort_values(ascending=False)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "from sklearn.model_selection import train_test_split\n", "\n", "y = df['Price']\n", "\n", "X = df.drop('Price', axis=1)\n", "\n", "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
LinearRegression()
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "LinearRegression()" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.linear_model import LinearRegression\n", "\n", "model = LinearRegression()\n", "model.fit(X_train, y_train)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "MSE: 638671150.10\n", "RMSE: 25271.94\n", "R²: 0.6723\n" ] } ], "source": [ "import numpy as np\n", "\n", "from sklearn.metrics import mean_squared_error, r2_score\n", "\n", "y_pred = model.predict(X_test)\n", "\n", "mse = mean_squared_error(y_test, y_pred)\n", "r2 = r2_score(y_test, y_pred)\n", "\n", "print(f'MSE: {mse:.2f}')\n", "print(f\"RMSE: {np.sqrt(mse):.2f}\") # рублей\n", "print(f'R²: {r2:.4f}')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.145e+10, tolerance: 1.100e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.426e+10, tolerance: 1.135e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.029e+11, tolerance: 1.074e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.723e+10, tolerance: 9.526e+07\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.081e+11, tolerance: 1.139e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.170e+10, tolerance: 1.100e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.424e+10, tolerance: 1.135e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.027e+11, tolerance: 1.074e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.675e+10, tolerance: 9.526e+07\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.079e+11, tolerance: 1.139e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.187e+10, tolerance: 1.100e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.422e+10, tolerance: 1.135e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.024e+11, tolerance: 1.074e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.606e+10, tolerance: 9.526e+07\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.076e+11, tolerance: 1.139e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.198e+10, tolerance: 1.100e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.420e+10, tolerance: 1.135e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.019e+11, tolerance: 1.074e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.507e+10, tolerance: 9.526e+07\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.072e+11, tolerance: 1.139e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.206e+10, tolerance: 1.100e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.416e+10, tolerance: 1.135e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.011e+11, tolerance: 1.074e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.366e+10, tolerance: 9.526e+07\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.066e+11, tolerance: 1.139e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.212e+10, tolerance: 1.100e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.410e+10, tolerance: 1.135e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.001e+11, tolerance: 1.074e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.166e+10, tolerance: 9.526e+07\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.058e+11, tolerance: 1.139e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.215e+10, tolerance: 1.100e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.401e+10, tolerance: 1.135e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.859e+10, tolerance: 1.074e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.887e+10, tolerance: 9.526e+07\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.046e+11, tolerance: 1.139e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.218e+10, tolerance: 1.100e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.389e+10, tolerance: 1.135e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.648e+10, tolerance: 1.074e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.505e+10, tolerance: 9.526e+07\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.028e+11, tolerance: 1.139e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.220e+10, tolerance: 1.100e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.371e+10, tolerance: 1.135e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.352e+10, tolerance: 1.074e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.994e+10, tolerance: 9.526e+07\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.004e+11, tolerance: 1.139e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.221e+10, tolerance: 1.100e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.345e+10, tolerance: 1.135e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.943e+10, tolerance: 1.074e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.336e+10, tolerance: 9.526e+07\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.699e+10, tolerance: 1.139e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.222e+10, tolerance: 1.100e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.307e+10, tolerance: 1.135e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.393e+10, tolerance: 1.074e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.527e+10, tolerance: 9.526e+07\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.234e+10, tolerance: 1.139e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.222e+10, tolerance: 1.100e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.252e+10, tolerance: 1.135e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.676e+10, tolerance: 1.074e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.591e+10, tolerance: 9.526e+07\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.614e+10, tolerance: 1.139e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.223e+10, tolerance: 1.100e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.174e+10, tolerance: 1.135e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.780e+10, tolerance: 1.074e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.589e+10, tolerance: 9.526e+07\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.818e+10, tolerance: 1.139e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.223e+10, tolerance: 1.100e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.061e+10, tolerance: 1.135e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.724e+10, tolerance: 1.074e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.611e+10, tolerance: 9.526e+07\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.844e+10, tolerance: 1.139e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.223e+10, tolerance: 1.100e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.899e+10, tolerance: 1.135e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.565e+10, tolerance: 1.074e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.750e+10, tolerance: 9.526e+07\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.722e+10, tolerance: 1.139e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.223e+10, tolerance: 1.100e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.672e+10, tolerance: 1.135e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.247e+10, tolerance: 1.074e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.049e+09, tolerance: 9.526e+07\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.527e+10, tolerance: 1.139e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.224e+10, tolerance: 1.100e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.355e+10, tolerance: 1.135e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.169e+10, tolerance: 1.074e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.480e+09, tolerance: 9.526e+07\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.361e+10, tolerance: 1.139e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.224e+10, tolerance: 1.100e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.923e+10, tolerance: 1.135e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.284e+10, tolerance: 1.074e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.958e+09, tolerance: 9.526e+07\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.333e+10, tolerance: 1.139e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.224e+10, tolerance: 1.100e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.349e+10, tolerance: 1.135e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.609e+09, tolerance: 1.074e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.961e+09, tolerance: 9.526e+07\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.263e+10, tolerance: 1.139e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.181e+10, tolerance: 1.100e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.612e+10, tolerance: 1.135e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.909e+09, tolerance: 1.074e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.964e+09, tolerance: 9.526e+07\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.558e+09, tolerance: 1.139e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.606e+10, tolerance: 1.100e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.668e+10, tolerance: 1.135e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.912e+09, tolerance: 1.074e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.966e+09, tolerance: 9.526e+07\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.566e+09, tolerance: 1.139e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.606e+10, tolerance: 1.100e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.625e+10, tolerance: 1.135e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.916e+09, tolerance: 1.074e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.979e+09, tolerance: 9.526e+07\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.574e+09, tolerance: 1.139e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.288e+10, tolerance: 1.100e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.517e+10, tolerance: 1.135e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.921e+09, tolerance: 1.074e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.002e+09, tolerance: 9.526e+07\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.583e+09, tolerance: 1.139e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.293e+10, tolerance: 1.100e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.451e+10, tolerance: 1.135e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.928e+09, tolerance: 1.074e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.015e+09, tolerance: 9.526e+07\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.595e+09, tolerance: 1.139e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.498e+09, tolerance: 1.100e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.542e+10, tolerance: 1.135e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.252e+09, tolerance: 1.074e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.382e+08, tolerance: 9.526e+07\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.774e+09, tolerance: 1.139e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.802e+09, tolerance: 1.100e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 8.491e+09, tolerance: 1.135e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.398e+08, tolerance: 1.074e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.464e+08, tolerance: 9.526e+07\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.515e+09, tolerance: 1.139e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 5.829e+09, tolerance: 1.100e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.993e+09, tolerance: 1.135e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.825e+08, tolerance: 1.074e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.574e+08, tolerance: 9.526e+07\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.574e+09, tolerance: 1.139e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.505e+09, tolerance: 1.100e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.212e+09, tolerance: 1.135e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.009e+09, tolerance: 1.074e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.709e+08, tolerance: 9.526e+07\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.918e+09, tolerance: 1.139e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.678e+09, tolerance: 1.100e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.289e+09, tolerance: 1.135e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.323e+09, tolerance: 1.074e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 9.880e+08, tolerance: 9.526e+07\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 3.941e+09, tolerance: 1.139e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.177e+08, tolerance: 1.100e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.148e+09, tolerance: 1.135e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.352e+09, tolerance: 1.074e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.009e+09, tolerance: 9.526e+07\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.147e+08, tolerance: 1.139e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.406e+08, tolerance: 1.100e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.284e+09, tolerance: 1.135e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.395e+09, tolerance: 1.074e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.009e+09, tolerance: 9.526e+07\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.300e+08, tolerance: 1.139e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 4.709e+08, tolerance: 1.100e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.354e+09, tolerance: 1.135e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.444e+09, tolerance: 1.074e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.025e+09, tolerance: 9.526e+07\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.461e+08, tolerance: 1.139e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.627e+08, tolerance: 1.100e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.325e+09, tolerance: 1.135e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.770e+08, tolerance: 1.074e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.163e+09, tolerance: 9.526e+07\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.621e+08, tolerance: 1.139e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 2.929e+08, tolerance: 1.100e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.454e+09, tolerance: 1.135e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.903e+08, tolerance: 1.074e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.807e+08, tolerance: 1.139e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.186e+08, tolerance: 1.100e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.430e+08, tolerance: 1.100e+08\n", " model = cd_fast.enet_coordinate_descent(\n", "c:\\Users\\Serafim\\AppData\\Local\\Programs\\Python\\Python312\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:695: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 1.654e+08, tolerance: 1.100e+08\n", " model = cd_fast.enet_coordinate_descent(\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAArwAAAHbCAYAAAApo0k8AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAW2VJREFUeJzt3Qd409X6wPG3e0BboKWl7DJliCAK4laW4v47QQQXet2oqCgqol7HdVxQUa9ecVwHiHsgigwBZSiIypRRhuzZQksHbf7PeyAxbZM2SdMmv+T7eZ7Q5peTX05OU/rm5D3vibDZbDYBAAAAQlRkoDsAAAAA1CQCXgAAAIQ0Al4AAACENAJeAAAAhDQCXgAAAIQ0Al4AAACENAJeAAAAhDQCXgAAAIQ0Al4AAACENAJeAEBAnX766ebi6307d+7s9z4BCC0EvIDFvfrqq9K/f3/JyMiQmJgYadSokZx22mnyzjvvSGlpaaC7Bx9dffXVEhER4bjExcVJu3bt5OGHH5aCgoIybe+77z456aSTzOX444+Xn376KWD9RkUE5UDgRQe6AwCq5+2335bMzEx56KGHJDk5Wfbt2yfz5883AdM333wjH3zwQaC7CB9pkPvf//7XfJ+TkyOff/65PPbYY7J27Vp57733HO2uu+46efrpp833Y8eOlSuvvFKys7MD1m8ACDYEvIDFzZ4928zsOrv99tslNTVVXnrpJXnyySelZcuWAesffBcdHS2DBw92XL/55pvlxBNPNG9inn/+eTOrr3Tm185ms0lkJB/eAYAz/lcELK58sGtnD3Kdgx+dITznnHOkcePGZvawdevWZsawpKSkwkewzh+np6WlmfstXbq0TDu97ZFHHilz7JlnnjHHy+dk6sfw2laDs/j4eDMr/X//939mtlKtX7/e3O+tt94qc79bbrnFHNcZaztto8diY2Nl586dZdrPmzfP0e9ffvmlzG2TJ0+W7t27S0JCgnlOGkxu3ry5wtitXLlSLrvsMmnYsKFp2759exk1apS5TZ+D89i4usyaNatGPsrWc5988skmqF23bl2F2/Xno/3TYLgqeXl5cvfdd0uzZs3Ma0Gf47PPPmvO7fx4lV2qyrt988035cwzz5T09HTzGB07dpRXXnmlyr7p+On5J02aJA888IBJ06lTp46cf/75smnTJpf3Wb58uZxxxhmSmJgoTZo0kX/9619lbi8qKjLpIPrzT0lJMec75ZRTZObMmeIJ/X2yP2/9ndI+XX755bJx40bxh99//928xlu1amV+P/T81157rezevbtMu/3798vw4cNNf3RMdWz79u0rixcvdrRZvXq1XHzxxeYceq6mTZvKFVdcYT4lsDt06JD53df/A/Q8ej4d68LCQr88HyDYMMMLhAhNZdA/YvoHcdGiRSZ40T9yzZs3LxMo1q1bV+666y7zdcaMGSYIyM3NNYGqs6OOOsoEeRoAaVCqQdSAAQMq/QOvfdAZ5fI0oD733HNl+vTppk933HGH6ee0adNMkKZ/dF1Zs2aNvP76624fLyoqSt5991258847ywRZ+ke+fJ6rPvdrrrnG5LhqH7dv3y7jxo2TH3/8UX799VepV6+eI/DQQEjfSNxwww0mENDn/+WXX8o///lPE6S3adPGcV597A4dOpi2dnq9pugbA1W/fv0yxzUAPvvss2X06NFywQUXVHoO/Zlq8KjBnqZDdO3aVb799lu55557zBuAf//736bd//73P8d95syZI6+99pq5Td8sKPsMszsa3Hbq1Mk8ls5W6xjqLLXmlusbmaroeGuAqTnKO3bsMOkaffr0kSVLlpg3InZ79+6Vs846y/xs9I3KRx99ZO5z9NFHmzFR+hrX9JCBAwfKsGHDzOvvjTfeMPnvCxcuNGNQFX1d6M9Z+6+vW+3Pli1bzNhUl/4u6M9QX6MaqC5btsyMt37VFCUdB/WPf/zDPL9bb73VvIHQgHju3LmyYsUKOfbYY01gr89JA9fbbrvNnEt/pl999ZX5/dRgX11//fUmHeqSSy4xb3wWLFhgfi/0PJ9++mm1nw8QdGwAQkL79u11as5xGTJkiK24uLhMm/z8/Ar3u/HGG22JiYm2goICx7HTTjvNXJw98MAD5rw7duxwHNPro0ePdly/9957benp6bbu3buXuf+ECRNM2+eff77C45eWlpqv2dnZps2bb77puO2yyy6zde7c2dasWTPb0KFDHce1jbYdOHCg7eijj3Ycz8vLsyUnJ9sGDRpkbv/555/N8aKiItMvPdfBgwcd7b/66ivT7uGHH3YcO/XUU21JSUm2DRs2uOxneS1atCjTN2c6Bp06dbL5Qs9Zp04d286dO81lzZo1tmeffdYWERFhnodzf9auXWv6MX78eI/O/dln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X/0EAACAG3HRUdImva7ZcW3Z5hxpUi8h0F2yZsD7559/SkxMTJXtevXqZS7FxcXV7RsAAAC8SGvQgFfzePt1ahTo7lgzpUGD3Zdeekn27dvncXsAAADUDnZc81OVBnuO7qBBg2TGjBne3BUAAAC1EPAuJ+CtXsC7bds2efXVV2Xr1q3St29fycrKMovWNm3a5M1pAAAA4GcdjgS8m/cdlH35RYHujnUD3oSEBBkyZIjMnDlTVq9eLVdddZW88cYbJvA966yzZPLkyeTuAgAABEByfIw0b5BovmeW108bT7Rq1UoeffRRyc7Olm+++UZSU1Pl6quvliZNmvh6SgAAAFQDebw1tNOaFjaOjo42X7UWLzO8AAAAgdExky2G/Rrwat6uzvDqTK/m827ZskVef/11k98LAACA2tepCVsMV3tr4aKiIvnkk09kwoQJpkpDZmamDB06VK699loT+AIAACDwWwyv3ZknBcUlEh8TFeguWS/gbdSokeTl5cl5550nX375pfTv318iI6udFQEAAAA/SE+Kk7S6sbLrQJHZhKJrM/e744YTrwLeBx980FRmaNiwYc31CAAAAD7RNVUdMpNlzupdJo+XgPcwr6Znr7nmGpk4caLk5lbMC8nJyZEXX3zR5W0AAACo3bQGSpP5GPDq1sKzZ8+W5OTDCdHOUlJSZM6cOSboBQAAQGBQmqyaAe/HH38s//jHP9zefuONN8pHH33kzSkBAADgRx2PBLwrt+VKSakt0N2xXsC7du1aadu2rdvb9TZtAwAAgMDISq0jibFRUlBcKtm7DgS6O9YLeKOioky9XXf0Nqo2AAAABE5k5OGFa4q0hsO8ik67desmn332mdvbP/30U9MGAAAAgUMebzXKkt16661yxRVXSNOmTeWmm24yM76qpKREXn75Zfn3v/8t77//vjenBAAAgJ+xxXA1Zngvvvhiuffee+X222+XBg0amNlcvej3w4cPl7vuuksuueQSb04p48ePl5YtW0p8fLz07NlTFi5cWGn7ffv2yS233GJ2eYuLi5N27drJlClTHLc/8sgjpgad8+Woo47yqk8AAAChUprMZmPhmlczvOqf//ynXHDBBfLee+/JmjVrzCCedtppMmjQIOnRo4dX55o0aZIJkl999VUT7I4dO9bs3rZq1SpJT093ubVx3759zW1aDaJJkyayYcMG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kp6eLuvXr/e5f8HGl+dwwgknyMcff1yj/QJgbQS8AOBk3rx5EhUVJeecc44Eu3/+859ywQUXSMuWLSWcPfjggzJy5EgpLS0NdFcABCkCXgBw8sYbb8htt90ms2fPli1btkiwys/PN3297rrrJNydffbZsn//fvnmm28C3RUAQYqAFwCOOHDggEyaNEluuukmM8P71ltvVdpeb69Xr5589tln0rZtW4mPj5f+/fvLpk2bKrT93//+Z2ZiU1JS5IorrjABmt3UqVPl5JNPNudKTU2Vc889V9auXVvpY0+ZMkXi4uLMx/mV0Y/6O3XqZNrq4z/33HNlbt+6dat5rgkJCZKVlSXvv/++aTd27NhK0w569OghderUMX0+6aSTZMOGDY7bv/zySzn++OPNeKSlpclFF11UZhyOO+44SUpKkkaNGsmgQYNkx44dlT6HuXPnyimnnGL62KxZM7n99tslLy/PcbvOyA8YMEAmTpxY6XkAhC8CXgA44sMPP5SjjjpK2rdvL4MHD5YJEyaIzWarcqZVUwveeecd+fHHH03uqQa0zjR41aD4q6++MpcffvhBnnrqKcftGrzddddd8ssvv8j06dMlMjLSBImVfUQ/Z84c6d69e6V9W7RokVx22WWmP3/88YfJJ37ooYfKBPJDhgwxM9kaxGpw/Nprr1UagB46dEguvPBCOe200+T33383KSA33HCDybtVX3/9tem7BqC//vqreT4aHNsVFxfLY489Jr/99psZE80/vvrqq90+no7dWWedJRdffLF5PH1DogHwrbfeWqadPoaOCQC4ZAMAGCeeeKJt7Nix5vvi4mJbWlqabebMmY7b9Xv9b3Pv3r3m+ptvvmmuz58/39FmxYoV5tiCBQvM9dGjR9sSExNtubm5jjb33HOPrWfPnm77sXPnTnOOP/74w22bCy64wHbttdeWOVa+f4MGDbL17du3TBt97I4dO5bp688//+y4ffXq1ebYv//9b5ePu3v3bnP7rFmzXN7eq1cv25VXXmnzlD62nm///v0un8N1111nu+GGG8rcZ86cObbIyEjbwYMHHcc+//xzc6ykpMTjxwYQPpjhBQARWbVqlSxcuFAGDhxorkdHR8vll19u8mQro+3043s7nSHWj/lXrFjhOKYpAvoRvl1mZmaZWdTVq1ebx23VqpUkJyc7FqFt3LjR7eMePHjQpAxURvug6QbO9Lo+XklJiXnO2v9jjz3WcXubNm2kfv36bs/ZoEEDMyOrqRvnnXeejBs3zqRF2C1ZskR69+5d6ayz3q958+ZmTHSmuLLnqjPBOiNdt25dx0UfW2e/s7OzHe003UGPFRYWVjomAMITAS8AHFmsph/XN27c2ASBennllVfMx/w5OTnVOndMTEyZ6/rxv3O6ggaAe/bskddff10WLFhgLqqoqMjtOTU3du/evRIIb775pkllOPHEE02KQbt27WT+/PmOwNMdTd3QYFWD+vfee09+/vln+fTTTyt9rppXfeONN5pA2n7RIFiD9tatWzva6fhpTnFljw8gfBHwAgh7GuhqDq4u6CofWGkA/MEHH1R6X829tdNZU83j7dChg8e1dPU+WlpLZ0b1fp4Est26dZPly5dX2kbPpXnFzvS6Bqi60EtzlbX/mmtrt2bNGo8f//7775effvpJOnfubBa7qS5dupi8XVdWrlxpnq/mL+siNJ0Nr2rBms4+6/PUmefyl9jYWEe7pUuXmj4BgCsEvADCni4k0yBPS3xp8OZ80cVSlaU16OytljHTWVn9uF4/7tfKCc4LtSqj6QNamUEXi2mwOWPGDLOArSo6U7ps2bJKg9O7777bBJ+6SOzPP/+Ut99+W1566SUZMWKEuV0Dzj59+phFZ5rOoYGvfq+zpPZFaOVpGoEGujrDq5UZvvvuOzPbag/wR48ebd4g6FdNqdDFck8//bS5TdMYNEh98cUXZd26dfLFF1+YvlXmvvvuM0G1LlLTNyH6WJ9//nmFRWu6YK1fv35VjhuA8ETACyDsaUCrgZ+WDCtPA16dwdUKAa4kJiaaoEzLa2l+rOaY6sf8ntKKDFpOS4NlDbDvvPNOeeaZZ6q839FHH21mP7WyhDv22/X8eu6HH35YHn300TJVEXRmOyMjQ0499VRTXWHYsGEmt9ZdfrA+X52p1XHRmWINkG+55RaTdqBOP/10mTx5sglmdYe5M8880wTTqmHDhiYfV2/v2LGjmel99tlnK32eOmOsVS00YNdZYZ3F1eehM+92mzdvNkHxNddcU+W4AQhPEbpyLdCdAAAr0uBt+PDhAdvKV0uA3XPPPebjfA2c/eGvv/4ytW6///77ShefBRN9w6Ez3TpLDgCuRLs8CgAIerphhH7ErzOcGqT6QlModGGYzhhrtYV7773XVInQGV+rSE9P9ygNBED4IuAFAAvTGebq0I0gHnjgAZNTq6kMWnlBKyiUrywRzDRXGQAqQ0oDAAAAQhqL1gAAABDSCHgBAAAQ0gh4AQAAENIIeAEAABDSCHgBAAAQ0gh4AQAAENIIeAEAABDSCHgBAAAQ0gh4AQAAIKHs/wH3y+k7d/XsSAAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Максимальный R²: 0.7321\n", "Лучшее alpha: 494.1713361323828\n" ] } ], "source": [ "import matplotlib.pyplot as plt\n", "from sklearn.linear_model import Lasso\n", "from sklearn.preprocessing import StandardScaler\n", "from sklearn.pipeline import make_pipeline\n", "from sklearn.model_selection import cross_val_score\n", "import numpy as np\n", "\n", "# Сетка значений alpha\n", "alphas = np.logspace(-4, 4, 50)\n", "r2_scores = []\n", "\n", "for alpha in alphas:\n", " lasso = make_pipeline(StandardScaler(), Lasso(alpha=alpha, random_state=42))\n", " scores = cross_val_score(lasso, X_train, y_train, cv=5, scoring='r2')\n", " r2_scores.append(np.mean(scores))\n", "\n", "# Построим график\n", "plt.figure(figsize=(8,5))\n", "plt.semilogx(alphas, r2_scores, marker='o')\n", "plt.xlabel(\"Alpha (log scale)\")\n", "plt.ylabel(\"Mean R² (5-fold CV)\")\n", "plt.title(\"Зависимость R² от alpha в Lasso\")\n", "plt.grid(True)\n", "plt.show()\n", "\n", "max_idx = np.argmax(r2_scores)\n", "max_r2 = r2_scores[max_idx]\n", "best_alpha = alphas[max_idx]\n", "\n", "print(f\"Максимальный R²: {max_r2:.4f}\")\n", "print(f\"Лучшее alpha: {best_alpha}\")\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAArMAAAHbCAYAAADYqBKxAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAYu5JREFUeJzt3Qd8VFX2wPGTHgIkoSf0JiUgXYqKBSmKfXUtiCC66KLYUFEsIHb/KguLrCgrdgVR7EgRQUE6CNJ7b4FACgkpJPP/nAuTnSQzmZm0ab/v5zMk896dN3duJuTMfeeeF2SxWCwCAAAA+KBgT3cAAAAAKCmCWQAAAPgsglkAAAD4LIJZAAAA+CyCWQAAAPgsglkAAAD4LIJZAAAA+CyCWQAAAPgsglkAAAD4LIJZAEC5ueyyy8ytpI9t27at+Is9e/ZIUFCQfPjhh07b3nXXXdK4ceMK6Rfg6whmAS82efJk6devn9SpU0fCwsIkLi5OLr30Uvn4448lLy/P091DCWmgokGN9RYRESEtWrSQ0aNHS2ZmZoG2Tz75pFx00UXmdsEFF8iSJUs81m/YD7htf5aVKlWSdu3ayfjx4/kdBSpIaEU9EQD3ffTRRxIfHy/PPfecREdHS3JysixbtswEQz///LN88cUXnu4iSkgD2P/+97/m+5SUFPnuu+/kxRdflJ07d8pnn32W3+6ee+6R119/3XyvAdIdd9whu3fv9li/UVT9+vXl1VdfNd8fP35cPv/8c3n00Ufl2LFj8vLLL+e3a9SokZw+fdp8MAVQdghmAS/2+++/F/nD99BDD0mNGjXk7bffNn9AORXpm0JDQ2XgwIH59++//3658MILzQeUcePGmdl4pTO2VhaLRYKDOaHmbWJiYgr8LP/5z39Kq1atZOLEifLCCy9ISEiI2a4zt5GRkR7sKeCf+F8R8GKOZnCsAaxtYKMze1dffbXUrVvXzPo1a9bMzPTl5uYWe1q0Zs2a5nEbNmwo0E73Pf/88wW2vfHGG2Z74RxIPTWubTXw0j/WOpv8t7/9zcwyFpcr+MADD5jtOtNspW10W3h4uJnZsrV06dL8fq9atarAvhkzZkjnzp3NaV59TRpcHDx4sMjYbdmyRW655RapVauWaduyZUt55plnzD59DbZjY++2cOHCcsnn1GNffPHFJmDdtWtXkf3689H+aaDrTHp6ujz22GPSoEED817Q1/jmm2+aY9s+X3E3Z3muH3zwgfTq1Utq165tniMhIUHeeecdp33T8dPjT58+XZ5++mmTOlO5cmW57rrrZP/+/XYfs2nTJrn88sslKipK6tWrJ//3f/9XYH92drZJ0dCfvwaWeryePXvKggULxBX6+2R93fo7pX269dZbZd++fVIS+jugKSFpaWmSmJiYv93R78G3335r3kv6OP36zTff2D1uUlKS3HnnneYsTWxsrAwePFjWrVtn95j6Pr/55pulevXq5rhdunSR77//vkSvB/B2zMwCPkDTC86cOWP+OK5evdoEJrfddps0bNgwv43+MatSpYqMGDHCfP3111/NH/jU1FQThNrSWSMN4DS40YBTA6T+/fsX+8db+2A9lWpLg+VrrrlG5s+fb/r08MMPm37OmzfPBGAaVNuzY8cOmTJlisPn09msTz/91JyutQ2g9A9z4bxSfe1DhgwxAYT28ejRozJhwgT5448/5M8//zR/+NVff/1lghz9kHDvvfeaIEZf/w8//GBOB2sA3rx58/zj6nO3bt3atLXS++VFgx1VrVq1Ats1uL3qqqtkzJgxcv311xd7DP2ZamCogZymKHTo0EHmzJkjTzzxhAnu//Wvf5l2n3zySf5jFi1aJO+9957Zpx8ElHVm2BENXNu0aWOeS2eZdQx1dlnzRPVDijM63hqEaU6wBnyaQtG7d29Zu3at+ZBhdfLkSbnyyivNz0Y/hHz11VfmMeeff74ZE6XvcU3ZuP3222Xo0KHm/ff++++bfPMVK1aYMXBG3xf6c9b+6/tW+3Po0CEzNiVhDVyt7z1H5s6dKzfddJP5MKDvXQ1Y9b2sqQu2tF/XXnuteT3Dhg0zv8P6AVYD2sI2btxocqw18H/qqadMcP/ll1/KDTfcIF9//bXceOONJXpNgNeyAPB6LVu21Cm1/NugQYMsOTk5BdpkZGQUedx9991niYqKsmRmZuZvu/TSS83N1tNPP22Om5iYmL9N748ZMyb//siRIy21a9e2dO7cucDjp06datqOGzeuyPPn5eWZr7t37zZtPvjgg/x9t9xyi6Vt27aWBg0aWAYPHpy/Xdto29tvv91y/vnn529PT0+3REdHWwYMGGD2r1y50mzPzs42/dJjnT59Or/9jz/+aNqNHj06f9sll1xiqVq1qmXv3r12+1lYo0aNCvTNlo5BmzZtLCWhx6xcubLl2LFj5rZjxw7Lm2++aQkKCjKvw7Y/O3fuNP2YNGmSS8f+9ttvzet+6aWXCmy/+eabzfH1uQqzjrn+nFxl7/3Wr18/S9OmTQtsK/x+W7BggXmuevXqWVJTU/O3f/nll2b7hAkTCjxWt3388cf527KysixxcXGWm266KX/bmTNnzHZbJ0+etNSpU8dy9913O30t9n7O+j7T3x1ntI+tWrXK/1lu2bLF8sQTT5h+X3311QXa2vs96NChgyU+Pt6SnJycv23u3LmmnfbL6uuvvzbbxo8fn78tNzfX0qtXryLHvOKKK8zvju3vvb6nLrzwQst5553n9DUBvoY0A8AH6IykznTqwiCdbdOvtrOFynY2S2emdCGKzjZlZGSYU462cnJyzH49ja+n7vW0pq7Ats7KFaYzepr/pwvRdNbXls706OMefPDBIo/TmSl7dHZZ0wJ0JspRDqieTtV+W9MJ9Hn0FPIVV1xRoJ3u15k9nRW0zUfU1Amdvfrpp5/MfX2tmoN89913F5jRLq6fzuistI6j3vRUtzs0FUBTHfSms8GPP/64mU3T2Tbb/ug46MyjzqxZy1zpIiJHZs2aZWa1NbfalqYd6GcUXThYFmzfb7qATcdAK23oLLLed2bQoEFStWrV/Pt6SlzTU7T/tvT9ZpuPquknXbt2LZCKoa9Xt1tnME+cOGHOZOip9TVr1rj0erKyssxr0PeS/q7pmY3C7zVH9H1q/Vnqe07PhOiMtbMSXIcPHzYz0Tq7qu9tqz59+piZWluzZ882ZxR05tlKf3cKz4Lra9e+6yy29f8BvemMr85Ub9++3W76DeDLSDMAfECPHj3yvx8wYIA0bdrUpAloYKsBkPXU4rPPPmv+kGnwY6twcKHlnfQPr9V5551n8vYcBXV6eltzce+77z5zmteWnqbXnEw91ewqPfWpgbamJwwfPtxuG+2fBqRTp041QYl+1T/6hYPfvXv3mq/ah8I0sFi8eLH53hr8lGWeqzWIUdovDUp1rPRn5IwG3npqXh04cMDkgWogZRskKk2VcIeOh/6sbANF2/QI63iVlvZLX6t+GNIPTIXfb7bBmT36nrOl7z0dP2uqhZWebi/8vtQ0DE0ZKVz546233jI/E/2wZtWkSROXXs+0adPMzUpTVqzVJpzRdBVNmdFAWn8fNIVCPzw5W+xl/VkUHgvr+9k2ENe2Guxr3rAt27QYa/qOfmjRD556s0ffZ5qCAPgLglnAB+kslgazy5cvN8Gs5rPqrJguDNHV05qnqn9I9Y+h5hcWrneps7D6h1/pH91///vfZsZP2+viF1ubN282M0yav1oWJYU0R/CXX34xQZAzOouqM3g666uzqhpclDSHsTxYgxilM186jjqTqh82unfvXuxjdTZRc0StdNZMg2/9wODtC3U0YNNZS+2v5lvrQjOdGdVZVc27Lcv6qtZKAIXZLmbT96YuItScUM0N1kVp+jid+bcuQnSmb9++5rHWDxdaDk0XnenMf+EPGIVpTqrtz1J/Jzt16mQWuOl7oiJZx15n+vU9ZU/hABjwdQSzgA+ynma2/qHXFeIaTM2cOVMuueSS/HaO6pHqzJbtH18NZHU2T9MZRo0aVaCt3tcFNLq62x4NnDWo1tkwZ8GuBiA6K6sLUJwFe0oX+GhQrgvLdKW/PlfhYFZrd6qtW7ea1fW2dJt1vwaYqnDVhtIoHMTobLPOeGnA7srrs6WzbrrgbOzYsaaWsLuPt9LXqx8W9BSz7eysNdXEOh6loTPKelpeg27blA1XqwcoPd1d+L2hs4r6QctderZAf776/redxdWZY3fG3/ZnqTOjWipNz1jowjJ36GvQ1Ih3333XBJWF01qsrD+LwmNhfe8Wbqvjq7PgtrOzOma2rO9z/V20fT2APyNnFvBihfMHrXQ2UP9oW4M3a1BrO1ulOZz/+c9/3AqONUCxpbOnmsP52muvOUxB0JXYmpOndW8Ls+2P0tO4enrYXlUEezR1QWdm9TE6S2uPpiDoTJxeLc22/5obqrPKmqqgNB1AA31NVyhctaFwP0s7K+ZoNtEZnYHWQEXHu6S0KoXm8hb+eeiMqf4MrRUASsPe+01TC/TDkKv0KnYacNsGpJpDWpL+2euPfsByZfbf3d8JV40cOdJ8wCuulJoG0PpBUVMkbFOBNGdXy5HZ0llWPZ5tBRB9v02aNKlAO/1d0A+nGkjreBZWuNwd4A+YmQW8mOZe6qlcncnUUkn6h0iDNJ2h0TQDLU+kdAZJZ1s1p1QX/mjQoqWXHAVpWrpKT80qDUT1D58GjprDaktnGHUxSnEzPBpsamCiJcG0bJDOTuriJp0d1EVZtqWk9Hi6gMVefqsjWitXT/8WLldlpTNQekpYyxlpqoXOollLc2kagG1pLz3lqzO8egpYF9BpPqXmaOoiMV2I465Tp06ZhTnWhTd6fO2PNYB2l14MQ1+HfgjRQLwkZcC0fJOeHtf3h7629u3bm3HXDyWPPPKIw1Jp7tBT8ppWoM+laRE6DhpkaSBlL4CyR+uf6s9CX6/+vLQUlp7+tl3g5Cp93+qsrP6e6NjrGQn9cKOLqLRvrtCcauvvhC6Q0g8Dmrbj6iKwwvS59YOFpsZo7qr+bO3RD3baZx0L/cCm7yNdbKllz2z7rikUuvBNF/LpbKz+v6Az49pe2X7Y1ABXj6f/P+h46mytjrEG95pCobVpAb/i6XIKABx75513LP3797fUrVvXEhoaaomNjTXlj2bNmlWk7R9//GHp3r27pVKlSqa9ltKaM2eOKduj5ZAKlzuy3vSYF110UZFj6j4t5bR69eoC2+2V9tIyTc8884ylSZMmlrCwMFM6SUtBaVkp25JE2reDBw8WWxbJWibKWnqrMEf7p0+fbunYsaMlIiLCUr16dcsdd9xhOXDgQJHHb9iwwXLjjTea1x0ZGWnKnj333HMlKs1lbxx//vlni6uluezRMQsJCXH4vK5IS0uzPProo+Z9oD8PLcf0xhtvOCxBVpLSXN9//72lXbt2ZgwbN25sef311/PLtNkex1Fpri+++MIyatQoU1ZN3xdaxqpwyTRH5c90bGzLVunreuWVV8w2/fnr+0BLsxVu54i2sf1Z1qxZ09K3b1/L0qVLnT62uBJtCxcuLFDizl5pLmvZrdatW5u+JyQkWGbOnGm371r6S0uGaXm5mJgYy1133WV+7/WY06ZNK/I+0hJ++ruo7wEthXbNNddYvvrqK6evCfA1QfqPpwNqAEBg0PxunTnW0my6kBGlozm9OiOtVTuslU2AQEPOLAAAPqBwfWHNjdaUBE2H0NQZIFCRMwsAgA/QBYIa0GrdaV2YpnnCWjP6lVdecVo+DPBnBLMAAPgArV6i9aF//PFHyczMNAvmdGbW0YVHgEBBziwAAAB8FjmzAAAA8FkEswAAAPBZAZczq1dMOXTokLnMo6MrGgEAAMBzNAtWrxKol1oPDi5+7jXgglkNZBs0aODpbgAAAMCJ/fv3S/369YttE3DBrM7IWgdHa/OVN72Wtl5KUi//qJe5xP8wNvYxLo4xNvYxLo4xNvYxLo4xNt4xLqmpqWby0Rq3FSfggllraoEGshUVzEZFRZnn4peiIMbGPsbFMcbGPsbFMcbGPsbFMcbGu8bFlZRQFoABAADAZxHMAgAAwGcRzAIAAMBnEcwCAADAZxHMAgAAwGcRzAIAAMBnEcwCAADAZxHMAgAAwGcRzAIAAMBnEcwCAADAZwXc5WwBAChruXkWWbH7hCSmZUrtqpHStUl1CQkOKpP25X3sVTuTXD424I0IZgEAKEVQOHvDYRn7wyY5nJKZvy0+JlLGXJsgV7aNL1X78jz2uqQgefWt3+VIapZLxwa8FWkGAACfDjiX7kyS79YeNF/1flm01aDw4td/ldunLJOHp601X/W+bi/cbtinawoEj+pISqbZXpr25XnsORuPytRtwQUC2eKOXZIxBCoKM7MAAK/hzilyd2YhNXh7+eetLs+GakBXOEyzBnrvDOxkHqN91ee3F87pNu217u+TEGdeg7P26plvNkilsBDJPpMnT81cX2zbJ79eL8dPZZtjWywWeX321mLbP//9Junduo4EBQXJS7O22Glpv98lnSUGKgrBLADA507XuxpwWk+nf7B0nUttXQk4R81cL+lZZ2TjodQis6CF2+v+i177VSxikdTTOXI6J6/YsUpKz5bBH6wUV6SczpFnv90grjqSmiktn/tZKoeHSWpmzrmw1XG/9WfWo1kNt8cbqGgEswCAcuNqgOpOsOTKjOjo7zZKw+qVJfnUaZm+K7jY4FTTCBLid0pGdp4kncqS4+nZxb6mkxk58tiMv9wKIt1RNyZSQkOCZN+J007btq0bLXExkWZ8Nbh2JjdPzgWyzr0xZ4tc0bqOtKxTRZ77bqPLM9BARSOYBQCU20xrWZyut86GnkjPltRMnRFNcTojmpiWJf3/vejcluIDrKwzefLn/hRxR8u4qhIdGSor95x02lYD9wsaV5etR9PksS/XOW3/1i0dzFfN03XmmasTzOyp5q+60n7i7R3NrLKmMDizZl+yuTljbyYXqEgEswCAMk8FcCVAferr9bI98ZRsOFh8cGqdDX36G9dPqavKESESGRosSenOZyLvuaixXNaqtuw5nm5mIZ15/to2Zox0UZgG5/Zep46ezpoO6tHYjGXr+Gh5c85Wp+31uNZxdbWtfnWlff/zz/6Mxv+y7dyMsf1Av3pUuNzds7FsP3pKVu4+IYec/HyUvndKU1IMKCmCWQAIcGWVCvDm39ubgO1g8mlZvP2Y0wA1+XSOvDV3m8v9TKgbLa3iqkpmdq7M2nDEafv/DrpAcnPPyMCpq5y27Z0QZ2YVL2xWU/6zcKdLQaQGZjpG+tp1u217a8im+60BnLvty/PYz/ZvJcOnrXXY9pW/tc3/2bs667tkZ5J0aVxd6sVWYrEYKhSluQDAD7laQsnVck76+Oe/d5w3qbfHZqwzp/aHfrxKPlq616V+alB4Xfu6LrV97uoEGXdLB5k4oJMJjBzN8el23a/H7tKomsSGW1xqaxsUWvcVbls4KNTATNMlNMC1pfftLYpyp315Hrtfmzpyd4s8qRMd4bStddbX2Zzq9JX7zWK3PuN+k3+6UVIMKC1mZgHAz5RlKsCIL9fJR0v2mNPNzhZGKc0jbVyzsjm9v8KFfNJHe7cwwdLKPSdcPqXuzixkXnCQ/K1xnnywLcSlGUvboLDwGMY5mFnU+7r4ydVT6u60L89jt69hkZF3XCJ/Hkgrtq0r4z2weyPZkXhKlu5KMqkj9rBYDOWFYBYAfIQrOYiuLLrq1ybOlIDSWVtnqQAZ2bmydNcJl/v44g1t5foO9UxfXcknLcnpencDTg3aJt7WvkidWUfBaUmCSN3uzuInd9p7w7FdHe8f1x2S4V/86fA4LBZDeSCYBQAfn229omVNl2daH/ziT1OUX6sCuOqObg2lRZ0qMub7TU7batCn3A1Q3Z0NdTfg1NPqV7Wr59aCJHeDSH/nynjnWly7IljhxWJAaRDMAoCPl7ga9/fz5XC6yMQFO53OtObkWiQn94wEBYnUrBIux9Kcpw5c066u6dvk33a5nApQEafry3uGE+6PofXDjDNhISzZQdkhmAUAHy9x9eiM9ef+O9/lUh9H9mspQy5qIuGhweWaClARp+vhXZyVCLN68qt1pt7tzZ3rm8vrKkp5oaQIZgGgGO78gS2rElfPXNNa6sVUkl3H02X57iSns60qPNgiDWtUkR3H0p227diwmlQKDzHfl3cqgCJADRzOPvTo/UY1omRvUoY88dVf8sNfh+XVv50v6w8kU8oLJUYwCyDglPXsqbtXuxpTTIkr9dKPm91+Tbc2zZNn7rxQLh+3yOtSARBYnL2nereuI/9dvFvGzdsmv287Jr3eXGiuwiYuXMoYsIdgFoDPBJzeNHtq+wfWlVSAR6avlea/7pDdx9MlPTvX6etvVquytK8fK6HBQfLl6gNO28eEu7/oyopUAJQ1Z++pf17aTPok1JEnZqxzeMlcSnnBVQSzgI9xJ3BzNwetPNuXRcD5zFUtK2z21FlwqpdWPZGeLYlpWfLXgWSnqQCZOXmy4VCquOqhK87LL3G1aMdxJ7OtEdIs+mx6AakA8BbO3lPNalWRx/q2lDv+u9xhG0p5wRUEs+VI/wgt331CVh8Pkhr6i9i8tkcCA289do2oUHFwUSKv7nd5H7tj/aoOj+tu4OZODlp5ti+rgPPBaetkSIsg6V9Os6caoGZk5cqf+50HpxrIant3/KNnEzmvdhV58mtdsFV2Ja6euaqV5O5dnb+dVAD4iuOnslxqRykvFIdgtpwU/OMdIh9vX+WRwMDbjx0bHiJhjY/KNR3q+1S/y/PYcdER0j/ufwGblCBwc6dtebcvy4BTQ7GZe4JlZJ5FgvXyqk6C05Ff/SWbD6fJqawzsiMxzaUAdcSMdeKq1vFVTSpATm6efL3moNP2V7SqY4LK8b9sL9O8Vq0zO6vQ1WOZaYUvcLWUl6vtEJiCLBYXKxz7idTUVImJiZGUlBSJjo4ul+dw9MfbOifiamBgr72/HVvDjiAJ8rl+l/exLWKRt2/rkB/kW6+m5CgYswZAi5/sZe672lYDHneO7Up7VbtqhEy/t4fk5OXJgCnL5Pgpx7VMYyqFyfBezU1AqJfDnOlCUKiXTM0+kyeZdhaNlJbOnNaoEi7LXLjq1RdDu5uA0dWrXVnH0PqzFwczrY4WvDia8c/JyZFZs2ZJ//79JSwsrMSv3R8xNt49Ls5+d6yTAdbfnUAaG2+TU8Hj4k68xsxsGXPlVKaeYjyZkS3BQUGSZ7HIaz9vddpeZ4zU67Nda2s9tivt9bKW6v9cbGs9tivtj507hfSGg7b659tyrq3mHlqP/eYcZ8f+S46mng2m3pq7zens3KHk0/nH1lkxZ+33ncgw30/8dUexbbW0zM5j6aYAvf7s3/1tV7HtH5/x19m8SYtFPlyyp/jXOHODrN6fYoL9g8kZxQaP1ryyu6auMK/RlbbXv71YqkSGSnJ6jkvtO784z/wxyczJdbqASX+Wl7+1UFyRcjpHXv7JvdX77ly9SoPNdvVjJDkjR6av3O+0/QvXtzVBoqv1VyvqalfW52G2Ff6kuN8dq+GXNydFBt4/Mztp0iR544035MiRI9K+fXuZOHGidO3a1W7byy67TH777bci2/WTwk8//eTxmdmlO5Pk9inLyvy4gK8JDwmSkOBgOZ3jfOV+p4axZjGIBpzzNh912v7l6xOkcmSYPDJ9nVfNnrqbklJWReKZSXKMsfGNcbH3u6OVPM7kWaRpzcoy4589pEaViIAcG2+Rw8ysY9OnT5cRI0bI5MmTpVu3bjJ+/Hjp16+fbN26VWrXrl2k/cyZMyU7+3+nLJOSkkwA/Pe//128gatJ6m3rRps/nPqH1ZUVztpeudo2LqaSHEk5XfbHrhct8TGV5LAe+6Dz9ufXO3vs9S60bVffeuxM+etAitP27evHmBnRtfudt+3QIFbqVaskh06eNot7nOnSKNZ8XbXXedtuTapLw+pRsv9Ehizb7fzU9MXNa5p+L9p+3GnbK1rXlpZ1qpqZ5W/XHnLa/o5uDczVdD5dts9p2+GXN5OWcdGy89gpM1vtzKt/ayudGlaX9QdT5HEX8ko/urub+erKh7sn+rVyOeCMCbfITZ3qmf9M9cyDN82eUuIKKBl7vzsNqleSW99dZi4ectcHK+WLe7tLlQiPhy3wQh5/V4wbN06GDh0qQ4YMMfc1qNUZ1qlTp8pTTz1VpH316gVrTU6bNk2ioqK8Jph1NUn9masTzB8xV2dytb1ytW25Hbu/e8d+ur/rxx51lXvHfuqq1i4f+8krW7l17Mf6tnL52I/0bpF/7GUutH/g8ubmqyvB7D8ubpof5GllDGeB2wvXn2/uz9+c6LTto31a5ufA6ul3Z+1v6dLQtG9eu4q8Ndf1ILK4S1uWJOD8W+M8064kNVUr4gIBBKhAydj73fnknq5y8+Sl5kP0vR+vkg+GXCARoWevXgd4RTCrM6yrV6+WUaNG5W8LDg6W3r17y9KlS106xvvvvy+33XabVK5c2e7+rKwsc7OdtrZOl+utrGlZJV2NfjQ1q9iakNpOn9+d9opjB8axNTSLiz5bpsv6PtUaq1qaynF5ppaSl3vGrbZ55zIAyqt9SY6tK/Mn3tZeXpq1RY6k/u93V8fuqb7niRxYmz8mxbXVclW6v/DvuW677LyesmrvSZPbq4vVujSqlr+Qyp4uDfUMw9mzDLZ99RbWfpfH/2m+jrHx7XFpEBsh79/ZSQZOXSlLdibJQ5+vkQm3ti/XHFpfGZuKllPB4+LO83g0Z/bQoUNSr149WbJkifTo0SN/+8iRI01e7PLljgspqxUrVpjUBG3nKMf2+eefl7FjxxbZ/vnnn5sZ3fKwLilIpm4LPnfP9hfu7FDf3SJP2tewlKg9xw7cY1sfo6WpkrP/1z423GJmK0vTtrzbu3tspTWId6YGSWqOSHSYSLNoizj6++VOWwC+Z1tKkEzeHCy5liC5sE6e3Nw4T3al8TvvzzIyMmTAgAEu5cz6dDB73333mRncv/76y2EbezOzDRo0kOPHj5dbaS41Z+PRIrNF8edmi/q1qVOq9v50bA1oxl5/vvRvV9en+l2exz5bZzZDHr+tt90ke00LsDeraI87bcu7vbvHdvRJfd68edKnTx8WZthgXBxjbPxnXH7ecEQe/vIvLQYjlcNDClRV0f83n+1v///kQBibilDR46LxWs2aNb0/mNU0A50d/eqrr+SGG27I3z548GBJTk6W7777zuFj09PTpW7duvLCCy/Iww8/7FV1Zm3/eC/dkShzFy2Xvj27cQUwO1cAO7ZpmVxzteOVkYF6BbA5s39mJa0drDK2j3FxjLHxr3F5euZ6+XxF0QWuzmo0B8LYlDeqGTgQHh4unTt3lvnz5+cHs3l5eeb+8OHDi33sjBkzzIzrwIEDxVtp8KIr3ZM2W8xXZ7NQ7iwccXeRiTce2/xibPa9fpf3scnTAgD7H/wXbE20u896hUBd3KmLNqlLG1isCXseo2W5pkyZIh999JFs3rxZhg0bZmZdrdUNBg0aVGCBmO3CLw2Aa9Rg1TAAAP5Oz2C5coEXbYfA4vHSXLfeeqscO3ZMRo8ebS6a0KFDB5k9e7bUqXM272Xfvn2mwoEtrUG7ePFimTt3rod6DQAAvLGOu6vt4D88HswqTSlwlFawcGHRS2K2bNlSvODCZQAAwMvquLvaDv7D42kGAAAAzuhCWr0Ii6NsWN0eb3MRFgQOglkAAOD1rFf9U/YCWoudq/4hMBDMAgAAn2C9JLVegrqw0OAgaRVXviU34Z28ImcWAADA1YBWy2/9rz53hExasEMW70iSF3/cJO/fdYGnu4gKRjALAAB8SuH63LWjI+XK8b/L/C2JMn/zUbmidemvBAbfQZoBAADwac1qVZG7L25ivn/hx02SmfO/S93C/xHMAgAAn/dgr/OkTnSE7E3KkP8u2uXp7qACEcwCAACfVyUiVJ7u39p8//aCHXIw+bSnu4QKQjALAAD8wnXt65o6s5k5efLyT5s83R1UEIJZAADgF4KCgmTsdW3MArFZ64/I4u3HPd0lVACCWQAA4Ddax0fLnd0bme/HfL9Bss/kebpLKGcEswAAwK882qeF1KgcLjuPpctHS/Z4ujsoZwSzAADAr8RUCpMnr2xlvh//yzY5nHxalu5Mku/WHjRfc/P04rfwF1w0AQAA+J2bO9eXz1bsk3X7k6XXWwvldM7/0g3iYyJlzLUJ5mpi8H3MzAIAAL8THBwkV7WJM9/bBrLqSEqmDPt0jczecNhDvUNZIpgFAAB+R1MJPlpqP1/WmmQw9odNpBz4AYJZAADgd1bsPiGHUzId7tcQVvdrO/g2glkAAOB3EtMyy7QdvBfBLAAA8Du1q0aWaTt4L4JZAADgd/Sytlq1IMjBft2u+7UdfBvBLAAA8Dt6SVstv6UcBbS6X9vBtxHMAgAAv6R1ZN8Z2EniYgqmElSJCDXbqTPrH7hoAgAA8FsasPZJiDNVC+ZuOiIf/LFHIkKDpVerOp7uGsoIM7MAAMCvaSpBj2Y15On+raV21QhJSs+WORuPeLpbKCMEswAAICCEhQTL7V0bmu8/WbbX091BGSGYBQAAAUODWZ2p1bSDrUfSPN0dlAGCWQAAEDB0MVif1mfzZT9ldtYvEMwCAICAcmePRubrzDUH5FTWGU93B6VEMAsAAALKhc1qSNNalSU9O1e++fOgp7uDUiKYBQAAASUoKEgGdjs7O/vp0r1isVg83SWUAsEsAAAIODd1ri+RYcGy9WiarNxz0tPdQSkQzAIAgIATUylMbuhQz3xPmS7fRjALAAAC0sDuZ1MNZm84LIlpmZ7uDkqIYBYAAASktvVipGPDWMnJtciXK/d7ujsoIYJZAAAQsO48Nzv7+fJ9ciY3z9PdQQkQzAIAgIDV//x4qRYVJodSMuXXLYme7g5KgGAWAAAErMiwELnlggbmexaC+SaCWQAAENDu6NpIgoJEFm0/LnuS0j3dHbiJYBYAAAS0hjWi5LIWtcz3X6w44OnuwE0EswAAIODd2ePsQrCv/zwo2bme7g3cEepWawAAAD90aYvaUr9aJTlw8rT8fCBIQv46LPGxlaVrk+oSEhzk6e6hGASzAAAg4GnA2qVRdTlw8qD8eihEfp2x3myPj4mUMdcmyJVt4z3dRThAmgEAAAh4ehWwb9ceLLL9SEqmDPt0jdkP70QwCwAAAlpunkXG/rDJ7j7Lua+6X9vB+xDMAgCAgLZi9wk5nJLpcL+GsLpf28H7EMwCAICAlpiWWabtULEIZgEAQECrXTWyTNuhYhHMAgCAgKblt7RqgaMCXLpd92s7eB+CWQAAIIFelkvLbylHAa3up96sdyKYBQAAAU/ryL4zsJPUiY4osD0qPMRsp86s9yKYBQAAOBfQLnzsEhmekCv39mxstlUKC5G+CXGe7hqKQTALAABwjqYSnBdjkYd7NZeqEaGSlJ4tf+5P9nS3UAyCWQAAgELCQ4Pl8la1zfdzNx3xdHdQDIJZAAAAO/ok1DFf5248KhYLV//yVgSzAAAAdlzWspaEhQTJ7uPpsvPYKU93B94azE6aNEkaN24skZGR0q1bN1mxYkWx7ZOTk+WBBx6Q+Ph4iYiIkBYtWsisWbMqrL8AACAwVI0Mkwub1TTfz9l41NPdgTcGs9OnT5cRI0bImDFjZM2aNdK+fXvp16+fJCYm2m2fnZ0tffr0kT179shXX30lW7dulSlTpki9evUqvO8AAMD/9W1zLtVgE8Gst/JoMDtu3DgZOnSoDBkyRBISEmTy5MkSFRUlU6dOtdtet584cUK+/fZbueiii8yM7qWXXmqCYAAAgLLWp/XZYHbd/mQ5mprp6e7AjlDxEJ1lXb16tYwaNSp/W3BwsPTu3VuWLl1q9zHff/+99OjRw6QZfPfdd1KrVi0ZMGCAPPnkkxISEmL3MVlZWeZmlZqaar7m5OSYW3mzPkdFPJevYWzsY1wcY2zsY1wcY2zsY1xcH5tqlUKkQ4MYWbs/RWavPyQDujaQQJRTwe8Zd54nyOKh5XmHDh0y6QFLliwxAarVyJEj5bfffpPly5cXeUyrVq1MisEdd9wh999/v+zYscN8feihh0yqgj3PP/+8jB07tsj2zz//3MwCAwAAFOeXg0Hyw74QaRWTJ8MS8jzdnYCQkZFhJixTUlIkOjraO2dmSyIvL09q164t7733npmJ7dy5sxw8eFDeeOMNh8GszvxqXq7tzGyDBg2kb9++TgenrD5ZzJs3z+T6hoWFlfvz+RLGxj7GxTHGxj7GxTHGxj7Gxb2xaXUsXX749x+y81SI9Ox1hVkYFmhyKvg9Yz2T7gqPBbM1a9Y0AenRowUTqvV+XJz9y8ZpBQMdQNuUgtatW8uRI0dM2kJ4eHiRx2jFA70VpsepyF/gin4+X8LY2Me4OMbY2Me4OMbY2Me4uDY2LevGStNalWXXsXRZvCtZrmtfVwJVWAW9Z9x5Do8tANPAU2dW58+fX2DmVe/bph3Y0kVfmlqg7ay2bdtmglx7gSwAAEBZ6JtwdqJt7kauBuZtPFrNQE//a2mtjz76SDZv3izDhg2T9PR0U91ADRo0qMACMd2v1QwefvhhE8T+9NNP8sorr5gFYQAAAOVdomvh1mOSdSbX092Bt+TM3nrrrXLs2DEZPXq0SRXo0KGDzJ49W+rUOfuG2bdvn6lwYKW5rnPmzJFHH31U2rVrZxaQaWCr1QwAAADKS4f6sVKraoQcS8uSpTuT5LKWtT3dJXjLArDhw4ebmz0LFy4ssk1TEJYtW1YBPQMAADgrODhI+iTUkc+X75N5m44SzHoRj1/OFgAAwBf0TTh75liD2bw8j1Q2hR0EswAAAC7o0ayGVIkIlcS0LFl3INnT3cE5BLMAAAAuiAgNkcta1jLfz91UsLQoPIdgFgAAwEWaN6so0eU9CGYBAABcdHmr2hIWEiQ7j6XLjsRTnu4OCGYBAABcFx0ZJt2b1shfCAbPI5gFAABwQ982Z68GNm8TqQbegGAWAADADX1an82b/XN/siSmZnq6OwGPYBYAAMANcTGR0r5BrFgsIr9sTvR0dwIewSwAAEAJL6Awl1QDjyOYBQAAcFO/NmeD2SU7kiQtM8fT3QloBLMAAABualarijSpWVmyc/NkyqJd8t3ag7J0Z5LkcpnbChda8U8JAADg24KCgqR57Sqy+3i6/Hv+jvzt8TGRMubaBLmybbxH+xdImJkFAABw0+wNh+3WmT2SkinDPl1j9sNLZ2Y3b94s06ZNk0WLFsnevXslIyNDatWqJR07dpR+/frJTTfdJBEREeXTWwAAAA/TVIKxP2yyu0+TDIJEzP4+CXESEqz34BUzs2vWrJHevXuboHXx4sXSrVs3eeSRR+TFF1+UgQMHisVikWeeeUbq1q0rr7/+umRlZZVrxwEAADxhxe4TcjjFcX1ZDWh1v7aDF83M6ozr448/Ll999ZXExsY6bLd06VKZMGGCvPXWW/L000+XVT8BAAC8QmJaZpm2QwUFs9u2bZOwsDCn7Xr06GFuOTmUqQAAAP6ndtXIMm2HCkoz0ED27bffluTkZJfbAwAA+JuuTaqbqgWOsmF1u+7XdvCyagbWnNgBAwbIr7/+Wn69AgAA8FK6qEvLb6nCAa31vu5n8ZcXBrNHjhyRyZMny+HDh6VPnz7SpEkTswBs//795ddDAAAAL6N1ZN8Z2EniYgqmEuh93U6dWS8NZitVqiSDBg2SBQsWyPbt2+XOO++U999/3wS1V155pcyYMYNcWQAAEBA0YF38ZC+ZOriLBJ2bhJ1+Xw8CWV+5aELTpk3lhRdekN27d8vPP/8sNWrUkLvuukvq1atXtj0EAADwUppK0Kt1HWlf/2ylJ8px+eAVwPRybqGhoear1pplZhYAAASaHs1qmK9Ldh73dFcCTomDWc2T1ZlZnaHV/NlDhw7JlClTTD4tAABAILnwXDC7bGeSmdyDl17ONjs7W2bOnClTp0411Qzi4+Nl8ODBcvfdd5ugFgAAIBB1aVRdwkKC5FBKpuxNypDGNSt7uksBw61gNi4uTtLT0+Xaa6+VH374Qfr16yfBwaXOVAAAAPBplcJDpGODarJizwlZuiuJYLYCuRWJPvvss3LgwAFzSdurrrqKQBYAAOCc7vl5s0me7kpAcSsaHTJkiEybNk1SU1OL7EtJSZGJEyfa3QcAABAoebNLyZv13mBWL2f7+++/S3R0dJF9MTExsmjRIhPQAgAABJqODWMlIjRYjp/Kkp3HTnm6OwHDrWD266+/ln/+858O9993330mBQEAACDQRISGSOdG1cz3pBp4aTC7c+dOOe+88xzu133aBgAAINBTDeCFwWxISIipJ+uI7mNRGAAACPSLJ2hFg7w88mYrgluRZ8eOHeXbb791uP+bb74xbQAAAAJRu/qxEhUeIskZObLlSJqnuxMQ3Apmhw8fLm+99ZZZCJabm5u/Xb/XhV//+te/5IEHHiiPfgIAAHi9sJBguaBx9fzZWXhZMHvTTTfJyJEj5aGHHpLq1aubWVi96fePPPKIjBgxQm6++eby6y0AAIDP5M0e93RXAoJbVwBTL7/8slx//fXy2WefyY4dO0wdtUsvvVQGDBggXbt2LZ9eAgAA+Fje7PJdJ+RMbp6EhrCeyKuCWaVBK4ErAABAUW3qxkjVyFBJyzwjGw+lSvsGsZ7ukl/jowIAAEAZCgkOkm5N/lfVAOWLYBYAAKC8SnRRb7bcEcwCAACU0yKwlXtOSE5unqe749cIZgEAAMpYyzpVpVpUmGRk58pfB5I93R2/RjALAABQxoKDg/JTDZbsINXAK6oZaD3ZoKAgl9quWbOmNH0CAADweT2a1pBZ64+YRWAPXnGep7vjt1wOZm+44Yb87zMzM+U///mPJCQkSI8ePcy2ZcuWycaNG+X+++8vn54CAAD4EOvM7Kq9JyUzJ1ciw0I83aXADmbHjBmT//0//vEPcxWwF198sUib/fv3l20PAQAAfFCzWlWkVtUIOZaWJX/uS84PbuEFObMzZsyQQYMGFdk+cOBA+frrr8uiXwAAAD5N0zM11UBRb9bLgtlKlSrJH3/8UWS7bouMjCyLfgEAAPhNia6lO497uit+q0SXs33kkUdk2LBhZqGX9bK2y5cvl6lTp8pzzz1X1n0EAADwSdbUgrX7kyUj+4xEhZco9EIxSjSiTz31lDRt2lQmTJggn376qdnWunVr+eCDD+SWW24pySEBAAD8TsPqUVIvtpIcTD4tq/aclEta1PJ0l/xOiT8eaNBK4AoAAFB83mz3pjXk6zUHTN4swWzZ46IJAAAAFZI3yyIwj87MVqtWzeWLJpw4caI0fQIAAPC7vNn1B1MkLTNHqkaGebpLgRnMjh8/vnx7AgAA4IfqxlaSRjWiZG9Shqzcc0J6tarj6S4FZjA7ePDg8u0JAACAH6caaDC7ZEcSway35Mzm5uaaCyS89NJL5vbNN9+YbSUxadIkady4salR261bN1mxYoXDth9++KFJd7C9UdsWAAB4M10Eprh4gpdUM9ixY4f0799fDh48KC1btjTbXn31VWnQoIH89NNP0qxZM5ePNX36dBkxYoRMnjzZBLKaztCvXz/ZunWr1K5d2+5joqOjzX4rV3N5AQAAPJk3u/FQqnyxYq80rlFFujapLiHBxDAemZl96KGHTMC6f/9+c+EEve3bt0+aNGli9rlj3LhxMnToUBkyZIgkJCSYoDYqKspcgMERDV7j4uLyb3XqMF0PAAC815q9J/MD11EzN8jtU5bJxa//KrM3HPZ01wJzZva3336TZcuWSfXq1fO31ahRQ1577TW56KKLXD5Odna2rF69WkaNGpW/LTg4WHr37i1Lly51+LhTp05Jo0aNJC8vTzp16iSvvPKKtGnTxm7brKwsc7NKTU01X3NycsytvFmfoyKey9cwNvYxLo4xNvYxLo4xNvYxLhU7NnM2HpUHp60TS6HtR1IyZdina2Tibe2lXxvvnpjLqeD3jDvPU6JgNiIiQtLS0uwGmeHh4S4f5/jx4ybPtvDMqt7fsmWL3cdoWoPO2rZr105SUlLkzTfflAsvvFA2btwo9evXL9Je0x/Gjh1bZPvcuXPNDHBFmTdvXoU9l69hbOxjXBxjbOxjXBxjbOxjXMp/bPIsImPXhJwLZAumFJzdZpFnZ66VnD254gsZB/Mq6D2TkZFRvsHsNddcI/fee6+8//770rVrV7Nt+fLl8s9//lOuu+46KU89evQwNysNZPVSuu+++668+OKLRdrrrK/m5NrOzGpub9++fU3ubUV8stAffJ8+fSQsjLpythgb+xgXxxgb+xgXxxgb+xiXihub5btPSPKyVcW0CJLkbJFaCd2lW5P/nfEO9PdM6rkz6eUWzP773/82pbo0qLS+oDNnzphAdsKECS4fp2bNmhISEiJHjx4tsF3vay6sK/T5O3bsaBalOZpF1pu9x1XkL3BFP58vYWzsY1wcY2zsY1wcY2zsY1zKf2ySMs643M4XfhZhFfSecec5gksSIcfGxsp3330n27Ztk6+++srctLqAlueKiYlx+ck1JaFz584yf/78/G2aB6v3bWdfi6NpCuvXr5f4+HiXnxcAAKAi1K4aWabtUMrL2R4+fNiUy+rVq5fMnDlTmjdvbm6loSkAOsvbpUsXk7KgpbnS09NNdQM1aNAgqVevnsl9VS+88IJ0797dPG9ycrK88cYbsnfvXvnHP/5Rqn4AAACUNS2/FR8TaRZ7FV4ApjRNNi4m0rRDOQezVapUkaSkJBPMLly4sMxWs916661y7NgxGT16tBw5ckQ6dOggs2fPzl8UpiW/tMKB1cmTJ00pL22rAbbO7C5ZssSU9QIAAPAmWo5rzLUJpmqBBq62Aa11vZfup95sBQSzWi7r8ssvN4ut1I033uiwcsGvv/7qVieGDx9ubvZo4GzrX//6l7kBAAD4givbxss7AzvJ2B82yeGUzPzt1auEy8s3tDX7UQHB7KeffiofffSR7Ny509SZ1bquFVnaCgAAwFdpwNonIU5W7D4hr8zaJOsPpsrQnk0IZCsymK1UqZIpvaVWrVolr7/+ulkIBgAAAOc0lUAva3tNu7ommF2zN9nTXQrcy9kuWLAgP5D9448/ClxhCwAAAI51aVzNfF2z76RYLPaWhaHcg1lbV111lRw8eLC0hwEAAAgIberGSHhIsBw/lS17k1y/0hXKKZjlEwUAAIDrIsNC5Pz6Z+vyr9570tPd8XmlDmYBAADgns6NzqYarCKY9Xww++677+bXhAUAAIDrwewagtmKq2bgyIABA0rfCwAAgADSqeHZYHZbYpqknM6RmEphnu5SYMzMJiYmFri/du1acynaiy66SG6++eYiFzgAAABAUbWqRkijGlGiS4/+3MfsbIUFs/Hx8fkBrV5CtmvXrrJ3714TzKampkqfPn3k999/L1WHAAAAAgGpBh5IM7CtXPD888/LnXfeKe+//37+tkceeUTGjh0r8+fPL6PuAQAA+G8wO3PNQRaBeWoB2IYNG2To0KEFtun9v/76q7R9AgAA8HtdGlU3X9fuT5YzuXme7k7gBLNpaWkmpSAyMlIiIiIK7NNtGRkU/wUAAHDmvNpVpGpkqGRk58qWI2me7k7gBLMtWrSQatWqyZ49e2TVqlUF9m3cuFHq1q1blv0DAADwS8HBQflVDbh4QgXlzC5YsKDIgjBbu3fvlnvvvbcU3QEAAAisvNnfth0zebODL2zs6e74fzB76aWXFrv/4YcfLm1/AAAAAkYXKhpUXJqBbSUDAAAAlF77BrESHCRyMPm0HE457enu+Hcw26ZNG5k2bZpkZ2cX22779u0ybNgwee2118qifwAAAH6rckSotI6PNt+TN1vOaQYTJ06UJ598Uu6//35zcYQuXbqYxV5aweDkyZOyadMmWbx4sVkENnz4cBPQAgAAwHmqwcZDqbJqz0m5ph0L6cstmL3iiitM9QINWKdPny6fffaZufrX6dOnpWbNmtKxY0cZNGiQ3HHHHabaAQAAAJzr1KiafLR0r6zhsrblvwBMXXzxxeYGAACA0uvS+OzFE3R2NiP7jESFux2eBbQSXwEMAAAApVc3JlLioiMlN88i6/aneLo7PodgFgAAwIOCgoKkc+NzJbpINXAbwSwAAICHdT53JbBVe054uis+h2AWAADAw7rkz8wmS14etf3dQTALAADgYVprNjIsWFJO58jOY6c83R3/DWa1FNe7776bf+GESZMmlVe/AAAAAkZYSLC0rx9rvufiCeUYzGoNWa01e8MNN5iAVmvNAgAAoOxSDVYRzLrFrUJmZ86ckSlTpsisWbPkgQcecO+ZAAAA4FDnRufyZglmy29mNjr67LWD+/fvL40aNZJ169a592wAAACwq9O5iga7jqdL0qksT3fHP2dmhw8fbmZnQ0ND5ZlnnpEqVaqUX88AAAACSGxUuDSvXUV2JJ4yVQ36JNTxdJf8b2b2uuuuM4GstcDvI488UqSN5tQCAADAfV3OpRqs2ku92XItzXXq1Ck5ffp0gW1r166Va6+9Vrp161aSQwIAAAS8TuTNlm8wu3//funRo4fExMSY24gRIyQjI0MGDRpkgtjKlSvLkiVL3O8FAAAA8heBrTuQItln8jzdHf/LmX3iiSckMzNTJkyYIDNnzjRfFy1aZALZnTt3Sv369cuvpwAAAH6uac3KUi0qTE5m5MiGQyn5i8JQRsHs77//boLY7t27yy233CJxcXGm9qy93FkAAAC4R9ck6ezsL5sTTaoBwWwZpxkcPXpUmjRpYr6vXbu2REVFyVVXXeXOIQAAAFCMzo2qm6+r9pA3Wy4LwIKDgwt8Hx4e7u4hAAAA4CRvdvW+k2KxWDzdHf9KM9ABbdGihZkCt1Y16NixY4EAV504QTkJAACAkmhXP0bCQoLkWFqW7D9xWhrWiPJ0l/wnmP3ggw/KrycAAACQyLAQaVM3RtbuT5bV+04QzJZlMDt48GB3mgMAAKCEF0/QYPanvw5LcFCQ1K4aKV2bVJeQ4LNnx1HCYBYAAADlzxqzalUDvan4mEgZc22CXNk23rOd84crgAEAAKB8zN5wWN5btLvI9iMpmTLs0zVmP/6HYBYAAMBL5OZZZOwPm+zus9Y10P3aDmcRzAIAAHiJFbtPyOGUTIf7NYTV/doOZxHMAgAAeInEtMwybRcISrQALDc3Vz788EOZP3++JCYmSl5eXoH9v/76a1n1DwAAIGBo1YKybBcIShTMPvzwwyaYvfrqq6Vt27b5F1EAAABAyWn5La1aoIu97GXFasQVF3O2TBdKEcxOmzZNvvzyS+nfv39JHg4AAAA7tI6slt/SqgUauNoGtNapQ91PvdlS5syGh4dL8+bNS/JQAAAAFEPryL4zsJOZgbWl93U7dWbLIJh97LHHZMKECWKxUBYCAACgrGnAuvjJXvJ43xbmft2YSHOfQLaM0gwWL14sCxYskJ9//lnatGkjYWFhBfbPnDmzJIcFAADAOZpKcHvXhvLm3G1yKCVT0jJzJDYq3NPd8o9gNjY2Vm688cay7w0AAADy1agSIY1rRMmepAz5c3+yXN6ytqe75B/B7AcffFD2PQEAAEARnRpWOxvM7j1JMGsHF00AAADwYh0bVTNf1+xL9nRX/CuY/eqrr+SWW26R7t27S6dOnQrc3DVp0iRp3LixREZGSrdu3WTFihUulwjTGrc33HBDCV4BAACA9+vUMNZ8Xbs/WXLzWHxfJsHsv//9bxkyZIjUqVNH/vzzT+natavUqFFDdu3aJVdddZVbx5o+fbqMGDFCxowZI2vWrJH27dtLv379zJXFirNnzx55/PHHpWfPniV5CQAAAD6hZZ2qEhUeIqeyzsj2xDRPd8c/gtn//Oc/8t5778nEiRNNzdmRI0fKvHnz5KGHHpKUlBS3jjVu3DgZOnSoCY4TEhJk8uTJEhUVJVOnTi32crp33HGHjB07Vpo2bVqSlwAAAOATQkOCpX39s7Oza/aSalAmC8D27dsnF154ofm+UqVKkpZ29lPCnXfeadIO3n77bZeOk52dLatXr5ZRo0blbwsODpbevXvL0qVLHT7uhRdekNq1a8s999wjixYtKvY5srKyzM0qNTXVfM3JyTG38mZ9jop4Ll/D2NjHuDjG2NjHuDjG2NjHuPje2HSoHy1LdyXJqj1J8vdO8X4/LjluPE+Jgtm4uDg5ceKENGrUSBo2bCjLli0z6QG7d+9260IKx48fN7Osmq5gS+9v2bLFYY3b999/X9auXevSc7z66qtmBrewuXPnmhngiqIz17CPsbGPcXGMsbGPcXGMsbGPcfGdsTlzUi9fGyKLNx+UWbP2+f24ZGRklG8w26tXL/n++++lY8eOJj3g0UcfNQvCVq1aJX/729+kvOgMsM7+TpkyRWrWrOnSY3TWV3NybWdmGzRoIH379pXo6GipiE8W+oPv06dPkYtLBDrGxj7GxTHGxj7GxTHGxj7GxffGpnt6tkx5baEkZgbJhZf1kdioML8el9RzZ9LLLZjVfNm8vDzz/QMPPGAWfy1ZskSuu+46ue+++1w+jgakISEhcvTo0QLb9b7O/ha2c+dOs/Dr2muvzd9m7UdoaKhs3bpVmjVrVuAxERER5laY/iAq8k1a0c/nSxgb+xgXxxgb+xgXxxgb+xgX3xmbOrFh0qRmZdl9PF02HD4ll7eq7dfjEubGc5QomNW8Vr1Z3XbbbebmLl081rlzZ5k/f35+eS0NTvX+8OHDi7Rv1aqVrF+/vsC2Z5991szYTpgwwcy4AgAA+KOODWNNMLtm30mPBbN+VWdWF14NHDhQevToIQcPHjTbPvnkE5PT6g5NAdC0gY8++kg2b94sw4YNk/T0dJO+oAYNGpS/QEzr0LZt27bATS+tW7VqVfO9BscAAAD+eiUwpcEsShnMfv3116YWrFYy0Dqz1moBWpbrlVdecetYt956q7z55psyevRo6dChg1nYNXv27PxFYVo54fDhwyXpJgAAgN8Fs2v3cfGEUqcZvPTSS6YerM6a6lW4rC666CKzz12aUmAvrUAtXLiw2Md++OGHbj8fAACAr2kZV1Uqh4dIenaubDuaJq3jy38hu9/OzOpCq0suuaTI9piYGElOppgvAABAWQsJDpL2Dc5dPIFUg9IFs1ppYMeOHUW2a74sV+QCAAAo57xZrgRWumBWLz/78MMPy/LlyyUoKEgOHTokn332mTz++ONmARcAAADKXqdGZ2dm/2RmtnQ5s0899ZQpoXXFFVeYKzRoyoHWctVg9sEHHyzJIQEAAOBExwZnZ2Z3HU+Xk+nZUq0ylZxKNDOrs7HPPPOMuaTthg0bzOVsjx07Ji+++GLZ9xAAAACGBq9Na1Y23/+5n9nZEs/MWmld14SEhLL56QAAAMCpjg2rmZnZP/clS69WZ0uZBjK3gtm7777bpXZTp04taX8AAADgJG/26zUHqGhQkmBWa7o2atRIOnbsKBYLxXoBAAA8ffGEkOAgCWRuBbNaqeCLL76Q3bt3m8vN6uVsq1evXn69AwAAQAEt6lSVKhGhcirrDBdPcHcB2KRJk8ylZUeOHCk//PCDNGjQQG655RaZM2cOM7UAAAAVdvGEGPP9GlIN3K9moCW4br/9dpk3b55s2rRJ2rRpI/fff780btxYTp06VT69BAAAQD4unlDK0lz5Dw4ONmW6dFY2Nze3NIcCAACAm8Hsn8zMuh/MZmVlmbzZPn36SIsWLWT9+vXy9ttvy759+6RKlSrl00sAAADk69gwtsDFEwKZWwvANJ1g2rRpJldWy3RpUFuzZs3y6x0AAACKiI0Kl6a1KsuuY+nm4gmBXG/WrWB28uTJ0rBhQ2natKn89ttv5mbPzJkzy6p/AAAAcJBqsOtYusmbJZh10aBBg0yOLAAAADwfzH61mosnuH3RBAAAAHjHlcDUuv2BffGEUlUzAAAAgGecV/vsxRPSs3Nl65E0CVQEswAAAD6IiyecRTALAADg6xdP2EcwCwAAAJ+9eEKyBCqCWQAAAB+/eMLu4+lyIkAvnkAwCwAA4OMXTwjkS9sSzAIAAPiwTgGeN0swCwAA4A/B7N7AzJslmAUAAPCHiyccSJYzuXkSaAhmAQAAfPziCZXDQyQjO1fe/X2XLN2ZZK4IFijcupwtAAAAvMu8TUckJ/ds8PrGnK3ma3xMpIy5NkGubBsv/o6ZWQAAAB81e8NhGfbpGskulF5wJCXTbNf9/o5gFgAAwAdpKsHYHzaJvYQC6zbd7+8pBwSzAAAAPmjF7hNyOCXT4X4NYXW/tvNnBLMAAAA+KDHNcSBbkna+imAWAADAB9WuGlmm7XwVwSwAAIAP6tqkuqlaEORgv27X/drOnxHMAgAA+KCQ4CBTfksVDmit93W/tvNnBLMAAAA+6sq28fLOwE4SF1MwlaB65XCzPRDqzHLRBAAAAB92Zdt46ZMQZ6oW/N/sLfLn/mS5s0ejgAhkFTOzAAAAPi4kOEh6NKshN3aqZ+6v3ntSAgXBLAAAgJ/o0ujsYq81e0/KmUJXBfNXBLMAAAB+omVcVakaESrp2bmy5UiaBAKCWQAAAD9KN+jUqJr5fuUe/77ylxXBLAAAgB/peq6u7Ko9gZE3SzALAADgR7rYzMxaLBbxdwSzAAAAfqR9g1gJCwmSxLQs2X/itPg7glkAAAA/EhkWIu3qx5rvVwRA3izBLAAAgJ/p0vhsqsEqglkAAAD4mgvO1ZsNhIoGBLMAAAB+pvO5RWA7j6VL0qks8WcEswAAAH6mWuVwaVGnivl+lZ9f2pZgFgAAwA91aWytN+vfqQYEswAAAH7ognOLwFb6+cUTCGYBAAD80AXnZmY3HEyRjOwz4q8IZgEAAPxQvdhKEh8TKWfyLLJ2f7L4K4JZAAAAPxQUFGSTN+u/qQYEswAAAH6fN3tC/JVXBLOTJk2Sxo0bS2RkpHTr1k1WrFjhsO3MmTOlS5cuEhsbK5UrV5YOHTrIJ598UqH9BQAA8KW82TV7T8qZ3DzxRx4PZqdPny4jRoyQMWPGyJo1a6R9+/bSr18/SUxMtNu+evXq8swzz8jSpUvlr7/+kiFDhpjbnDlzKrzvAAAA3qxFnapSNTJU0rNzZcuRNPFHHg9mx40bJ0OHDjUBaUJCgkyePFmioqJk6tSpdttfdtllcuONN0rr1q2lWbNm8vDDD0u7du1k8eLFFd53AAAAbxYSHJR/NTB/TTUI9eSTZ2dny+rVq2XUqFH524KDg6V3795m5tUZi8Uiv/76q2zdulVef/11u22ysrLMzSo1NdV8zcnJMbfyZn2OinguX8PY2Me4OMbY2Me4OMbY2Me4BNbYdG4QIwu3HpPlu5JkYNf6PjEu7jxPkEUjQg85dOiQ1KtXT5YsWSI9evTI3z5y5Ej57bffZPny5XYfl5KSYh6nQWpISIj85z//kbvvvttu2+eff17Gjh1bZPvnn39uZoABAAD82c5UkX9vDJXoMIu80DlXgoLE62VkZMiAAQNMzBcdHe29M7MlVbVqVVm7dq2cOnVK5s+fb3JumzZtalIQCtNZX91vOzPboEED6du3r9PBKatPFvPmzZM+ffpIWFhYuT+fL2Fs7GNcHGNs7GNcHGNs7GNcAmtssnJy5Z0tv0pqjkjbHpdJo+pRXj8u1jPprvBoMFuzZk0zs3r06NEC2/V+XFycw8dpKkLz5s3N91rNYPPmzfLqq6/aDWYjIiLMrTD9QVTkm7Sin8+XMDb2MS6OMTb2MS6OMTb2MS6BMTZhYWHSrn6srN57UtYeSJPmdWK8flzceQ6PLgALDw+Xzp07m9lVq7y8PHPfNu3AGX2MbV4sAAAAipboWrnb/xaBeTzNQFMABg8ebGrHdu3aVcaPHy/p6emmuoEaNGiQyY/VmVelX7WtVjLQAHbWrFmmzuw777zj4VcCAADgvRdPmPybyMq9BLNl7tZbb5Vjx47J6NGj5ciRIyZtYPbs2VKnTh2zf9++fSatwEoD3fvvv18OHDgglSpVklatWsmnn35qjgMAAICirOW5dh1Ll6RTWVKjStEUTF/l8WBWDR8+3NzsWbhwYYH7L730krkBAADANbFR4dKyTlXZejRNVu45KVe2dbw2ydd4/KIJAAAAKH9dGp+dnV3lZxdPIJgFAAAIpEVge0+KPyGYBQAACKCZ2Y0HUyQj+4z4C4JZAACAAFC/WpTUjYmUM3kWWbsvWfwFwSwAAECA6GJNNdjjP6kGBLMAAAABVG9WrfKjerMEswAAAAHigiZnZ2bX7D0pZ3LzxB8QzAIAAASIFrWrStXIUEnPzpXNh9PEHxDMAgAABIjg4CDpcu5qYCv9pN4swSwAAEAALgKbs/GwfLf2oCzdmSS5eRbxVV5xOVsAAABUDIvlbOC6fPdJc1PxMZEy5toEubJtvPgaZmYBAAACxOwNh+WtuduKbD+SkinDPl1j9vsaglkAAIAAkJtnkbE/bBJ7CQXWbbrf11IOCGYBAAACwIrdJ+RwSqbD/RrC6n5t50sIZgEAAAJAYlpmmbbzFgSzAAAAAaB21cgybectCGYBAAACQNcm1U3VgiAH+3W77td2voRgFgAAIACEBAeZ8luqcEBrva/7tZ0vIZgFAAAIEFe2jZd3BnaSuJiCqQR6X7f7Yp1ZLpoAAAAQQK5sGy99EuJk2a4k+cdHq+R0Tq5MuK2jz6UXWDEzCwAAEGBCgoPkouY15fJWtcx9DWx9FcEsAABAgLq4+dlgdvH24+KrCGYBAAAC1MXNa5qva/adlFNZZ8QXEcwCAAAEqIY1oqRh9Sg5k2eRFbt9M9WAYBYAACCAXXRudnaRj6YaEMwCAAAEsJ7n1fTpvFmCWQAAgAB2YbMaEhQksj3xlBxNzRRfQzALAAAQwGKjwuX8ejE+OztLMAsAABDgLj6XN/vHDoJZAAAA+Ggwu3jHcbFYLOJLCGYBAAACXOfG1SQyLFgS07Jk29FT4ksIZgEAAAJcRGiIdG1SI3921pcQzAIAAEAubn4umN1+THwJwSwAAADk4ua1zNflu09I9pk88RUEswAAAJBWcVWlZpVwycjOlT/3nRRfQTALAAAACQ4Okgub/a+qga8gmAUAAIBxsfXStgSzAAAA8NV6s+v2J0vK6RzxBQSzAAAAMOrGVpKmtSpLnkVk6c4k8QUEswAAAMjX08cubUswCwAAgHwX2Vza1hcQzAIAACBf92Y1JCQ4SHYfT5cDJzPE2xHMAgAAIF90ZJh0aBDrM6kGBLMAAACwm2qwaDvBLAAAAHxMz3P1ZpfsTJI8LW3gxQhmAQAAUICmGVQOD5ET6dmy6XCqeDOCWQAAABQQFhIs3ZvW8ImqBgSzAAAAcHhpW29fBEYwCwAAAIeXtl2x+4Rk5eSKtyKYBQAAQBHNa1eROtERknUmT1bvSxZvRTALAACAIoKCguTi5rXM93/sTBJvRTALAAAAuy4+7+wiMIJZAAAA+OzFEzYeSpM/jgTJ8t0nJNfL6s6GeroDAAAA8E5r9p6U0OAgOZNnkS93h8iXu1dJfEykjLk2Qa5sGy/egJlZAAAAFDF7w2EZ9ukaE8jaOpKSabbrfm/gFcHspEmTpHHjxhIZGSndunWTFStWOGw7ZcoU6dmzp1SrVs3cevfuXWx7AAAAuEdTCcb+sEnsJRRYt+l+b0g58HgwO336dBkxYoSMGTNG1qxZI+3bt5d+/fpJYmKi3fYLFy6U22+/XRYsWCBLly6VBg0aSN++feXgwYMV3ncAAAB/tGL3CTmckulwv4awul/bSaAHs+PGjZOhQ4fKkCFDJCEhQSZPnixRUVEydepUu+0/++wzuf/++6VDhw7SqlUr+e9//yt5eXkyf/78Cu87AACAP0pMyyzTdn67ACw7O1tWr14to0aNyt8WHBxsUgd01tUVGRkZkpOTI9WrV7e7Pysry9ysUlNTzVd9jN7Km/U5KuK5fA1jYx/j4hhjYx/j4hhjYx/j4hhjc1aNqFCX25XHWLlzzCCLxeKxZIdDhw5JvXr1ZMmSJdKjR4/87SNHjpTffvtNli9f7vQYOks7Z84c2bhxo8m5Lez555+XsWPHFtn++eefmxlgAAAAFKSpsGPXhEhytt4LkqIsEhsuMqZTrgTb211KOlk5YMAASUlJkejoaP8tzfXaa6/JtGnTTB6tvUBW6ayv5uTazsxa82ydDU5ZfbKYN2+e9OnTR8LCwsr9+XwJY2Mf4+IYY2Mf4+IYY2Mf4+IYY/M/YY2PyoPT1pnvbWc+z8auQfLS39pLvzZ1pDxYz6S7wqPBbM2aNSUkJESOHj1aYLvej4uLK/axb775pglmf/nlF2nXrp3DdhEREeZWmL5BK/JNWtHP50sYG/sYF8cYG/sYF8cYG/sYF8cYG5FrOtSX0NAQU7XAdjFYXAXUmXVn7D0azIaHh0vnzp3N4q0bbrjBbLMu5ho+fLjDx/3f//2fvPzyyya9oEuXLhXYYwAAgMBxZdt46ZMQJ0t3JMrcRculb89u0qN5bQkpj9yCEvJ4moGmAAwePNgEpV27dpXx48dLenq6qW6gBg0aZPJqX331VXP/9ddfl9GjR5ucV61Ne+TIEbO9SpUq5gYAAICyo4FrtybVJWmzxXz1pkDWK4LZW2+9VY4dO2YCVA1MteTW7NmzpU6dszkY+/btMxUOrN555x1TBeHmm28ucBytU6uLvQAAABA4PB7MKk0pcJRWoIu7bO3Zs6eCegUAAABv5/GLJgAAAAAlRTALAAAAn0UwCwAAAJ9FMAsAAACfRTALAAAAn0UwCwAAAJ9FMAsAAACf5RV1ZiuSxWIxX1NTUyvk+XJyciQjI8M8X6Bf47kwxsY+xsUxxsY+xsUxxsY+xsUxxsY7xsUap1njtuIEXDCblpZmvjZo0MDTXQEAAICTuC0mJqa4JhJkcSXk9SN5eXnSokULWb16tQQFFb228AUXXCArV650aXvhbbb3rd/rJwsNnPfv3y/R0dFl+loc9bU07Ytr48oY2Nvm6H55jY274+LKY9wdF3vbnY0V7xnfec+Ux7jY2+5r4+LqY3jPuN+G94zrf5tL8zdbecvYBPrvksViMYFs3bp1JTi4+KzYgJuZ1QEJDw93GOWHhITY/SHZ2154m+39wvv0+7IOTBz1tTTti2vjyhjY2+bsflmPjbvj4spj3B0Xe9udjRXvGd95z5THuNjb7mvj4upjeM+434b3jOt/m8vib7Y3jA2/S+J0RjagF4A98MADbu+zt73wNtv7xT1HWXH3OVxp7+7YuDsurvajNEpyfGePKYv3jLOx4j3j+n1/HBd7231tXFx9DO8Z99vwnnmg1Nv5my1+8btkT8ClGVQ0nZbXTxYpKSllPsvm6xgb+xgXxxgb+xgXxxgb+xgXxxgb3xuXgJyZrUgREREyZswY8xUFMTb2MS6OMTb2MS6OMTb2MS6OMTa+Ny7MzAIAAMBnMTMLAAAAn0UwCwAAAJ9FMAsAAACfRTALAAAAn0UwCwAAAJ9FMOuFMjIypFGjRvL44497uiteITk5Wbp06SIdOnSQtm3bypQpUzzdJa+hlxW87LLLJCEhQdq1ayczZszwdJe8xo033ijVqlWTm2++WQLdjz/+KC1btpTzzjtP/vvf/3q6O16D94h9/L9iH3+LvDd2oTSXF3rmmWdkx44d5hrIb775pgS63NxcycrKkqioKElPTzf/iaxatUpq1Kghge7w4cNy9OhR85/rkSNHpHPnzrJt2zapXLmyBLqFCxea63p/9NFH8tVXX0mgOnPmjAlKFixYYAqe63tkyZIl/P7wHnGI/1fs42+R98YuzMx6me3bt8uWLVvkqquu8nRXvIZet1n/81D6H4l+/uIz2Fnx8fHmD46Ki4uTmjVryokTJzzdLa+gM0tVq1aVQLdixQpp06aN1KtXT6pUqWL+b5k7d66nu+UVeI/Yx/8r9vG3yHtjF4JZN/z+++9y7bXXSt26dSUoKEi+/fbbIm0mTZokjRs3lsjISOnWrZv5Q+IOnZ5/9dVXxZdUxLjo6Z327dtL/fr15YknnjD/ufqCihgbq9WrV5uZA/1U7O0qclx8XWnH6tChQyaQtdLvDx48KL6O91DFjI0v/b9SEePiq3+LyntcPB27EMy6QU8r6JtYf6j2TJ8+XUaMGGEu97ZmzRrTtl+/fpKYmJjfxpprU/imf3C+++47adGihbn5kvIeFxUbGyvr1q2T3bt3y+eff25OgfmCihgbpbMmgwYNkvfee098QUWNiz8oi7HyR4xL+Y+Nr/2/UhHj4qt/i8pzXLwidtGcWbhPh+6bb74psK1r166WBx54IP9+bm6upW7dupZXX33VpWM+9dRTlvr161saNWpkqVGjhiU6OtoyduxYS6CPS2HDhg2zzJgxw+JrymtsMjMzLT179rR8/PHHFl9Unu+ZBQsWWG666SaLvyjJWP3xxx+WG264IX//ww8/bPnss88s/qQ07yF/e4+U1dj4+v8rFfH/jq/+LSrrcfGG2IWZ2TKSnZ1tTsf07t07f1twcLC5v3TpUpeOoVP0uop0z549Jnl66NChMnr0aAn0cdFPvrpIQ6WkpJhTIroy29eVxdjo/z133XWX9OrVS+68807xB2UxLoHClbHq2rWrbNiwwaQWnDp1Sn7++Wczq+LPeA+Vbmz88f+VshgXf/1bVNpx8YbYhWC2jBw/ftzkFdWpU6fAdr2vq0EDVVmMy969e6Vnz57m1IZ+ffDBB+X8888XX1cWY/PHH3+YU0Ca46Sn3fW2fv168WVl9buk/9n+/e9/l1mzZpn8Nn8MYlwZq9DQUHnrrbfk8ssvN++Pxx57zO9XX7v6HgqE90hJxsYf/18pi3Hx179F/hDbhHq6A7BPPxVD8meW1q5d6+lueKWLL75Y8vLyPN0Nr/TLL794ugte47rrrjM3FMR7xD7+X7GPv0XeG7swM1tGdEWjlu0onAyu97W0SaBiXBxjbOxjXFzHWNnHuDjG2NjHuPj2uBDMlpHw8HBTWHr+/Pn52/STrd7v0aOHBCrGxTHGxj7GxXWMlX2Mi2OMjX2Mi2+PC2kGbtDFE3p1CystzaGnHKpXry4NGzY0pSsGDx5sLnenpyPGjx9vSl4MGTJE/Bnj4hhjYx/j4jrGyj7GxTHGxj7GxY/HpUJrJ/g4LeGiQ1b4Nnjw4Pw2EydOtDRs2NASHh5uylksW7bM4u8YF8cYG/sYF9cxVvYxLo4xNvYxLv47LkH6j6cDagAAAKAkyJkFAACAzyKYBQAAgM8imAUAAIDPIpgFAACAzyKYBQAAgM8imAUAAIDPIpgFAACAzyKYBQAAgM8imAUAEVm4cKEEBQVJcnKyy495/vnnpUOHDuXSn6SkJKldu7bs2bOnxP3zNiV5Dd27d5evv/66XPsFwLcRzAIIGEuXLpWQkBC5+uqrxdu9/PLLcv3110vjxo0lkD377LPy1FNPSV5enqe7AsBLEcwCCBjvv/++PPjgg/L777/LoUOHxFtlZGSYvt5zzz0S6K666ipJS0uTn3/+2dNdAeClCGYBBIRTp07J9OnTZdiwYWZm9sMPPyy2ve6PjY2Vb7/9Vs477zyJjIyUfv36yf79+4u0/eSTT8wMakxMjNx2220m+LKaPXu2XHzxxeZYNWrUkGuuuUZ27txZ7HPPmjVLIiIizCn24ujp9zZt2pi2+vxvvfVWgf2HDx82r7VSpUrSpEkT+fzzz0278ePHF5sK0LVrV6lcubLp80UXXSR79+7N3//DDz/IBRdcYMajZs2acuONNxYYhy5dukjVqlUlLi5OBgwYIImJicW+hsWLF0vPnj1NHxs0aCAPPfSQpKen5+/XmfT+/fvLtGnTij0OgMBFMAsgIHz55ZfSqlUradmypQwcOFCmTp0qFovF6Qypnu7/+OOP5Y8//jC5nhqs2tLAVAPeH3/80dx+++03ee211/L3a2A2YsQIWbVqlcyfP1+Cg4NNAFjcafNFixZJ586di+3b6tWr5ZZbbjH9Wb9+vcnffe655woE6YMGDTIz0BqgauD73nvvFRtcnjlzRm644Qa59NJL5a+//jJpGffee6/Jc1U//fST6bsGl3/++ad5PRr4WuXk5MiLL74o69atM2Oi+b533XWXw+fTsbvyyivlpptuMs+nHzY0uB0+fHiBdvocOiYAYJcFAALAhRdeaBk/frz5Picnx1KzZk3LggUL8vfr9/pf4smTJ839Dz74wNxftmxZfpvNmzebbcuXLzf3x4wZY4mKirKkpqbmt3niiScs3bp1c9iPY8eOmWOsX7/eYZvrr7/ecvfddxfYVrh/AwYMsPTp06dAG33uhISEAn1duXJl/v7t27ebbf/617/sPm9SUpLZv3DhQrv7e/ToYbnjjjssrtLn1uOlpaXZfQ333HOP5d577y3wmEWLFlmCg4Mtp0+fzt/23XffmW25ubkuPzeAwMHMLAC/t3XrVlmxYoXcfvvt5n5oaKjceuutJi+1ONpOT6lb6cyunnrfvHlz/jY9ba+n1a3i4+MLzH5u377dPG/Tpk0lOjo6f0HXvn37HD7v6dOnzWn84mgfNAXAlt7X58vNzTWvWfvfqVOn/P3NmzeXatWqOTxm9erVzUyqplNce+21MmHCBJOqYLV27Vq54oorip0t1sc1bNjQjInO8Bb3WnUGV2eSq1Spkn/T59ZZ6927d+e30xQE3ZaVlVXsmAAITASzAPyeBq16Cr1u3bomwNPbO++8Y069p6SklOrYYWFhBe7rKXnbFAIN7k6cOCFTpkyR5cuXm5vKzs52eEzNRT158qR4wgcffGDSCy688EJz2r9FixaybNmy/KDSEU2n0EBUA/bPPvtMVq5cKd98802xr1XzmO+77z4TJFtvGuBqQN6sWbP8djp+msNb3PMDCFwEswD8mgaxmvOqi6MKB00a3H7xxRfFPlZzXa10tlPzZlu3bu1yrVh9jJaX0hlNfZwrQWrHjh1l06ZNxbbRY2kery29r8GnLprS3GDtv+a2Wu3YscPl5x81apQsWbJE2rZtaxaOqXbt2pk8WXu2bNliXq/mC+uCLp3Fdrb4S2eN9XXqjHHhW3h4eH67DRs2mD4BgD0EswD8mi7K0gBOy1xpYGZ704VHxaUa6KyrlvLS2VQ9ha6n4LXCgO2ip+LoKX2tYKALrzSQ/PXXX81iMGd0hnPjxo3FBp6PPfaYCSx1wdW2bdvko48+krffflsef/xxs1+Dyd69e5sFXJpioUGtfq+zm9YFXYXpqX0NYnVmVisYzJ0718ySWoP3MWPGmOBfv2qagy48e/31180+TS3QAHTixImya9cu+f77703fivPkk0+agFkXfOkHDH2u7777rsgCMF381bdvX6fjBiAwEcwC8GsarGpQp2WzCtNgVmdedSW9PVFRUSbg0hJTmo+qOZ166t1VWrlAS0ppIKzB86OPPipvvPGG08edf/75ZtZSKzA4Yt2vx9djjx49Wl544YUC1QN0RrpOnTpyySWXmCoEQ4cONbmsjvJx9fXqDKuOi87wavD7wAMPmFQAddlll8mMGTNMoKpXPuvVq5cJlFWtWrVM/qvuT0hIMDO0b775ZrGvU2d6tfqDBuM6m6uzr/o6dMbc6uDBgybgHTJkiNNxAxCYgnQVmKc7AQDeRgOzRx55xGOXj9UyWE888YQ5xa5BcVk4cOCAqeX6yy+/FLuQy5vohwmdodbZbQCwJ9TuVgCAR+nFDvS0u85MagBaEprWoIusdKZXqxKMHDnSVFPQmVpfUbt2bZdSMwAELoJZAPBSOjNcGnoRg6efftrksGp6gVYo0EoDhSsweDPNDQaA4pBmAAAAAJ/FAjAAAAD4LIJZAAAA+CyCWQAAAPgsglkAAAD4LIJZAAAA+CyCWQAAAPgsglkAAAD4LIJZAAAA+CyCWQAAAIiv+n92YBm9yiWjzAAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Максимальный R²: 0.7344\n", "Лучшее alpha: 51.79474679231202\n" ] } ], "source": [ "import matplotlib.pyplot as plt\n", "from sklearn.linear_model import Ridge\n", "from sklearn.preprocessing import StandardScaler\n", "from sklearn.pipeline import make_pipeline\n", "from sklearn.model_selection import cross_val_score\n", "import numpy as np\n", "\n", "# Сетка значений alpha\n", "alphas = np.logspace(-4, 4, 50)\n", "r2_scores = []\n", "\n", "for alpha in alphas:\n", " lasso = make_pipeline(StandardScaler(), Ridge(alpha=alpha, random_state=42))\n", " scores = cross_val_score(lasso, X_train, y_train, cv=5, scoring='r2')\n", " r2_scores.append(np.mean(scores))\n", "\n", "# Построим график\n", "plt.figure(figsize=(8,5))\n", "plt.semilogx(alphas, r2_scores, marker='o')\n", "plt.xlabel(\"Alpha (log scale)\")\n", "plt.ylabel(\"Mean R² (5-fold CV)\")\n", "plt.title(\"Зависимость R² от alpha в Ridge\")\n", "plt.grid(True)\n", "plt.show()\n", "\n", "max_idx = np.argmax(r2_scores)\n", "max_r2 = r2_scores[max_idx]\n", "best_alpha = alphas[max_idx]\n", "\n", "print(f\"Максимальный R²: {max_r2:.4f}\")\n", "print(f\"Лучшее alpha: {best_alpha}\")\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "colab": { "provenance": [] }, "kernelspec": { "display_name": "Python 3", "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.6" } }, "nbformat": 4, "nbformat_minor": 0 }