{
"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": [
"
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.
\n",
"
\n",
" \n",
" Parameters\n",
"
\n",
" \n",
" \n",
"
\n",
"
\n",
"
fit_intercept
\n",
"
True
\n",
"
\n",
" \n",
"\n",
"
\n",
"
\n",
"
copy_X
\n",
"
True
\n",
"
\n",
" \n",
"\n",
"
\n",
"
\n",
"
tol
\n",
"
1e-06
\n",
"
\n",
" \n",
"\n",
"
\n",
"
\n",
"
n_jobs
\n",
"
None
\n",
"
\n",
" \n",
"\n",
"
\n",
"
\n",
"
positive
\n",
"
False
\n",
"
\n",
" \n",
" \n",
"
\n",
" \n",
"
\n",
"
"
],
"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+1lYo0aN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",
"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
}