From 767f121bdcb7bcf1c648b46fe50f7fa89123afc4 Mon Sep 17 00:00:00 2001 From: Katya Date: Sun, 9 Jun 2024 00:18:44 +0200 Subject: [PATCH] Compute correlation matrix for numerical columns only, sort correlations for 'median_house_value' --- 02_end_to_end_machine_learning_project.ipynb | 9405 +++++++++++++----- 1 file changed, 6982 insertions(+), 2423 deletions(-) diff --git a/02_end_to_end_machine_learning_project.ipynb b/02_end_to_end_machine_learning_project.ipynb index 708f5a1f5..ab186dcc4 100644 --- a/02_end_to_end_machine_learning_project.ipynb +++ b/02_end_to_end_machine_learning_project.ipynb @@ -41,9 +41,12 @@ }, { "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:20:19.201412Z", + "start_time": "2024-06-08T21:20:18.748731Z" + } + }, "source": [ "# Python ≥3.5 is required\n", "import sys\n", @@ -77,7 +80,9 @@ " if tight_layout:\n", " plt.tight_layout()\n", " plt.savefig(path, format=fig_extension, dpi=resolution)" - ] + ], + "outputs": [], + "execution_count": 1 }, { "cell_type": "markdown", @@ -95,9 +100,12 @@ }, { "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:20:21.225588Z", + "start_time": "2024-06-08T21:20:21.221987Z" + } + }, "source": [ "import os\n", "import tarfile\n", @@ -115,29 +123,41 @@ " housing_tgz = tarfile.open(tgz_path)\n", " housing_tgz.extractall(path=housing_path)\n", " housing_tgz.close()" - ] + ], + "outputs": [], + "execution_count": 2 }, { "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:20:21.455322Z", + "start_time": "2024-06-08T21:20:21.265618Z" + } + }, "source": [ "fetch_housing_data()" - ] + ], + "outputs": [], + "execution_count": 3 }, { "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:20:21.603172Z", + "start_time": "2024-06-08T21:20:21.456148Z" + } + }, "source": [ "import pandas as pd\n", "\n", "def load_housing_data(housing_path=HOUSING_PATH):\n", " csv_path = os.path.join(housing_path, \"housing.csv\")\n", " return pd.read_csv(csv_path)" - ] + ], + "outputs": [], + "execution_count": 4 }, { "cell_type": "markdown", @@ -148,11 +168,34 @@ }, { "cell_type": "code", - "execution_count": 5, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:20:21.618975Z", + "start_time": "2024-06-08T21:20:21.603738Z" + } + }, + "source": [ + "housing = load_housing_data()\n", + "housing.head()" + ], "outputs": [ { "data": { + "text/plain": [ + " longitude latitude housing_median_age total_rooms total_bedrooms \\\n", + "0 -122.23 37.88 41.0 880.0 129.0 \n", + "1 -122.22 37.86 21.0 7099.0 1106.0 \n", + "2 -122.24 37.85 52.0 1467.0 190.0 \n", + "3 -122.25 37.85 52.0 1274.0 235.0 \n", + "4 -122.25 37.85 52.0 1627.0 280.0 \n", + "\n", + " population households median_income median_house_value ocean_proximity \n", + "0 322.0 126.0 8.3252 452600.0 NEAR BAY \n", + "1 2401.0 1138.0 8.3014 358500.0 NEAR BAY \n", + "2 496.0 177.0 7.2574 352100.0 NEAR BAY \n", + "3 558.0 219.0 5.6431 341300.0 NEAR BAY \n", + "4 565.0 259.0 3.8462 342200.0 NEAR BAY " + ], "text/html": [ "
\n", "
SimpleImputer(strategy='median')
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.
" ] }, "execution_count": 54, @@ -2428,20 +2697,25 @@ "output_type": "execute_result" } ], - "source": [ - "imputer.fit(housing_num)" - ] + "execution_count": 54 }, { "cell_type": "code", - "execution_count": 55, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:20:27.805347Z", + "start_time": "2024-06-08T21:20:27.803643Z" + } + }, + "source": [ + "imputer.statistics_" + ], "outputs": [ { "data": { "text/plain": [ - "array([-118.51 , 34.26 , 29. , 2119.5 , 433. , 1164. ,\n", - " 408. , 3.5409])" + "array([-118.51 , 34.26 , 29. , 2119. , 433. ,\n", + " 1164. , 408. , 3.54155])" ] }, "execution_count": 55, @@ -2449,9 +2723,7 @@ "output_type": "execute_result" } ], - "source": [ - "imputer.statistics_" - ] + "execution_count": 55 }, { "cell_type": "markdown", @@ -2462,14 +2734,21 @@ }, { "cell_type": "code", - "execution_count": 56, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:20:27.808489Z", + "start_time": "2024-06-08T21:20:27.805767Z" + } + }, + "source": [ + "housing_num.median().values" + ], "outputs": [ { "data": { "text/plain": [ - "array([-118.51 , 34.26 , 29. , 2119.5 , 433. , 1164. ,\n", - " 408. , 3.5409])" + "array([-118.51 , 34.26 , 29. , 2119. , 433. ,\n", + " 1164. , 408. , 3.54155])" ] }, "execution_count": 56, @@ -2477,9 +2756,7 @@ "output_type": "execute_result" } ], - "source": [ - "housing_num.median().values" - ] + "execution_count": 56 }, { "cell_type": "markdown", @@ -2490,30 +2767,62 @@ }, { "cell_type": "code", - "execution_count": 57, - "metadata": {}, - "outputs": [], + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:20:27.811293Z", + "start_time": "2024-06-08T21:20:27.809035Z" + } + }, "source": [ "X = imputer.transform(housing_num)" - ] + ], + "outputs": [], + "execution_count": 57 }, { "cell_type": "code", - "execution_count": 58, - "metadata": {}, - "outputs": [], + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:20:27.812860Z", + "start_time": "2024-06-08T21:20:27.811630Z" + } + }, "source": [ "housing_tr = pd.DataFrame(X, columns=housing_num.columns,\n", " index=housing.index)" - ] + ], + "outputs": [], + "execution_count": 58 }, { "cell_type": "code", - "execution_count": 59, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:20:27.816865Z", + "start_time": "2024-06-08T21:20:27.813219Z" + } + }, + "source": [ + "housing_tr.loc[sample_incomplete_rows.index.values]" + ], "outputs": [ { "data": { + "text/plain": [ + " longitude latitude housing_median_age total_rooms total_bedrooms \\\n", + "1606 -122.08 37.88 26.0 2947.0 433.0 \n", + "10915 -117.87 33.73 45.0 2264.0 433.0 \n", + "19150 -122.70 38.35 14.0 2313.0 433.0 \n", + "4186 -118.23 34.13 48.0 1308.0 433.0 \n", + "16885 -122.40 37.58 26.0 3281.0 433.0 \n", + "\n", + " population households median_income \n", + "1606 825.0 626.0 2.9330 \n", + "10915 1970.0 499.0 3.4193 \n", + "19150 954.0 397.0 3.7813 \n", + "4186 835.0 294.0 4.2891 \n", + "16885 1145.0 480.0 6.3580 " + ], "text/html": [ "
\n", "
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.
" ] }, "execution_count": 83, @@ -3571,27 +4007,16 @@ "output_type": "execute_result" } ], - "source": [ - "from sklearn.linear_model import LinearRegression\n", - "\n", - "lin_reg = LinearRegression()\n", - "lin_reg.fit(housing_prepared, housing_labels)" - ] + "execution_count": 83 }, { "cell_type": "code", - "execution_count": 84, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Predictions: [210644.60459286 317768.80697211 210956.43331178 59218.98886849\n", - " 189747.55849879]\n" - ] + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:20:27.927240Z", + "start_time": "2024-06-08T21:20:27.924324Z" } - ], + }, "source": [ "# let's try the full preprocessing pipeline on a few training instances\n", "some_data = housing.iloc[:5]\n", @@ -3599,8 +4024,18 @@ "some_data_prepared = full_pipeline.transform(some_data)\n", "\n", "print(\"Predictions:\", lin_reg.predict(some_data_prepared))" - ] - }, + ], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Predictions: [ 86208. 304704. 153536. 185728. 244416.]\n" + ] + } + ], + "execution_count": 84 + }, { "cell_type": "markdown", "metadata": {}, @@ -3610,48 +4045,60 @@ }, { "cell_type": "code", - "execution_count": 85, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:20:27.928898Z", + "start_time": "2024-06-08T21:20:27.927599Z" + } + }, + "source": [ + "print(\"Labels:\", list(some_labels))" + ], "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Labels: [286600.0, 340600.0, 196900.0, 46300.0, 254500.0]\n" + "Labels: [72100.0, 279600.0, 82700.0, 112500.0, 238300.0]\n" ] } ], - "source": [ - "print(\"Labels:\", list(some_labels))" - ] + "execution_count": 85 }, { "cell_type": "code", - "execution_count": 86, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:20:27.931234Z", + "start_time": "2024-06-08T21:20:27.929296Z" + } + }, + "source": [ + "some_data_prepared" + ], "outputs": [ { "data": { "text/plain": [ - "array([[-1.15604281, 0.77194962, 0.74333089, -0.49323393, -0.44543821,\n", - " -0.63621141, -0.42069842, -0.61493744, -0.31205452, -0.08649871,\n", - " 0.15531753, 1. , 0. , 0. , 0. ,\n", - " 0. ],\n", - " [-1.17602483, 0.6596948 , -1.1653172 , -0.90896655, -1.0369278 ,\n", - " -0.99833135, -1.02222705, 1.33645936, 0.21768338, -0.03353391,\n", - " -0.83628902, 1. , 0. , 0. , 0. ,\n", + "array([[-0.94135046, 1.34743822, 0.02756357, 0.58477745, 0.64037127,\n", + " 0.73260236, 0.55628602, -0.8936472 , 0.01739526, 0.00622264,\n", + " -0.12112176, 0. , 1. , 0. , 0. ,\n", " 0. ],\n", - " [ 1.18684903, -1.34218285, 0.18664186, -0.31365989, -0.15334458,\n", - " -0.43363936, -0.0933178 , -0.5320456 , -0.46531516, -0.09240499,\n", - " 0.4222004 , 0. , 0. , 0. , 0. ,\n", + " [ 1.17178212, -1.19243966, -1.72201763, 1.26146668, 0.78156132,\n", + " 0.53361152, 0.72131799, 1.292168 , 0.56925554, -0.04081077,\n", + " -0.81086696, 0. , 0. , 0. , 0. ,\n", " 1. ],\n", - " [-0.01706767, 0.31357576, -0.29052016, -0.36276217, -0.39675594,\n", - " 0.03604096, -0.38343559, -1.04556555, -0.07966124, 0.08973561,\n", - " -0.19645314, 0. , 1. , 0. , 0. ,\n", + " [ 0.26758118, -0.1259716 , 1.22045984, -0.46977281, -0.54513828,\n", + " -0.67467519, -0.52440722, -0.52543365, -0.01802432, -0.07537122,\n", + " -0.33827252, 0. , 1. , 0. , 0. ,\n", " 0. ],\n", - " [ 0.49247384, -0.65929936, -0.92673619, 1.85619316, 2.41221109,\n", - " 2.72415407, 2.57097492, -0.44143679, -0.35783383, -0.00419445,\n", - " 0.2699277 , 1. , 0. , 0. , 0. ,\n", + " [ 1.22173797, -1.35147437, -0.37006852, -0.34865152, -0.03636724,\n", + " -0.46761716, -0.03729672, -0.86592882, -0.59513997, -0.10680295,\n", + " 0.96120521, 0. , 0. , 0. , 0. ,\n", + " 1. ],\n", + " [ 0.43743108, -0.63581817, -0.13148926, 0.42717947, 0.27279028,\n", + " 0.37406031, 0.22089846, 0.32575178, 0.2512412 , 0.00610923,\n", + " -0.47451338, 1. , 0. , 0. , 0. ,\n", " 0. ]])" ] }, @@ -3660,19 +4107,29 @@ "output_type": "execute_result" } ], - "source": [ - "some_data_prepared" - ] + "execution_count": 86 }, { "cell_type": "code", - "execution_count": 87, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:20:27.959296Z", + "start_time": "2024-06-08T21:20:27.931591Z" + } + }, + "source": [ + "from sklearn.metrics import mean_squared_error\n", + "\n", + "housing_predictions = lin_reg.predict(housing_prepared)\n", + "lin_mse = mean_squared_error(housing_labels, housing_predictions)\n", + "lin_rmse = np.sqrt(lin_mse)\n", + "lin_rmse" + ], "outputs": [ { "data": { "text/plain": [ - "68628.19819848923" + "68633.40810776998" ] }, "execution_count": 87, @@ -3680,14 +4137,7 @@ "output_type": "execute_result" } ], - "source": [ - "from sklearn.metrics import mean_squared_error\n", - "\n", - "housing_predictions = lin_reg.predict(housing_prepared)\n", - "lin_mse = mean_squared_error(housing_labels, housing_predictions)\n", - "lin_rmse = np.sqrt(lin_mse)\n", - "lin_rmse" - ] + "execution_count": 87 }, { "cell_type": "markdown", @@ -3698,13 +4148,23 @@ }, { "cell_type": "code", - "execution_count": 88, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:20:28.041127Z", + "start_time": "2024-06-08T21:20:27.996019Z" + } + }, + "source": [ + "from sklearn.metrics import mean_absolute_error\n", + "\n", + "lin_mae = mean_absolute_error(housing_labels, housing_predictions)\n", + "lin_mae" + ], "outputs": [ { "data": { "text/plain": [ - "49439.89599001897" + "49448.131359011626" ] }, "execution_count": 88, @@ -3712,22 +4172,30 @@ "output_type": "execute_result" } ], - "source": [ - "from sklearn.metrics import mean_absolute_error\n", - "\n", - "lin_mae = mean_absolute_error(housing_labels, housing_predictions)\n", - "lin_mae" - ] + "execution_count": 88 }, { "cell_type": "code", - "execution_count": 89, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:20:28.245643Z", + "start_time": "2024-06-08T21:20:28.044301Z" + } + }, + "source": [ + "from sklearn.tree import DecisionTreeRegressor\n", + "\n", + "tree_reg = DecisionTreeRegressor(random_state=42)\n", + "tree_reg.fit(housing_prepared, housing_labels)" + ], "outputs": [ { "data": { "text/plain": [ "DecisionTreeRegressor(random_state=42)" + ], + "text/html": [ + "
DecisionTreeRegressor(random_state=42)
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.
" ] }, "execution_count": 89, @@ -3735,17 +4203,22 @@ "output_type": "execute_result" } ], - "source": [ - "from sklearn.tree import DecisionTreeRegressor\n", - "\n", - "tree_reg = DecisionTreeRegressor(random_state=42)\n", - "tree_reg.fit(housing_prepared, housing_labels)" - ] + "execution_count": 89 }, { "cell_type": "code", - "execution_count": 90, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:20:28.251122Z", + "start_time": "2024-06-08T21:20:28.246146Z" + } + }, + "source": [ + "housing_predictions = tree_reg.predict(housing_prepared)\n", + "tree_mse = mean_squared_error(housing_labels, housing_predictions)\n", + "tree_rmse = np.sqrt(tree_mse)\n", + "tree_rmse" + ], "outputs": [ { "data": { @@ -3758,12 +4231,7 @@ "output_type": "execute_result" } ], - "source": [ - "housing_predictions = tree_reg.predict(housing_prepared)\n", - "tree_mse = mean_squared_error(housing_labels, housing_predictions)\n", - "tree_rmse = np.sqrt(tree_mse)\n", - "tree_rmse" - ] + "execution_count": 90 }, { "cell_type": "markdown", @@ -3774,34 +4242,30 @@ }, { "cell_type": "code", - "execution_count": 91, - "metadata": {}, - "outputs": [], + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:20:29.657691Z", + "start_time": "2024-06-08T21:20:28.251613Z" + } + }, "source": [ "from sklearn.model_selection import cross_val_score\n", "\n", "scores = cross_val_score(tree_reg, housing_prepared, housing_labels,\n", " scoring=\"neg_mean_squared_error\", cv=10)\n", "tree_rmse_scores = np.sqrt(-scores)" - ] + ], + "outputs": [], + "execution_count": 91 }, { "cell_type": "code", - "execution_count": 92, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Scores: [70194.33680785 66855.16363941 72432.58244769 70758.73896782\n", - " 71115.88230639 75585.14172901 70262.86139133 70273.6325285\n", - " 75366.87952553 71231.65726027]\n", - "Mean: 71407.68766037929\n", - "Standard deviation: 2439.4345041191004\n" - ] + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:20:29.660262Z", + "start_time": "2024-06-08T21:20:29.658327Z" } - ], + }, "source": [ "def display_scores(scores):\n", " print(\"Scores:\", scores)\n", @@ -3809,31 +4273,50 @@ " print(\"Standard deviation:\", scores.std())\n", "\n", "display_scores(tree_rmse_scores)" - ] - }, - { - "cell_type": "code", - "execution_count": 93, - "metadata": {}, + ], "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Scores: [66782.73843989 66960.118071 70347.95244419 74739.57052552\n", - " 68031.13388938 71193.84183426 64969.63056405 68281.61137997\n", - " 71552.91566558 67665.10082067]\n", - "Mean: 69052.46136345083\n", - "Standard deviation: 2731.674001798342\n" + "Scores: [72831.45749112 69973.18438322 69528.56551415 72517.78229792\n", + " 69145.50006909 79094.74123727 68960.045444 73344.50225684\n", + " 69826.02473916 71077.09753998]\n", + "Mean: 71629.89009727491\n", + "Standard deviation: 2914.035468468928\n" ] } ], + "execution_count": 92 + }, + { + "cell_type": "code", + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:20:29.791322Z", + "start_time": "2024-06-08T21:20:29.660916Z" + } + }, "source": [ "lin_scores = cross_val_score(lin_reg, housing_prepared, housing_labels,\n", " scoring=\"neg_mean_squared_error\", cv=10)\n", "lin_rmse_scores = np.sqrt(-lin_scores)\n", "display_scores(lin_rmse_scores)" - ] + ], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Scores: [71800.38078269 64114.99166359 67844.95431254 68635.19072082\n", + " 66801.98038821 72531.04505346 73992.85834976 68824.54092094\n", + " 66474.60750419 70143.79750458]\n", + "Mean: 69116.4347200802\n", + "Standard deviation: 2880.6588594759014\n" + ] + } + ], + "execution_count": 93 }, { "cell_type": "markdown", @@ -3844,13 +4327,26 @@ }, { "cell_type": "code", - "execution_count": 94, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:20:39.320542Z", + "start_time": "2024-06-08T21:20:29.802579Z" + } + }, + "source": [ + "from sklearn.ensemble import RandomForestRegressor\n", + "\n", + "forest_reg = RandomForestRegressor(n_estimators=100, random_state=42)\n", + "forest_reg.fit(housing_prepared, housing_labels)" + ], "outputs": [ { "data": { "text/plain": [ "RandomForestRegressor(random_state=42)" + ], + "text/html": [ + "
RandomForestRegressor(random_state=42)
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.
" ] }, "execution_count": 94, @@ -3858,22 +4354,27 @@ "output_type": "execute_result" } ], - "source": [ - "from sklearn.ensemble import RandomForestRegressor\n", - "\n", - "forest_reg = RandomForestRegressor(n_estimators=100, random_state=42)\n", - "forest_reg.fit(housing_prepared, housing_labels)" - ] + "execution_count": 94 }, { "cell_type": "code", - "execution_count": 95, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:20:39.559845Z", + "start_time": "2024-06-08T21:20:39.321155Z" + } + }, + "source": [ + "housing_predictions = forest_reg.predict(housing_prepared)\n", + "forest_mse = mean_squared_error(housing_labels, housing_predictions)\n", + "forest_rmse = np.sqrt(forest_mse)\n", + "forest_rmse" + ], "outputs": [ { "data": { "text/plain": [ - "18603.515021376355" + "18650.698705770003" ] }, "execution_count": 95, @@ -3881,30 +4382,16 @@ "output_type": "execute_result" } ], - "source": [ - "housing_predictions = forest_reg.predict(housing_prepared)\n", - "forest_mse = mean_squared_error(housing_labels, housing_predictions)\n", - "forest_rmse = np.sqrt(forest_mse)\n", - "forest_rmse" - ] + "execution_count": 95 }, { "cell_type": "code", - "execution_count": 96, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Scores: [49519.80364233 47461.9115823 50029.02762854 52325.28068953\n", - " 49308.39426421 53446.37892622 48634.8036574 47585.73832311\n", - " 53490.10699751 50021.5852922 ]\n", - "Mean: 50182.303100336096\n", - "Standard deviation: 2097.0810550985693\n" - ] + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:22:03.806163Z", + "start_time": "2024-06-08T21:20:39.560393Z" } - ], + }, "source": [ "from sklearn.model_selection import cross_val_score\n", "\n", @@ -3912,24 +4399,46 @@ " scoring=\"neg_mean_squared_error\", cv=10)\n", "forest_rmse_scores = np.sqrt(-forest_scores)\n", "display_scores(forest_rmse_scores)" - ] + ], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Scores: [51559.63379638 48737.57100062 47210.51269766 51875.21247297\n", + " 47577.50470123 51863.27467888 52746.34645573 50065.1762751\n", + " 48664.66818196 54055.90894609]\n", + "Mean: 50435.58092066179\n", + "Standard deviation: 2203.3381412764606\n" + ] + } + ], + "execution_count": 96 }, { "cell_type": "code", - "execution_count": 97, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:22:03.890286Z", + "start_time": "2024-06-08T21:22:03.806702Z" + } + }, + "source": [ + "scores = cross_val_score(lin_reg, housing_prepared, housing_labels, scoring=\"neg_mean_squared_error\", cv=10)\n", + "pd.Series(np.sqrt(-scores)).describe()" + ], "outputs": [ { "data": { "text/plain": [ "count 10.000000\n", - "mean 69052.461363\n", - "std 2879.437224\n", - "min 64969.630564\n", - "25% 67136.363758\n", - "50% 68156.372635\n", - "75% 70982.369487\n", - "max 74739.570526\n", + "mean 69116.434720\n", + "std 3036.481053\n", + "min 64114.991664\n", + "25% 67062.723869\n", + "50% 68729.865821\n", + "75% 71386.234963\n", + "max 73992.858350\n", "dtype: float64" ] }, @@ -3938,20 +4447,31 @@ "output_type": "execute_result" } ], - "source": [ - "scores = cross_val_score(lin_reg, housing_prepared, housing_labels, scoring=\"neg_mean_squared_error\", cv=10)\n", - "pd.Series(np.sqrt(-scores)).describe()" - ] + "execution_count": 97 }, { "cell_type": "code", - "execution_count": 98, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:22:09.383562Z", + "start_time": "2024-06-08T21:22:03.895503Z" + } + }, + "source": [ + "from sklearn.svm import SVR\n", + "\n", + "svm_reg = SVR(kernel=\"linear\")\n", + "svm_reg.fit(housing_prepared, housing_labels)\n", + "housing_predictions = svm_reg.predict(housing_prepared)\n", + "svm_mse = mean_squared_error(housing_labels, housing_predictions)\n", + "svm_rmse = np.sqrt(svm_mse)\n", + "svm_rmse" + ], "outputs": [ { "data": { "text/plain": [ - "111094.6308539982" + "111095.06635291968" ] }, "execution_count": 98, @@ -3959,16 +4479,7 @@ "output_type": "execute_result" } ], - "source": [ - "from sklearn.svm import SVR\n", - "\n", - "svm_reg = SVR(kernel=\"linear\")\n", - "svm_reg.fit(housing_prepared, housing_labels)\n", - "housing_predictions = svm_reg.predict(housing_prepared)\n", - "svm_mse = mean_squared_error(housing_labels, housing_predictions)\n", - "svm_rmse = np.sqrt(svm_mse)\n", - "svm_rmse" - ] + "execution_count": 98 }, { "cell_type": "markdown", @@ -3986,25 +4497,12 @@ }, { "cell_type": "code", - "execution_count": 99, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "GridSearchCV(cv=5, estimator=RandomForestRegressor(random_state=42),\n", - " param_grid=[{'max_features': [2, 4, 6, 8],\n", - " 'n_estimators': [3, 10, 30]},\n", - " {'bootstrap': [False], 'max_features': [2, 3, 4],\n", - " 'n_estimators': [3, 10]}],\n", - " return_train_score=True, scoring='neg_mean_squared_error')" - ] - }, - "execution_count": 99, - "metadata": {}, - "output_type": "execute_result" + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:22:39.812404Z", + "start_time": "2024-06-08T21:22:09.384173Z" } - ], + }, "source": [ "from sklearn.model_selection import GridSearchCV\n", "\n", @@ -4021,54 +4519,98 @@ " scoring='neg_mean_squared_error',\n", " return_train_score=True)\n", "grid_search.fit(housing_prepared, housing_labels)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The best hyperparameter combination found:" - ] - }, - { - "cell_type": "code", - "execution_count": 100, - "metadata": {}, + ], "outputs": [ { "data": { "text/plain": [ - "{'max_features': 8, 'n_estimators': 30}" - ] - }, - "execution_count": 100, - "metadata": {}, - "output_type": "execute_result" - } + "GridSearchCV(cv=5, estimator=RandomForestRegressor(random_state=42),\n", + " param_grid=[{'max_features': [2, 4, 6, 8],\n", + " 'n_estimators': [3, 10, 30]},\n", + " {'bootstrap': [False], 'max_features': [2, 3, 4],\n", + " 'n_estimators': [3, 10]}],\n", + " return_train_score=True, scoring='neg_mean_squared_error')" + ], + "text/html": [ + "
GridSearchCV(cv=5, estimator=RandomForestRegressor(random_state=42),\n",
+       "             param_grid=[{'max_features': [2, 4, 6, 8],\n",
+       "                          'n_estimators': [3, 10, 30]},\n",
+       "                         {'bootstrap': [False], 'max_features': [2, 3, 4],\n",
+       "                          'n_estimators': [3, 10]}],\n",
+       "             return_train_score=True, scoring='neg_mean_squared_error')
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.
" + ] + }, + "execution_count": 99, + "metadata": {}, + "output_type": "execute_result" + } ], + "execution_count": 99 + }, + { + "cell_type": "markdown", + "metadata": {}, "source": [ - "grid_search.best_params_" + "The best hyperparameter combination found:" ] }, { "cell_type": "code", - "execution_count": 101, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:22:39.814775Z", + "start_time": "2024-06-08T21:22:39.812963Z" + } + }, + "source": [ + "grid_search.best_params_" + ], "outputs": [ { "data": { "text/plain": [ - "RandomForestRegressor(max_features=8, n_estimators=30, random_state=42)" + "{'max_features': 8, 'n_estimators': 30}" ] }, - "execution_count": 101, + "execution_count": 100, "metadata": {}, "output_type": "execute_result" } ], + "execution_count": 100 + }, + { + "cell_type": "code", + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:22:39.817288Z", + "start_time": "2024-06-08T21:22:39.815212Z" + } + }, "source": [ "grid_search.best_estimator_" - ] + ], + "outputs": [ + { + "data": { + "text/plain": [ + "RandomForestRegressor(max_features=8, n_estimators=30, random_state=42)" + ], + "text/html": [ + "
RandomForestRegressor(max_features=8, n_estimators=30, random_state=42)
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.
" + ] + }, + "execution_count": 101, + "metadata": {}, + "output_type": "execute_result" + } + ], + "execution_count": 101 }, { "cell_type": "markdown", @@ -4079,47 +4621,182 @@ }, { "cell_type": "code", - "execution_count": 102, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:22:39.819431Z", + "start_time": "2024-06-08T21:22:39.817792Z" + } + }, + "source": [ + "cvres = grid_search.cv_results_\n", + "for mean_score, params in zip(cvres[\"mean_test_score\"], cvres[\"params\"]):\n", + " print(np.sqrt(-mean_score), params)" + ], "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "63669.11631261028 {'max_features': 2, 'n_estimators': 3}\n", - "55627.099719926795 {'max_features': 2, 'n_estimators': 10}\n", - "53384.57275149205 {'max_features': 2, 'n_estimators': 30}\n", - "60965.950449450494 {'max_features': 4, 'n_estimators': 3}\n", - "52741.04704299915 {'max_features': 4, 'n_estimators': 10}\n", - "50377.40461678399 {'max_features': 4, 'n_estimators': 30}\n", - "58663.93866579625 {'max_features': 6, 'n_estimators': 3}\n", - "52006.19873526564 {'max_features': 6, 'n_estimators': 10}\n", - "50146.51167415009 {'max_features': 6, 'n_estimators': 30}\n", - "57869.25276169646 {'max_features': 8, 'n_estimators': 3}\n", - "51711.127883959234 {'max_features': 8, 'n_estimators': 10}\n", - "49682.273345071546 {'max_features': 8, 'n_estimators': 30}\n", - "62895.06951262424 {'bootstrap': False, 'max_features': 2, 'n_estimators': 3}\n", - "54658.176157539405 {'bootstrap': False, 'max_features': 2, 'n_estimators': 10}\n", - "59470.40652318466 {'bootstrap': False, 'max_features': 3, 'n_estimators': 3}\n", - "52724.9822587892 {'bootstrap': False, 'max_features': 3, 'n_estimators': 10}\n", - "57490.5691951261 {'bootstrap': False, 'max_features': 4, 'n_estimators': 3}\n", - "51009.495668875716 {'bootstrap': False, 'max_features': 4, 'n_estimators': 10}\n" + "63895.161577951665 {'max_features': 2, 'n_estimators': 3}\n", + "54916.32386349543 {'max_features': 2, 'n_estimators': 10}\n", + "52891.66240619666 {'max_features': 2, 'n_estimators': 30}\n", + "60075.3680329983 {'max_features': 4, 'n_estimators': 3}\n", + "52495.01284985185 {'max_features': 4, 'n_estimators': 10}\n", + "50187.24324926565 {'max_features': 4, 'n_estimators': 30}\n", + "58064.73529982314 {'max_features': 6, 'n_estimators': 3}\n", + "51519.32062366315 {'max_features': 6, 'n_estimators': 10}\n", + "49969.80441627874 {'max_features': 6, 'n_estimators': 30}\n", + "58895.824998155826 {'max_features': 8, 'n_estimators': 3}\n", + "52459.79624724529 {'max_features': 8, 'n_estimators': 10}\n", + "49898.98913455217 {'max_features': 8, 'n_estimators': 30}\n", + "62381.765106921855 {'bootstrap': False, 'max_features': 2, 'n_estimators': 3}\n", + "54476.57050944266 {'bootstrap': False, 'max_features': 2, 'n_estimators': 10}\n", + "59974.60028085155 {'bootstrap': False, 'max_features': 3, 'n_estimators': 3}\n", + "52754.5632813202 {'bootstrap': False, 'max_features': 3, 'n_estimators': 10}\n", + "57831.136061214274 {'bootstrap': False, 'max_features': 4, 'n_estimators': 3}\n", + "51278.37877140253 {'bootstrap': False, 'max_features': 4, 'n_estimators': 10}\n" ] } ], - "source": [ - "cvres = grid_search.cv_results_\n", - "for mean_score, params in zip(cvres[\"mean_test_score\"], cvres[\"params\"]):\n", - " print(np.sqrt(-mean_score), params)" - ] + "execution_count": 102 }, { "cell_type": "code", - "execution_count": 103, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:22:39.828812Z", + "start_time": "2024-06-08T21:22:39.819816Z" + } + }, + "source": [ + "pd.DataFrame(grid_search.cv_results_)" + ], "outputs": [ { "data": { + "text/plain": [ + " mean_fit_time std_fit_time mean_score_time std_score_time \\\n", + "0 0.036986 0.000786 0.001907 0.000179 \n", + "1 0.119602 0.001736 0.005334 0.000050 \n", + "2 0.358221 0.001724 0.016161 0.000185 \n", + "3 0.063284 0.000958 0.001676 0.000092 \n", + "4 0.203664 0.000758 0.005384 0.000078 \n", + "5 0.612257 0.001055 0.016214 0.000214 \n", + "6 0.084370 0.001059 0.001943 0.000313 \n", + "7 0.284648 0.001727 0.005519 0.000108 \n", + "8 0.868351 0.005458 0.016128 0.000172 \n", + "9 0.113123 0.001537 0.001943 0.000406 \n", + "10 0.376718 0.002544 0.005496 0.000041 \n", + "11 1.130607 0.002986 0.015913 0.000207 \n", + "12 0.055583 0.000892 0.001923 0.000090 \n", + "13 0.186154 0.002554 0.006561 0.000375 \n", + "14 0.076502 0.000588 0.002004 0.000134 \n", + "15 0.262465 0.017841 0.006523 0.000056 \n", + "16 0.098455 0.000782 0.002014 0.000056 \n", + "17 0.322480 0.003141 0.006665 0.000064 \n", + "\n", + " param_max_features param_n_estimators param_bootstrap \\\n", + "0 2 3 NaN \n", + "1 2 10 NaN \n", + "2 2 30 NaN \n", + "3 4 3 NaN \n", + "4 4 10 NaN \n", + "5 4 30 NaN \n", + "6 6 3 NaN \n", + "7 6 10 NaN \n", + "8 6 30 NaN \n", + "9 8 3 NaN \n", + "10 8 10 NaN \n", + "11 8 30 NaN \n", + "12 2 3 False \n", + "13 2 10 False \n", + "14 3 3 False \n", + "15 3 10 False \n", + "16 4 3 False \n", + "17 4 10 False \n", + "\n", + " params split0_test_score \\\n", + "0 {'max_features': 2, 'n_estimators': 3} -4.119912e+09 \n", + "1 {'max_features': 2, 'n_estimators': 10} -2.973521e+09 \n", + "2 {'max_features': 2, 'n_estimators': 30} -2.801229e+09 \n", + "3 {'max_features': 4, 'n_estimators': 3} -3.528743e+09 \n", + "4 {'max_features': 4, 'n_estimators': 10} -2.742620e+09 \n", + "5 {'max_features': 4, 'n_estimators': 30} -2.522176e+09 \n", + "6 {'max_features': 6, 'n_estimators': 3} -3.362127e+09 \n", + "7 {'max_features': 6, 'n_estimators': 10} -2.622099e+09 \n", + "8 {'max_features': 6, 'n_estimators': 30} -2.446142e+09 \n", + "9 {'max_features': 8, 'n_estimators': 3} -3.590333e+09 \n", + "10 {'max_features': 8, 'n_estimators': 10} -2.721311e+09 \n", + "11 {'max_features': 8, 'n_estimators': 30} -2.492636e+09 \n", + "12 {'bootstrap': False, 'max_features': 2, 'n_est... -4.020842e+09 \n", + "13 {'bootstrap': False, 'max_features': 2, 'n_est... -2.901352e+09 \n", + "14 {'bootstrap': False, 'max_features': 3, 'n_est... -3.687132e+09 \n", + "15 {'bootstrap': False, 'max_features': 3, 'n_est... -2.837028e+09 \n", + "16 {'bootstrap': False, 'max_features': 4, 'n_est... -3.549428e+09 \n", + "17 {'bootstrap': False, 'max_features': 4, 'n_est... -2.692499e+09 \n", + "\n", + " split1_test_score ... mean_test_score std_test_score rank_test_score \\\n", + "0 -3.723465e+09 ... -4.082592e+09 1.867375e+08 18 \n", + "1 -2.810319e+09 ... -3.015803e+09 1.139808e+08 11 \n", + "2 -2.671930e+09 ... -2.797528e+09 8.014389e+07 9 \n", + "3 -3.490303e+09 ... -3.609050e+09 1.375683e+08 16 \n", + "4 -2.609311e+09 ... -2.755726e+09 1.182604e+08 7 \n", + "5 -2.440241e+09 ... -2.518759e+09 8.488084e+07 3 \n", + "6 -3.311863e+09 ... -3.371513e+09 1.378086e+08 13 \n", + "7 -2.669655e+09 ... -2.654240e+09 6.967978e+07 5 \n", + "8 -2.446594e+09 ... -2.496981e+09 7.357046e+07 2 \n", + "9 -3.232664e+09 ... -3.468718e+09 1.293758e+08 14 \n", + "10 -2.675886e+09 ... -2.752030e+09 6.258030e+07 6 \n", + "11 -2.444818e+09 ... -2.489909e+09 7.086483e+07 1 \n", + "12 -3.951861e+09 ... -3.891485e+09 8.648595e+07 17 \n", + "13 -3.036875e+09 ... -2.967697e+09 4.582448e+07 10 \n", + "14 -3.446245e+09 ... -3.596953e+09 8.011960e+07 15 \n", + "15 -2.619558e+09 ... -2.783044e+09 8.862580e+07 8 \n", + "16 -3.318176e+09 ... -3.344440e+09 1.099355e+08 12 \n", + "17 -2.542704e+09 ... -2.629472e+09 8.510266e+07 4 \n", + "\n", + " split0_train_score split1_train_score split2_train_score \\\n", + "0 -1.155630e+09 -1.089726e+09 -1.153843e+09 \n", + "1 -5.982947e+08 -5.904781e+08 -6.123850e+08 \n", + "2 -4.412567e+08 -4.324781e+08 -4.553722e+08 \n", + "3 -9.782368e+08 -9.806455e+08 -1.003780e+09 \n", + "4 -5.063215e+08 -5.257983e+08 -5.081984e+08 \n", + "5 -3.776568e+08 -3.902106e+08 -3.885042e+08 \n", + "6 -8.909397e+08 -9.583733e+08 -9.000201e+08 \n", + "7 -4.939906e+08 -5.145996e+08 -5.023512e+08 \n", + "8 -3.760968e+08 -3.876636e+08 -3.875307e+08 \n", + "9 -9.505012e+08 -9.166119e+08 -9.033910e+08 \n", + "10 -4.998373e+08 -4.997970e+08 -5.099880e+08 \n", + "11 -3.801679e+08 -3.832972e+08 -3.823818e+08 \n", + "12 -0.000000e+00 -4.306828e+01 -1.051392e+04 \n", + "13 -0.000000e+00 -3.876145e+00 -9.462528e+02 \n", + "14 -0.000000e+00 -0.000000e+00 -0.000000e+00 \n", + "15 -0.000000e+00 -0.000000e+00 -0.000000e+00 \n", + "16 -0.000000e+00 -0.000000e+00 -0.000000e+00 \n", + "17 -0.000000e+00 -0.000000e+00 -0.000000e+00 \n", + "\n", + " split3_train_score split4_train_score mean_train_score std_train_score \n", + "0 -1.118149e+09 -1.093446e+09 -1.122159e+09 2.834288e+07 \n", + "1 -5.727681e+08 -5.905210e+08 -5.928894e+08 1.284978e+07 \n", + "2 -4.320746e+08 -4.315783e+08 -4.385520e+08 9.140206e+06 \n", + "3 -1.016515e+09 -1.011270e+09 -9.980896e+08 1.577372e+07 \n", + "4 -5.174405e+08 -5.282066e+08 -5.171931e+08 8.882622e+06 \n", + "5 -3.830866e+08 -3.894779e+08 -3.857872e+08 4.774229e+06 \n", + "6 -8.964731e+08 -9.151927e+08 -9.121998e+08 2.444837e+07 \n", + "7 -4.959467e+08 -5.147087e+08 -5.043194e+08 8.880106e+06 \n", + "8 -3.760938e+08 -3.861056e+08 -3.826981e+08 5.418747e+06 \n", + "9 -9.070642e+08 -9.459386e+08 -9.247014e+08 1.973471e+07 \n", + "10 -5.047868e+08 -5.348043e+08 -5.098427e+08 1.303601e+07 \n", + "11 -3.778452e+08 -3.817589e+08 -3.810902e+08 1.916605e+06 \n", + "12 -0.000000e+00 -0.000000e+00 -2.111398e+03 4.201294e+03 \n", + "13 -0.000000e+00 -0.000000e+00 -1.900258e+02 3.781165e+02 \n", + "14 -0.000000e+00 -0.000000e+00 0.000000e+00 0.000000e+00 \n", + "15 -0.000000e+00 -0.000000e+00 0.000000e+00 0.000000e+00 \n", + "16 -0.000000e+00 -0.000000e+00 0.000000e+00 0.000000e+00 \n", + "17 -0.000000e+00 -0.000000e+00 0.000000e+00 0.000000e+00 \n", + "\n", + "[18 rows x 23 columns]" + ], "text/html": [ "
\n", "
RandomizedSearchCV(cv=5, estimator=RandomForestRegressor(random_state=42),\n",
+       "                   param_distributions={'max_features': <scipy.stats._distn_infrastructure.rv_discrete_frozen object at 0x33f088850>,\n",
+       "                                        'n_estimators': <scipy.stats._distn_infrastructure.rv_discrete_frozen object at 0x33f08b890>},\n",
+       "                   random_state=42, scoring='neg_mean_squared_error')
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.
" + ] + }, + "execution_count": 104, + "metadata": {}, + "output_type": "execute_result" + } + ], + "execution_count": 104 }, { "cell_type": "code", - "execution_count": 105, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:24:28.708830Z", + "start_time": "2024-06-08T21:24:28.707123Z" + } + }, + "source": [ + "cvres = rnd_search.cv_results_\n", + "for mean_score, params in zip(cvres[\"mean_test_score\"], cvres[\"params\"]):\n", + " print(np.sqrt(-mean_score), params)" + ], "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "49150.70756927707 {'max_features': 7, 'n_estimators': 180}\n", - "51389.889203389284 {'max_features': 5, 'n_estimators': 15}\n", - "50796.155224308866 {'max_features': 3, 'n_estimators': 72}\n", - "50835.13360315349 {'max_features': 5, 'n_estimators': 21}\n", - "49280.9449827171 {'max_features': 7, 'n_estimators': 122}\n", - "50774.90662363929 {'max_features': 3, 'n_estimators': 75}\n", - "50682.78888164288 {'max_features': 3, 'n_estimators': 88}\n", - "49608.99608105296 {'max_features': 5, 'n_estimators': 100}\n", - "50473.61930350219 {'max_features': 3, 'n_estimators': 150}\n", - "64429.84143294435 {'max_features': 5, 'n_estimators': 2}\n" + "49117.55344336652 {'max_features': 7, 'n_estimators': 180}\n", + "51450.63202856348 {'max_features': 5, 'n_estimators': 15}\n", + "50700.386174457635 {'max_features': 3, 'n_estimators': 72}\n", + "50783.614493515 {'max_features': 5, 'n_estimators': 21}\n", + "49162.89877456354 {'max_features': 7, 'n_estimators': 122}\n", + "50663.56285209076 {'max_features': 3, 'n_estimators': 75}\n", + "50523.94360622104 {'max_features': 3, 'n_estimators': 88}\n", + "49521.76339475961 {'max_features': 5, 'n_estimators': 100}\n", + "50306.36122428185 {'max_features': 3, 'n_estimators': 150}\n", + "65167.02018649492 {'max_features': 5, 'n_estimators': 2}\n" ] } ], - "source": [ - "cvres = rnd_search.cv_results_\n", - "for mean_score, params in zip(cvres[\"mean_test_score\"], cvres[\"params\"]):\n", - " print(np.sqrt(-mean_score), params)" - ] + "execution_count": 105 }, { "cell_type": "markdown", @@ -4811,16 +5382,24 @@ }, { "cell_type": "code", - "execution_count": 106, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:24:28.713771Z", + "start_time": "2024-06-08T21:24:28.709268Z" + } + }, + "source": [ + "feature_importances = grid_search.best_estimator_.feature_importances_\n", + "feature_importances" + ], "outputs": [ { "data": { "text/plain": [ - "array([7.33442355e-02, 6.29090705e-02, 4.11437985e-02, 1.46726854e-02,\n", - " 1.41064835e-02, 1.48742809e-02, 1.42575993e-02, 3.66158981e-01,\n", - " 5.64191792e-02, 1.08792957e-01, 5.33510773e-02, 1.03114883e-02,\n", - " 1.64780994e-01, 6.02803867e-05, 1.96041560e-03, 2.85647464e-03])" + "array([6.96542523e-02, 6.04213840e-02, 4.21882202e-02, 1.52450557e-02,\n", + " 1.55545295e-02, 1.58491147e-02, 1.49346552e-02, 3.79009225e-01,\n", + " 5.47789150e-02, 1.07031322e-01, 4.82031213e-02, 6.79266007e-03,\n", + " 1.65706303e-01, 7.83480660e-05, 1.52473276e-03, 3.02816106e-03])" ] }, "execution_count": 106, @@ -4828,35 +5407,44 @@ "output_type": "execute_result" } ], - "source": [ - "feature_importances = grid_search.best_estimator_.feature_importances_\n", - "feature_importances" - ] + "execution_count": 106 }, { "cell_type": "code", - "execution_count": 107, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:24:28.716447Z", + "start_time": "2024-06-08T21:24:28.714245Z" + } + }, + "source": [ + "extra_attribs = [\"rooms_per_hhold\", \"pop_per_hhold\", \"bedrooms_per_room\"]\n", + "#cat_encoder = cat_pipeline.named_steps[\"cat_encoder\"] # old solution\n", + "cat_encoder = full_pipeline.named_transformers_[\"cat\"]\n", + "cat_one_hot_attribs = list(cat_encoder.categories_[0])\n", + "attributes = num_attribs + extra_attribs + cat_one_hot_attribs\n", + "sorted(zip(feature_importances, attributes), reverse=True)" + ], "outputs": [ { "data": { "text/plain": [ - "[(0.36615898061813423, 'median_income'),\n", - " (0.16478099356159054, 'INLAND'),\n", - " (0.10879295677551575, 'pop_per_hhold'),\n", - " (0.07334423551601243, 'longitude'),\n", - " (0.06290907048262032, 'latitude'),\n", - " (0.056419179181954014, 'rooms_per_hhold'),\n", - " (0.053351077347675815, 'bedrooms_per_room'),\n", - " (0.04114379847872964, 'housing_median_age'),\n", - " (0.014874280890402769, 'population'),\n", - " (0.014672685420543239, 'total_rooms'),\n", - " (0.014257599323407808, 'households'),\n", - " (0.014106483453584104, 'total_bedrooms'),\n", - " (0.010311488326303788, '<1H OCEAN'),\n", - " (0.0028564746373201584, 'NEAR OCEAN'),\n", - " (0.0019604155994780706, 'NEAR BAY'),\n", - " (6.0280386727366e-05, 'ISLAND')]" + "[(0.3790092248170966, 'median_income'),\n", + " (0.16570630316895874, 'INLAND'),\n", + " (0.10703132208204355, 'pop_per_hhold'),\n", + " (0.06965425227942927, 'longitude'),\n", + " (0.060421384008072176, 'latitude'),\n", + " (0.05477891501828372, 'rooms_per_hhold'),\n", + " (0.0482031213382692, 'bedrooms_per_room'),\n", + " (0.04218822024391752, 'housing_median_age'),\n", + " (0.01584911474442863, 'population'),\n", + " (0.015554529490469331, 'total_bedrooms'),\n", + " (0.015245055688409767, 'total_rooms'),\n", + " (0.014934655161887769, 'households'),\n", + " (0.006792660074259964, '<1H OCEAN'),\n", + " (0.0030281610628962743, 'NEAR OCEAN'),\n", + " (0.001524732755550493, 'NEAR BAY'),\n", + " (7.8348066026875e-05, 'ISLAND')]" ] }, "execution_count": 107, @@ -4864,14 +5452,7 @@ "output_type": "execute_result" } ], - "source": [ - "extra_attribs = [\"rooms_per_hhold\", \"pop_per_hhold\", \"bedrooms_per_room\"]\n", - "#cat_encoder = cat_pipeline.named_steps[\"cat_encoder\"] # old solution\n", - "cat_encoder = full_pipeline.named_transformers_[\"cat\"]\n", - "cat_one_hot_attribs = list(cat_encoder.categories_[0])\n", - "attributes = num_attribs + extra_attribs + cat_one_hot_attribs\n", - "sorted(zip(feature_importances, attributes), reverse=True)" - ] + "execution_count": 107 }, { "cell_type": "markdown", @@ -4882,9 +5463,12 @@ }, { "cell_type": "code", - "execution_count": 108, - "metadata": {}, - "outputs": [], + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:24:28.742728Z", + "start_time": "2024-06-08T21:24:28.716892Z" + } + }, "source": [ "final_model = grid_search.best_estimator_\n", "\n", @@ -4896,17 +5480,26 @@ "\n", "final_mse = mean_squared_error(y_test, final_predictions)\n", "final_rmse = np.sqrt(final_mse)" - ] - }, + ], + "outputs": [], + "execution_count": 108 + }, { "cell_type": "code", - "execution_count": 109, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:24:28.745048Z", + "start_time": "2024-06-08T21:24:28.743246Z" + } + }, + "source": [ + "final_rmse" + ], "outputs": [ { "data": { "text/plain": [ - "47730.22690385927" + "47873.26095812988" ] }, "execution_count": 109, @@ -4914,9 +5507,7 @@ "output_type": "execute_result" } ], - "source": [ - "final_rmse" - ] + "execution_count": 109 }, { "cell_type": "markdown", @@ -4927,13 +5518,26 @@ }, { "cell_type": "code", - "execution_count": 110, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:24:28.748167Z", + "start_time": "2024-06-08T21:24:28.745459Z" + } + }, + "source": [ + "from scipy import stats\n", + "\n", + "confidence = 0.95\n", + "squared_errors = (final_predictions - y_test) ** 2\n", + "np.sqrt(stats.t.interval(confidence, len(squared_errors) - 1,\n", + " loc=squared_errors.mean(),\n", + " scale=stats.sem(squared_errors)))" + ], "outputs": [ { "data": { "text/plain": [ - "array([45685.10470776, 49691.25001878])" + "array([45893.36082829, 49774.46796717])" ] }, "execution_count": 110, @@ -4941,15 +5545,7 @@ "output_type": "execute_result" } ], - "source": [ - "from scipy import stats\n", - "\n", - "confidence = 0.95\n", - "squared_errors = (final_predictions - y_test) ** 2\n", - "np.sqrt(stats.t.interval(confidence, len(squared_errors) - 1,\n", - " loc=squared_errors.mean(),\n", - " scale=stats.sem(squared_errors)))" - ] + "execution_count": 110 }, { "cell_type": "markdown", @@ -4960,13 +5556,24 @@ }, { "cell_type": "code", - "execution_count": 111, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:24:28.750607Z", + "start_time": "2024-06-08T21:24:28.748562Z" + } + }, + "source": [ + "m = len(squared_errors)\n", + "mean = squared_errors.mean()\n", + "tscore = stats.t.ppf((1 + confidence) / 2, df=m - 1)\n", + "tmargin = tscore * squared_errors.std(ddof=1) / np.sqrt(m)\n", + "np.sqrt(mean - tmargin), np.sqrt(mean + tmargin)" + ], "outputs": [ { "data": { "text/plain": [ - "(45685.10470776014, 49691.25001877871)" + "(45893.360828285535, 49774.46796717361)" ] }, "execution_count": 111, @@ -4974,13 +5581,7 @@ "output_type": "execute_result" } ], - "source": [ - "m = len(squared_errors)\n", - "mean = squared_errors.mean()\n", - "tscore = stats.t.ppf((1 + confidence) / 2, df=m - 1)\n", - "tmargin = tscore * squared_errors.std(ddof=1) / np.sqrt(m)\n", - "np.sqrt(mean - tmargin), np.sqrt(mean + tmargin)" - ] + "execution_count": 111 }, { "cell_type": "markdown", @@ -4991,13 +5592,22 @@ }, { "cell_type": "code", - "execution_count": 112, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:24:28.752852Z", + "start_time": "2024-06-08T21:24:28.750920Z" + } + }, + "source": [ + "zscore = stats.norm.ppf((1 + confidence) / 2)\n", + "zmargin = zscore * squared_errors.std(ddof=1) / np.sqrt(m)\n", + "np.sqrt(mean - zmargin), np.sqrt(mean + zmargin)" + ], "outputs": [ { "data": { "text/plain": [ - "(45685.717918136594, 49690.68623889426)" + "(45893.9540110131, 49773.92103065038)" ] }, "execution_count": 112, @@ -5005,11 +5615,7 @@ "output_type": "execute_result" } ], - "source": [ - "zscore = stats.norm.ppf((1 + confidence) / 2)\n", - "zmargin = zscore * squared_errors.std(ddof=1) / np.sqrt(m)\n", - "np.sqrt(mean - zmargin), np.sqrt(mean + zmargin)" - ] + "execution_count": 112 }, { "cell_type": "markdown", @@ -5027,14 +5633,26 @@ }, { "cell_type": "code", - "execution_count": 113, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:24:28.771213Z", + "start_time": "2024-06-08T21:24:28.753377Z" + } + }, + "source": [ + "full_pipeline_with_predictor = Pipeline([\n", + " (\"preparation\", full_pipeline),\n", + " (\"linear\", LinearRegression())\n", + " ])\n", + "\n", + "full_pipeline_with_predictor.fit(housing, housing_labels)\n", + "full_pipeline_with_predictor.predict(some_data)" + ], "outputs": [ { "data": { "text/plain": [ - "array([210644.60459286, 317768.80697211, 210956.43331178, 59218.98886849,\n", - " 189747.55849879])" + "array([ 86208., 304704., 153536., 185728., 244416.])" ] }, "execution_count": 113, @@ -5042,15 +5660,7 @@ "output_type": "execute_result" } ], - "source": [ - "full_pipeline_with_predictor = Pipeline([\n", - " (\"preparation\", full_pipeline),\n", - " (\"linear\", LinearRegression())\n", - " ])\n", - "\n", - "full_pipeline_with_predictor.fit(housing, housing_labels)\n", - "full_pipeline_with_predictor.predict(some_data)" - ] + "execution_count": 113 }, { "cell_type": "markdown", @@ -5061,24 +5671,34 @@ }, { "cell_type": "code", - "execution_count": 114, - "metadata": {}, - "outputs": [], + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:24:28.777532Z", + "start_time": "2024-06-08T21:24:28.776209Z" + } + }, "source": [ "my_model = full_pipeline_with_predictor" - ] + ], + "outputs": [], + "execution_count": 114 }, { "cell_type": "code", - "execution_count": 115, - "metadata": {}, - "outputs": [], + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:24:28.781103Z", + "start_time": "2024-06-08T21:24:28.777984Z" + } + }, "source": [ "import joblib\n", "joblib.dump(my_model, \"my_model.pkl\") # DIFF\n", "#...\n", "my_model_loaded = joblib.load(\"my_model.pkl\") # DIFF" - ] + ], + "outputs": [], + "execution_count": 115 }, { "cell_type": "markdown", @@ -5089,43 +5709,44 @@ }, { "cell_type": "code", - "execution_count": 116, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:24:28.873147Z", + "start_time": "2024-06-08T21:24:28.781494Z" + } + }, + "source": [ + "from scipy.stats import geom, expon\n", + "geom_distrib=geom(0.5).rvs(10000, random_state=42)\n", + "expon_distrib=expon(scale=1).rvs(10000, random_state=42)\n", + "plt.hist(geom_distrib, bins=50)\n", + "plt.show()\n", + "plt.hist(expon_distrib, bins=50)\n", + "plt.show()" + ], "outputs": [ { "data": { - "image/png": "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\n", "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" + "
" + ], + "image/png": "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lw++8+fPKy4uTn369NGOHTsUEhKiI0eOaN26daqvr9frr7/e3S16ta/6M86f/46rqqpy/wPmnXfe0SOPdO05FgLOQygjI0Pr1q3T+vXr9dxzz3V3O16jvr5eSUlJWrJkicLCwtxfc7xx44Yk6erVq+rRowcfC7RDcHCw/vznP2vatGke49///ve1bNky99dz8dVSUlJUW1urEydOuP+/+9u//Vs5HA4lJibqmWee0aRJk7q5S+/TfN1I85mc21VVVclisSgoKOg+d+Xdqqur9b3vfU9lZWU6cOCAvvGNb3T5a/IR1UMmIyND6enpSk9P14svvtjd7XiViooKff7559q0aZN69+7t3t5++21du3ZNvXv31k9+8pPubtMrtHZtgyT3R1Nd/S87U5w4cUIjR45sEarHjRsnSSopKemOtrze0KFD1bNnTxUXF7eYKy4u1rBhw+Tj49MNnXmn6upqTZkyRZ9++ql++9vftvnnv7Pxt8hD5KWXXlJ6errS0tK0du3a7m7H6/Tt21dFRUUttmnTpsnHx0dFRUVat25dd7fpFWbPni1J2rNnj8f47t27JUkTJky47z15o7CwMJ08eVL19fUe43/4wx8kiYvg75LValVcXJx27typuro69/jFixdVVFSk+Pj4buzOuzSHm3Pnzuk3v/mNHnvssfv22vzY5kNi06ZNev755xUbG9tquOEN5e4tWLBAO3bsaPEmg6/2d3/3d/rNb36jtLQ0TZgwQR9//LEyMjI0ZcoUffDBB93dnlf4z//8T82cOVPjx4/X8uXL5XA49NFHH2nDhg0aOHCgPvnkE74q3oo9e/bo2rVrqqurU2JioubOnaunnnpKkjR9+nT5+vqqtLRU48aN01/91V8pJSVFTqdTa9asUVVVlU6cOKGQkJBu3ovud6fjaLFYNGnSJH388cd6+eWX3V8PbxYSEqKhQ4d2XYNdepcdPDAmTZrkktTmhrvHjf7uTkNDg2vlypWuAQMGuKxWq2vgwIGuVatWuZxOZ3e35lUOHDjgmjp1qqtv376unj17ur75zW+6VqxY0eoN1vCFQYMGtfl34aeffuqu+/jjj12TJ092+fr6ugICAlwzZ85scVPFh9mdjuOnn376le878+fP79L+OIMDAACMwzU4AADAOAQcAABgHAIOAAAwDgEHAAAYh4ADAACMQ8ABAADGIeAAAADjEHAAAIBxCDgAAMA4BBwAAGAcAg4AADAOAQcAABjn/wG0Z9IFWrWR9wAAAABJRU5ErkJggg==" }, + "metadata": {}, "output_type": "display_data" }, { "data": { - "image/png": "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\n", "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" + "
" + ], + "image/png": "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gQN66623At1iyyzcsLffftuSZG3cuNFnfNy4cVZ0dLTV0NAQoM7aRmNjo9XY2GhZlmWdPXvWkmQtWrQosE21gdOnTzcbq66utrp162Y98MADAejI/4YPH27FxMQEuo02NWHCBCs5OdmaMmWKFRYWFuh2blhRUZElyXr99dcD3Uqb++tf/2qFhYVZM2fODHQrN8Uf/vAHS5KVlZUV6FZuSGZmpiXJOnr0qM/4E088YUmyKisrA9TZV+MSVRvYunWrOnXqpMmTJ/uMp6Wl6W9/+5v27dsXoM7aRtMWq2m6du3abKxTp06KjY1VWVlZADryP6fT6fM1J8Fuw4YN2rNnj9asWRPoVnAN1q1bp5qaGs2bNy/QrdwU69evl81m07Rp0wLdyg1p3769pOZfkRAZGal27drp9ttvD0RbV0XAaQMlJSX65je/2eyNIz4+3nsewaGqqkoHDx7Ut771rUC30iYaGxvV0NCgs2fPas2aNdq5c6cxby5nzpzR3LlzlZeXp549ewa6nTY3e/ZshYSEKDw8XA8++KDef//9QLd0w9577z05HA4dOXJEQ4YMUUhIiLp27aonn3xSbrc70O21qaqqKm3ZskUPPPCA+vbtG+h2bsiUKVMUGRmpmTNn6vjx46qurlZhYaFefvllzZ49W2FhYYFusUUEnDbgcrla/CbzprGWvgEdt6bZs2erpqZGmZmZgW6lTcyaNUvt27dX165d9fTTT2vVqlX6j//4j0C31SZmzZqlgQMHaubMmYFupU1FRERozpw5evnll1VUVKSVK1eqrKxMCQkJ2rlzZ6DbuyHl5eWqra3V5MmT9YMf/EC7du3Sc889p9dee03jx4+XZdBzZzdt2qSLFy/q3//93wPdyg3r06eP9u7dq5KSEvXr10/h4eFKTk7WlClTtHLlykC3d0Xm7FUH2FddwjHx8o6JFixYoN/85jdavXq1hg4dGuh22sTzzz+v6dOn68yZM/rd736np556SjU1NXr22WcD3doNeeONN/S73/1OH3/8sXF/v7797W/r29/+tvfnUaNGaeLEiYqLi1N6eroefPDBAHZ3YxobG+XxeLRo0SJlZGRIkhISEnT77bdr7ty52r17t8aOHRvgLtvG+vXrFRUVpYkTJwa6lRtWWlqq5ORkdevWTVu2bFGXLl20b98+LVmyRBcuXND69esD3WKLCDhtICoqqsVdmsrKSklqcXcHt5acnBwtWbJES5cu1VNPPRXodtpMr1691KtXL0nS+PHjJUnz58/XlClT1KVLl0C2dt0uXLig2bNn6yc/+Ymio6N1/vx5SdKlS5ckffEJsvbt29+y2+bXIzIyUhMmTNB//dd/6eLFi+rQoUOgW7ouUVFR+stf/tIspD300EOaO3euDh48aETA+dOf/qQ//vGPmjNnTlB8Z9PVZGRkyO1265NPPvH+vbrvvvvkdDo1bdo0Pf7447r//vsD3GVzXKJqA3Fxcfrzn/+shoYGn/Hi4mJJZny002Q5OTnKzs5Wdna2nn/++UC341f33HOPGhoadPz48UC3ct0qKip0+vRprVixQp07d/YemzZtUk1NjTp37qwf/ehHgW6zzTVdvgnmHaum+xK/rGlt7dqZ8ZbUtKMxffr0AHfSNj755BPFxsY2+5+Gpo++36r3mZrxb1OATZw4URcuXNAbb7zhM/7rX/9a0dHRGj58eIA6w9UsXrxY2dnZysrK0qJFiwLdjt8VFRWpXbt2uuuuuwLdynXr3r27ioqKmh0PPvigQkNDVVRUpCVLlgS6zTZ17tw5FRYWasiQIQoNDQ10O9dt0qRJkqTt27f7jL/zzjuSpBEjRtz0ntpaXV2dNmzYoHvuuceY/7mNjo7WoUOHdOHCBZ/xvXv3StIte5M/l6jawEMPPaRx48Zp5syZcrvd6t+/vzZt2qQdO3Zow4YNuu222wLd4g3bvn27ampqVF1dLemLBz9t2bJF0heXPjp27BjI9q7LihUrtHDhQiUlJenhhx9u9qTRYP6P7RNPPKHw8HDdc8896tatmyoqKvT666/rt7/9rZ577rmgvTwlSaGhoUpISGg2XlBQoNtuu63Fc8Hk0UcfVa9evfSd73xHTqdTf/nLX7RixQqdPn1aBQUFgW7vhiQmJio5OVkvvPCCGhsbNWLECP3xj39UTk6OJkyYoO9+97uBbvGGbdu2TZWVlcbs3kjS3LlzlZKSonHjxunpp5+W0+nUhx9+qGXLlik2NlYPPfRQoFtsWYCfw2OM6upq66c//anVvXt36/bbb7fi4+OtTZs2BbqtNtO7d29LUovHiRMnAt3edbn//vuvuKZg/6vx6quvWqNGjbKcTqcVEhJiRUZGWvfff7/13//934FuzW9MedDfsmXLrCFDhlgRERHWbbfdZnXp0sWaOHGi9dFHHwW6tTZRW1trzZs3z4qJibFCQkKsXr16WfPnz7c8Hk+gW2sT48aNs8LCwiy32x3oVtrUu+++ayUmJlrdu3e3OnToYH3jG9+wnnnmGauioiLQrV2RzbIM+lweAACAuAcHAAAYiIADAACMQ8ABAADGIeAAAADjEHAAAIBxCDgAAMA4BBwAAGAcAg4AADAOAQcAABiHgAMAAIxDwAEAAMYh4AAAAOP8PxLbjyF//O2aAAAAAElFTkSuQmCC" }, + "metadata": {}, "output_type": "display_data" } ], - "source": [ - "from scipy.stats import geom, expon\n", - "geom_distrib=geom(0.5).rvs(10000, random_state=42)\n", - "expon_distrib=expon(scale=1).rvs(10000, random_state=42)\n", - "plt.hist(geom_distrib, bins=50)\n", - "plt.show()\n", - "plt.hist(expon_distrib, bins=50)\n", - "plt.show()" - ] + "execution_count": 116 }, { "cell_type": "markdown", @@ -5157,114 +5778,281 @@ }, { "cell_type": "code", - "execution_count": 117, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:38:55.379897Z", + "start_time": "2024-06-08T21:24:28.873658Z" + } + }, + "source": [ + "from sklearn.model_selection import GridSearchCV\n", + "\n", + "param_grid = [\n", + " {'kernel': ['linear'], 'C': [10., 30., 100., 300., 1000., 3000., 10000., 30000.0]},\n", + " {'kernel': ['rbf'], 'C': [1.0, 3.0, 10., 30., 100., 300., 1000.0],\n", + " 'gamma': [0.01, 0.03, 0.1, 0.3, 1.0, 3.0]},\n", + " ]\n", + "\n", + "svm_reg = SVR()\n", + "grid_search = GridSearchCV(svm_reg, param_grid, cv=5, scoring='neg_mean_squared_error', verbose=2)\n", + "grid_search.fit(housing_prepared, housing_labels)" + ], "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Fitting 5 folds for each of 50 candidates, totalling 250 fits\n", - "[CV] C=10.0, kernel=linear ...........................................\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "[Parallel(n_jobs=1)]: Using backend SequentialBackend with 1 concurrent workers.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[CV] ............................ C=10.0, kernel=linear, total= 3.9s\n", - "[CV] C=10.0, kernel=linear ...........................................\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "[Parallel(n_jobs=1)]: Done 1 out of 1 | elapsed: 3.9s remaining: 0.0s\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[CV] ............................ C=10.0, kernel=linear, total= 3.9s\n", - "[CV] C=10.0, kernel=linear ...........................................\n", - "[CV] ............................ C=10.0, kernel=linear, total= 4.6s\n", - "[CV] C=10.0, kernel=linear ...........................................\n", - "[CV] ............................ C=10.0, kernel=linear, total= 4.2s\n", - "[CV] C=10.0, kernel=linear ...........................................\n", - "[CV] ............................ C=10.0, kernel=linear, total= 4.5s\n", - "[CV] C=30.0, kernel=linear ...........................................\n", - "[CV] ............................ C=30.0, kernel=linear, total= 4.1s\n", - "[CV] C=30.0, kernel=linear ...........................................\n", - "[CV] ............................ C=30.0, kernel=linear, total= 4.2s\n", - "[CV] C=30.0, kernel=linear ...........................................\n", - "[CV] ............................ C=30.0, kernel=linear, total= 4.3s\n", - "[CV] C=30.0, kernel=linear ...........................................\n", - "[CV] ............................ C=30.0, kernel=linear, total= 4.0s\n", - "[CV] C=30.0, kernel=linear ...........................................\n", - "[CV] ............................ C=30.0, kernel=linear, total= 3.9s\n", - "[CV] C=100.0, kernel=linear ..........................................\n", - "[CV] ........................... C=100.0, kernel=linear, total= 3.9s\n", - "[CV] C=100.0, kernel=linear ..........................................\n", - "[CV] ........................... C=100.0, kernel=linear, total= 4.0s\n", - "[CV] C=100.0, kernel=linear ..........................................\n", - "[CV] ........................... C=100.0, kernel=linear, total= 4.0s\n", - "[CV] C=100.0, kernel=linear ..........................................\n", - "[CV] ........................... C=100.0, kernel=linear, total= 4.0s\n", - "[CV] C=100.0, kernel=linear ..........................................\n", - "[CV] ........................... C=100.0, kernel=linear, total= 3.9s\n", - "[CV] C=300.0, kernel=linear ..........................................\n", - "[CV] ........................... C=300.0, kernel=linear, total= 4.1s\n", - "<<434 more lines>>\n", - "[CV] C=1000.0, gamma=0.1, kernel=rbf .................................\n", - "[CV] .................. C=1000.0, gamma=0.1, kernel=rbf, total= 6.7s\n", - "[CV] C=1000.0, gamma=0.1, kernel=rbf .................................\n", - "[CV] .................. C=1000.0, gamma=0.1, kernel=rbf, total= 6.8s\n", - "[CV] C=1000.0, gamma=0.3, kernel=rbf .................................\n", - "[CV] .................. C=1000.0, gamma=0.3, kernel=rbf, total= 6.7s\n", - "[CV] C=1000.0, gamma=0.3, kernel=rbf .................................\n", - "[CV] .................. C=1000.0, gamma=0.3, kernel=rbf, total= 6.7s\n", - "[CV] C=1000.0, gamma=0.3, kernel=rbf .................................\n", - "[CV] .................. C=1000.0, gamma=0.3, kernel=rbf, total= 6.7s\n", - "[CV] C=1000.0, gamma=0.3, kernel=rbf .................................\n", - "[CV] .................. C=1000.0, gamma=0.3, kernel=rbf, total= 6.7s\n", - "[CV] C=1000.0, gamma=0.3, kernel=rbf .................................\n", - "[CV] .................. C=1000.0, gamma=0.3, kernel=rbf, total= 6.7s\n", - "[CV] C=1000.0, gamma=1.0, kernel=rbf .................................\n", - "[CV] .................. C=1000.0, gamma=1.0, kernel=rbf, total= 6.7s\n", - "[CV] C=1000.0, gamma=1.0, kernel=rbf .................................\n", - "[CV] .................. C=1000.0, gamma=1.0, kernel=rbf, total= 6.8s\n", - "[CV] C=1000.0, gamma=1.0, kernel=rbf .................................\n", - "[CV] .................. C=1000.0, gamma=1.0, kernel=rbf, total= 6.7s\n", - "[CV] C=1000.0, gamma=1.0, kernel=rbf .................................\n", - "[CV] .................. C=1000.0, gamma=1.0, kernel=rbf, total= 6.7s\n", - "[CV] C=1000.0, gamma=1.0, kernel=rbf .................................\n", - "[CV] .................. C=1000.0, gamma=1.0, kernel=rbf, total= 6.7s\n", - "[CV] C=1000.0, gamma=3.0, kernel=rbf .................................\n", - "[CV] .................. C=1000.0, gamma=3.0, kernel=rbf, total= 7.4s\n", - "[CV] C=1000.0, gamma=3.0, kernel=rbf .................................\n", - "[CV] .................. C=1000.0, gamma=3.0, kernel=rbf, total= 7.4s\n", - "[CV] C=1000.0, gamma=3.0, kernel=rbf .................................\n", - "[CV] .................. C=1000.0, gamma=3.0, kernel=rbf, total= 7.4s\n", - "[CV] C=1000.0, gamma=3.0, kernel=rbf .................................\n", - "[CV] .................. C=1000.0, gamma=3.0, kernel=rbf, total= 7.4s\n", - "[CV] C=1000.0, gamma=3.0, kernel=rbf .................................\n", - "[CV] .................. C=1000.0, gamma=3.0, kernel=rbf, total= 7.3s\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "[Parallel(n_jobs=1)]: Done 250 out of 250 | elapsed: 26.4min finished\n" + "[CV] END ..............................C=10.0, kernel=linear; total time= 2.4s\n", + "[CV] END ..............................C=10.0, kernel=linear; total time= 2.4s\n", + "[CV] END ..............................C=10.0, kernel=linear; total time= 2.4s\n", + "[CV] END ..............................C=10.0, kernel=linear; total time= 2.5s\n", + "[CV] END ..............................C=10.0, kernel=linear; total time= 2.5s\n", + "[CV] END ..............................C=30.0, kernel=linear; total time= 2.4s\n", + "[CV] END ..............................C=30.0, kernel=linear; total time= 2.4s\n", + "[CV] END ..............................C=30.0, kernel=linear; total time= 2.4s\n", + "[CV] END ..............................C=30.0, kernel=linear; total time= 2.4s\n", + "[CV] END ..............................C=30.0, kernel=linear; total time= 2.4s\n", + "[CV] END .............................C=100.0, kernel=linear; total time= 2.4s\n", + "[CV] END .............................C=100.0, kernel=linear; total time= 2.3s\n", + "[CV] END .............................C=100.0, kernel=linear; total time= 2.3s\n", + "[CV] END .............................C=100.0, kernel=linear; total time= 2.4s\n", + "[CV] END .............................C=100.0, kernel=linear; total time= 2.3s\n", + "[CV] END .............................C=300.0, kernel=linear; total time= 2.4s\n", + "[CV] END .............................C=300.0, kernel=linear; total time= 2.3s\n", + "[CV] END .............................C=300.0, kernel=linear; total time= 2.3s\n", + "[CV] END .............................C=300.0, kernel=linear; total time= 2.4s\n", + "[CV] END .............................C=300.0, kernel=linear; total time= 2.4s\n", + "[CV] END ............................C=1000.0, kernel=linear; total time= 2.4s\n", + "[CV] END ............................C=1000.0, kernel=linear; total time= 2.4s\n", + "[CV] END ............................C=1000.0, kernel=linear; total time= 2.5s\n", + "[CV] END ............................C=1000.0, kernel=linear; total time= 2.4s\n", + "[CV] END ............................C=1000.0, kernel=linear; total time= 2.5s\n", + "[CV] END ............................C=3000.0, kernel=linear; total time= 2.6s\n", + "[CV] END ............................C=3000.0, kernel=linear; total time= 2.6s\n", + "[CV] END ............................C=3000.0, kernel=linear; total time= 2.6s\n", + "[CV] END ............................C=3000.0, kernel=linear; total time= 2.6s\n", + "[CV] END ............................C=3000.0, kernel=linear; total time= 2.6s\n", + "[CV] END ...........................C=10000.0, kernel=linear; total time= 3.1s\n", + "[CV] END ...........................C=10000.0, kernel=linear; total time= 3.1s\n", + "[CV] END ...........................C=10000.0, kernel=linear; total time= 3.1s\n", + "[CV] END ...........................C=10000.0, kernel=linear; total time= 3.1s\n", + "[CV] END ...........................C=10000.0, kernel=linear; total time= 3.2s\n", + "[CV] END ...........................C=30000.0, kernel=linear; total time= 4.5s\n", + "[CV] END ...........................C=30000.0, kernel=linear; total time= 4.6s\n", + "[CV] END ...........................C=30000.0, kernel=linear; total time= 4.3s\n", + "[CV] END ...........................C=30000.0, kernel=linear; total time= 4.4s\n", + "[CV] END ...........................C=30000.0, kernel=linear; total time= 4.4s\n", + "[CV] END ......................C=1.0, gamma=0.01, kernel=rbf; total time= 3.7s\n", + "[CV] END ......................C=1.0, gamma=0.01, kernel=rbf; total time= 3.8s\n", + "[CV] END ......................C=1.0, gamma=0.01, kernel=rbf; total time= 3.8s\n", + "[CV] END ......................C=1.0, gamma=0.01, kernel=rbf; total time= 3.8s\n", + "[CV] END ......................C=1.0, gamma=0.01, kernel=rbf; total time= 3.7s\n", + "[CV] END ......................C=1.0, gamma=0.03, kernel=rbf; total time= 3.7s\n", + "[CV] END ......................C=1.0, gamma=0.03, kernel=rbf; total time= 3.7s\n", + "[CV] END ......................C=1.0, gamma=0.03, kernel=rbf; total time= 3.7s\n", + "[CV] END ......................C=1.0, gamma=0.03, kernel=rbf; total time= 3.7s\n", + "[CV] END ......................C=1.0, gamma=0.03, kernel=rbf; total time= 3.7s\n", + "[CV] END .......................C=1.0, gamma=0.1, kernel=rbf; total time= 3.7s\n", + "[CV] END .......................C=1.0, gamma=0.1, kernel=rbf; total time= 3.7s\n", + "[CV] END .......................C=1.0, gamma=0.1, kernel=rbf; total time= 3.7s\n", + "[CV] END .......................C=1.0, gamma=0.1, kernel=rbf; total time= 3.7s\n", + "[CV] END .......................C=1.0, gamma=0.1, kernel=rbf; total time= 3.7s\n", + "[CV] END .......................C=1.0, gamma=0.3, kernel=rbf; total time= 3.6s\n", + "[CV] END .......................C=1.0, gamma=0.3, kernel=rbf; total time= 3.6s\n", + "[CV] END .......................C=1.0, gamma=0.3, kernel=rbf; total time= 3.6s\n", + "[CV] END .......................C=1.0, gamma=0.3, kernel=rbf; total time= 3.6s\n", + "[CV] END .......................C=1.0, gamma=0.3, kernel=rbf; total time= 3.6s\n", + "[CV] END .......................C=1.0, gamma=1.0, kernel=rbf; total time= 3.4s\n", + "[CV] END .......................C=1.0, gamma=1.0, kernel=rbf; total time= 3.4s\n", + "[CV] END .......................C=1.0, gamma=1.0, kernel=rbf; total time= 3.4s\n", + "[CV] END .......................C=1.0, gamma=1.0, kernel=rbf; total time= 3.4s\n", + "[CV] END .......................C=1.0, gamma=1.0, kernel=rbf; total time= 3.5s\n", + "[CV] END .......................C=1.0, gamma=3.0, kernel=rbf; total time= 3.4s\n", + "[CV] END .......................C=1.0, gamma=3.0, kernel=rbf; total time= 3.4s\n", + "[CV] END .......................C=1.0, gamma=3.0, kernel=rbf; total time= 3.4s\n", + "[CV] END .......................C=1.0, gamma=3.0, kernel=rbf; total time= 3.4s\n", + "[CV] END .......................C=1.0, gamma=3.0, kernel=rbf; total time= 3.4s\n", + "[CV] END ......................C=3.0, gamma=0.01, kernel=rbf; total time= 3.8s\n", + "[CV] END ......................C=3.0, gamma=0.01, kernel=rbf; total time= 3.7s\n", + "[CV] END ......................C=3.0, gamma=0.01, kernel=rbf; total time= 3.7s\n", + "[CV] END ......................C=3.0, gamma=0.01, kernel=rbf; total time= 3.8s\n", + "[CV] END ......................C=3.0, gamma=0.01, kernel=rbf; total time= 3.8s\n", + "[CV] END ......................C=3.0, gamma=0.03, kernel=rbf; total time= 3.7s\n", + "[CV] END ......................C=3.0, gamma=0.03, kernel=rbf; total time= 3.7s\n", + "[CV] END ......................C=3.0, gamma=0.03, kernel=rbf; total time= 3.7s\n", + "[CV] END ......................C=3.0, gamma=0.03, kernel=rbf; total time= 3.7s\n", + "[CV] END ......................C=3.0, gamma=0.03, kernel=rbf; total time= 3.7s\n", + "[CV] END .......................C=3.0, gamma=0.1, kernel=rbf; total time= 3.7s\n", + "[CV] END .......................C=3.0, gamma=0.1, kernel=rbf; total time= 3.7s\n", + "[CV] END .......................C=3.0, gamma=0.1, kernel=rbf; total time= 3.7s\n", + "[CV] END .......................C=3.0, gamma=0.1, kernel=rbf; total time= 3.7s\n", + "[CV] END .......................C=3.0, gamma=0.1, kernel=rbf; total time= 3.7s\n", + "[CV] END .......................C=3.0, gamma=0.3, kernel=rbf; total time= 3.6s\n", + "[CV] END .......................C=3.0, gamma=0.3, kernel=rbf; total time= 3.6s\n", + "[CV] END .......................C=3.0, gamma=0.3, kernel=rbf; total time= 3.6s\n", + "[CV] END .......................C=3.0, gamma=0.3, kernel=rbf; total time= 3.6s\n", + "[CV] END .......................C=3.0, gamma=0.3, kernel=rbf; total time= 3.6s\n", + "[CV] END .......................C=3.0, gamma=1.0, kernel=rbf; total time= 3.4s\n", + "[CV] END .......................C=3.0, gamma=1.0, kernel=rbf; total time= 3.5s\n", + "[CV] END .......................C=3.0, gamma=1.0, kernel=rbf; total time= 3.5s\n", + "[CV] END .......................C=3.0, gamma=1.0, kernel=rbf; total time= 3.5s\n", + "[CV] END .......................C=3.0, gamma=1.0, kernel=rbf; total time= 3.5s\n", + "[CV] END .......................C=3.0, gamma=3.0, kernel=rbf; total time= 3.4s\n", + "[CV] END .......................C=3.0, gamma=3.0, kernel=rbf; total time= 3.4s\n", + "[CV] END .......................C=3.0, gamma=3.0, kernel=rbf; total time= 3.4s\n", + "[CV] END .......................C=3.0, gamma=3.0, kernel=rbf; total time= 3.4s\n", + "[CV] END .......................C=3.0, gamma=3.0, kernel=rbf; total time= 3.4s\n", + "[CV] END .....................C=10.0, gamma=0.01, kernel=rbf; total time= 3.8s\n", + "[CV] END .....................C=10.0, gamma=0.01, kernel=rbf; total time= 3.7s\n", + "[CV] END .....................C=10.0, gamma=0.01, kernel=rbf; total time= 3.7s\n", + "[CV] END .....................C=10.0, gamma=0.01, kernel=rbf; total time= 3.7s\n", + "[CV] END .....................C=10.0, gamma=0.01, kernel=rbf; total time= 3.8s\n", + "[CV] END .....................C=10.0, gamma=0.03, kernel=rbf; total time= 3.7s\n", + "[CV] END .....................C=10.0, gamma=0.03, kernel=rbf; total time= 3.7s\n", + "[CV] END .....................C=10.0, gamma=0.03, kernel=rbf; total time= 3.7s\n", + "[CV] END .....................C=10.0, gamma=0.03, kernel=rbf; total time= 3.7s\n", + "[CV] END .....................C=10.0, gamma=0.03, kernel=rbf; total time= 3.7s\n", + "[CV] END ......................C=10.0, gamma=0.1, kernel=rbf; total time= 3.7s\n", + "[CV] END ......................C=10.0, gamma=0.1, kernel=rbf; total time= 3.7s\n", + "[CV] END ......................C=10.0, gamma=0.1, kernel=rbf; total time= 3.7s\n", + "[CV] END ......................C=10.0, gamma=0.1, kernel=rbf; total time= 3.7s\n", + "[CV] END ......................C=10.0, gamma=0.1, kernel=rbf; total time= 3.7s\n", + "[CV] END ......................C=10.0, gamma=0.3, kernel=rbf; total time= 3.6s\n", + "[CV] END ......................C=10.0, gamma=0.3, kernel=rbf; total time= 3.6s\n", + "[CV] END ......................C=10.0, gamma=0.3, kernel=rbf; total time= 3.6s\n", + "[CV] END ......................C=10.0, gamma=0.3, kernel=rbf; total time= 3.6s\n", + "[CV] END ......................C=10.0, gamma=0.3, kernel=rbf; total time= 3.6s\n", + "[CV] END ......................C=10.0, gamma=1.0, kernel=rbf; total time= 3.4s\n", + "[CV] END ......................C=10.0, gamma=1.0, kernel=rbf; total time= 3.4s\n", + "[CV] END ......................C=10.0, gamma=1.0, kernel=rbf; total time= 3.4s\n", + "[CV] END ......................C=10.0, gamma=1.0, kernel=rbf; total time= 3.4s\n", + "[CV] END ......................C=10.0, gamma=1.0, kernel=rbf; total time= 3.4s\n", + "[CV] END ......................C=10.0, gamma=3.0, kernel=rbf; total time= 3.4s\n", + "[CV] END ......................C=10.0, gamma=3.0, kernel=rbf; total time= 3.3s\n", + "[CV] END ......................C=10.0, gamma=3.0, kernel=rbf; total time= 3.4s\n", + "[CV] END ......................C=10.0, gamma=3.0, kernel=rbf; total time= 3.4s\n", + "[CV] END ......................C=10.0, gamma=3.0, kernel=rbf; total time= 3.4s\n", + "[CV] END .....................C=30.0, gamma=0.01, kernel=rbf; total time= 3.8s\n", + "[CV] END .....................C=30.0, gamma=0.01, kernel=rbf; total time= 3.7s\n", + "[CV] END .....................C=30.0, gamma=0.01, kernel=rbf; total time= 3.7s\n", + "[CV] END .....................C=30.0, gamma=0.01, kernel=rbf; total time= 3.8s\n", + "[CV] END .....................C=30.0, gamma=0.01, kernel=rbf; total time= 3.7s\n", + "[CV] END .....................C=30.0, gamma=0.03, kernel=rbf; total time= 3.7s\n", + "[CV] END .....................C=30.0, gamma=0.03, kernel=rbf; total time= 3.7s\n", + "[CV] END .....................C=30.0, gamma=0.03, kernel=rbf; total time= 3.7s\n", + "[CV] END .....................C=30.0, gamma=0.03, kernel=rbf; total time= 3.7s\n", + "[CV] END .....................C=30.0, gamma=0.03, kernel=rbf; total time= 3.7s\n", + "[CV] END ......................C=30.0, gamma=0.1, kernel=rbf; total time= 3.7s\n", + "[CV] END ......................C=30.0, gamma=0.1, kernel=rbf; total time= 3.6s\n", + "[CV] END ......................C=30.0, gamma=0.1, kernel=rbf; total time= 3.6s\n", + "[CV] END ......................C=30.0, gamma=0.1, kernel=rbf; total time= 3.7s\n", + "[CV] END ......................C=30.0, gamma=0.1, kernel=rbf; total time= 3.6s\n", + "[CV] END ......................C=30.0, gamma=0.3, kernel=rbf; total time= 3.6s\n", + "[CV] END ......................C=30.0, gamma=0.3, kernel=rbf; total time= 3.5s\n", + "[CV] END ......................C=30.0, gamma=0.3, kernel=rbf; total time= 3.6s\n", + "[CV] END ......................C=30.0, gamma=0.3, kernel=rbf; total time= 3.6s\n", + "[CV] END ......................C=30.0, gamma=0.3, kernel=rbf; total time= 3.6s\n", + "[CV] END ......................C=30.0, gamma=1.0, kernel=rbf; total time= 3.5s\n", + "[CV] END ......................C=30.0, gamma=1.0, kernel=rbf; total time= 3.5s\n", + "[CV] END ......................C=30.0, gamma=1.0, kernel=rbf; total time= 3.5s\n", + "[CV] END ......................C=30.0, gamma=1.0, kernel=rbf; total time= 3.5s\n", + "[CV] END ......................C=30.0, gamma=1.0, kernel=rbf; total time= 3.5s\n", + "[CV] END ......................C=30.0, gamma=3.0, kernel=rbf; total time= 3.4s\n", + "[CV] END ......................C=30.0, gamma=3.0, kernel=rbf; total time= 3.4s\n", + "[CV] END ......................C=30.0, gamma=3.0, kernel=rbf; total time= 3.4s\n", + "[CV] END ......................C=30.0, gamma=3.0, kernel=rbf; total time= 3.4s\n", + "[CV] END ......................C=30.0, gamma=3.0, kernel=rbf; total time= 3.4s\n", + "[CV] END ....................C=100.0, gamma=0.01, kernel=rbf; total time= 3.8s\n", + "[CV] END ....................C=100.0, gamma=0.01, kernel=rbf; total time= 3.8s\n", + "[CV] END ....................C=100.0, gamma=0.01, kernel=rbf; total time= 3.8s\n", + "[CV] END ....................C=100.0, gamma=0.01, kernel=rbf; total time= 3.7s\n", + "[CV] END ....................C=100.0, gamma=0.01, kernel=rbf; total time= 3.6s\n", + "[CV] END ....................C=100.0, gamma=0.03, kernel=rbf; total time= 3.7s\n", + "[CV] END ....................C=100.0, gamma=0.03, kernel=rbf; total time= 3.6s\n", + "[CV] END ....................C=100.0, gamma=0.03, kernel=rbf; total time= 3.7s\n", + "[CV] END ....................C=100.0, gamma=0.03, kernel=rbf; total time= 3.7s\n", + "[CV] END ....................C=100.0, gamma=0.03, kernel=rbf; total time= 3.7s\n", + "[CV] END .....................C=100.0, gamma=0.1, kernel=rbf; total time= 3.5s\n", + "[CV] END .....................C=100.0, gamma=0.1, kernel=rbf; total time= 3.6s\n", + "[CV] END .....................C=100.0, gamma=0.1, kernel=rbf; total time= 3.7s\n", + "[CV] END .....................C=100.0, gamma=0.1, kernel=rbf; total time= 3.6s\n", + "[CV] END .....................C=100.0, gamma=0.1, kernel=rbf; total time= 3.7s\n", + "[CV] END .....................C=100.0, gamma=0.3, kernel=rbf; total time= 3.5s\n", + "[CV] END .....................C=100.0, gamma=0.3, kernel=rbf; total time= 3.6s\n", + "[CV] END .....................C=100.0, gamma=0.3, kernel=rbf; total time= 3.5s\n", + "[CV] END .....................C=100.0, gamma=0.3, kernel=rbf; total time= 3.5s\n", + "[CV] END .....................C=100.0, gamma=0.3, kernel=rbf; total time= 3.6s\n", + "[CV] END .....................C=100.0, gamma=1.0, kernel=rbf; total time= 3.5s\n", + "[CV] END .....................C=100.0, gamma=1.0, kernel=rbf; total time= 3.5s\n", + "[CV] END .....................C=100.0, gamma=1.0, kernel=rbf; total time= 3.4s\n", + "[CV] END .....................C=100.0, gamma=1.0, kernel=rbf; total time= 3.5s\n", + "[CV] END .....................C=100.0, gamma=1.0, kernel=rbf; total time= 3.4s\n", + "[CV] END .....................C=100.0, gamma=3.0, kernel=rbf; total time= 3.3s\n", + "[CV] END .....................C=100.0, gamma=3.0, kernel=rbf; total time= 3.4s\n", + "[CV] END .....................C=100.0, gamma=3.0, kernel=rbf; total time= 3.4s\n", + "[CV] END .....................C=100.0, gamma=3.0, kernel=rbf; total time= 3.4s\n", + "[CV] END .....................C=100.0, gamma=3.0, kernel=rbf; total time= 3.3s\n", + "[CV] END ....................C=300.0, gamma=0.01, kernel=rbf; total time= 3.7s\n", + "[CV] END ....................C=300.0, gamma=0.01, kernel=rbf; total time= 3.7s\n", + "[CV] END ....................C=300.0, gamma=0.01, kernel=rbf; total time= 3.6s\n", + "[CV] END ....................C=300.0, gamma=0.01, kernel=rbf; total time= 3.7s\n", + "[CV] END ....................C=300.0, gamma=0.01, kernel=rbf; total time= 3.6s\n", + "[CV] END ....................C=300.0, gamma=0.03, kernel=rbf; total time= 3.6s\n", + "[CV] END ....................C=300.0, gamma=0.03, kernel=rbf; total time= 3.6s\n", + "[CV] END ....................C=300.0, gamma=0.03, kernel=rbf; total time= 3.5s\n", + "[CV] END ....................C=300.0, gamma=0.03, kernel=rbf; total time= 3.5s\n", + "[CV] END ....................C=300.0, gamma=0.03, kernel=rbf; total time= 3.6s\n", + "[CV] END .....................C=300.0, gamma=0.1, kernel=rbf; total time= 3.5s\n", + "[CV] END .....................C=300.0, gamma=0.1, kernel=rbf; total time= 3.5s\n", + "[CV] END .....................C=300.0, gamma=0.1, kernel=rbf; total time= 3.6s\n", + "[CV] END .....................C=300.0, gamma=0.1, kernel=rbf; total time= 3.5s\n", + "[CV] END .....................C=300.0, gamma=0.1, kernel=rbf; total time= 3.5s\n", + "[CV] END .....................C=300.0, gamma=0.3, kernel=rbf; total time= 3.5s\n", + "[CV] END .....................C=300.0, gamma=0.3, kernel=rbf; total time= 3.4s\n", + "[CV] END .....................C=300.0, gamma=0.3, kernel=rbf; total time= 3.6s\n", + "[CV] END .....................C=300.0, gamma=0.3, kernel=rbf; total time= 3.5s\n", + "[CV] END .....................C=300.0, gamma=0.3, kernel=rbf; total time= 3.5s\n", + "[CV] END .....................C=300.0, gamma=1.0, kernel=rbf; total time= 3.6s\n", + "[CV] END .....................C=300.0, gamma=1.0, kernel=rbf; total time= 3.6s\n", + "[CV] END .....................C=300.0, gamma=1.0, kernel=rbf; total time= 3.6s\n", + "[CV] END .....................C=300.0, gamma=1.0, kernel=rbf; total time= 3.6s\n", + "[CV] END .....................C=300.0, gamma=1.0, kernel=rbf; total time= 3.5s\n", + "[CV] END .....................C=300.0, gamma=3.0, kernel=rbf; total time= 3.4s\n", + "[CV] END .....................C=300.0, gamma=3.0, kernel=rbf; total time= 3.4s\n", + "[CV] END .....................C=300.0, gamma=3.0, kernel=rbf; total time= 3.5s\n", + "[CV] END .....................C=300.0, gamma=3.0, kernel=rbf; total time= 3.4s\n", + "[CV] END .....................C=300.0, gamma=3.0, kernel=rbf; total time= 3.3s\n", + "[CV] END ...................C=1000.0, gamma=0.01, kernel=rbf; total time= 3.6s\n", + "[CV] END ...................C=1000.0, gamma=0.01, kernel=rbf; total time= 3.6s\n", + "[CV] END ...................C=1000.0, gamma=0.01, kernel=rbf; total time= 3.6s\n", + "[CV] END ...................C=1000.0, gamma=0.01, kernel=rbf; total time= 3.6s\n", + "[CV] END ...................C=1000.0, gamma=0.01, kernel=rbf; total time= 3.6s\n", + "[CV] END ...................C=1000.0, gamma=0.03, kernel=rbf; total time= 3.6s\n", + "[CV] END ...................C=1000.0, gamma=0.03, kernel=rbf; total time= 3.6s\n", + "[CV] END ...................C=1000.0, gamma=0.03, kernel=rbf; total time= 3.6s\n", + "[CV] END ...................C=1000.0, gamma=0.03, kernel=rbf; total time= 3.6s\n", + "[CV] END ...................C=1000.0, gamma=0.03, kernel=rbf; total time= 3.6s\n", + "[CV] END ....................C=1000.0, gamma=0.1, kernel=rbf; total time= 3.5s\n", + "[CV] END ....................C=1000.0, gamma=0.1, kernel=rbf; total time= 3.6s\n", + "[CV] END ....................C=1000.0, gamma=0.1, kernel=rbf; total time= 3.7s\n", + "[CV] END ....................C=1000.0, gamma=0.1, kernel=rbf; total time= 3.6s\n", + "[CV] END ....................C=1000.0, gamma=0.1, kernel=rbf; total time= 3.6s\n", + "[CV] END ....................C=1000.0, gamma=0.3, kernel=rbf; total time= 3.5s\n", + "[CV] END ....................C=1000.0, gamma=0.3, kernel=rbf; total time= 3.5s\n", + "[CV] END ....................C=1000.0, gamma=0.3, kernel=rbf; total time= 3.5s\n", + "[CV] END ....................C=1000.0, gamma=0.3, kernel=rbf; total time= 3.6s\n", + "[CV] END ....................C=1000.0, gamma=0.3, kernel=rbf; total time= 3.6s\n", + "[CV] END ....................C=1000.0, gamma=1.0, kernel=rbf; total time= 3.4s\n", + "[CV] END ....................C=1000.0, gamma=1.0, kernel=rbf; total time= 3.4s\n", + "[CV] END ....................C=1000.0, gamma=1.0, kernel=rbf; total time= 3.4s\n", + "[CV] END ....................C=1000.0, gamma=1.0, kernel=rbf; total time= 3.4s\n", + "[CV] END ....................C=1000.0, gamma=1.0, kernel=rbf; total time= 3.4s\n", + "[CV] END ....................C=1000.0, gamma=3.0, kernel=rbf; total time= 3.3s\n", + "[CV] END ....................C=1000.0, gamma=3.0, kernel=rbf; total time= 3.3s\n", + "[CV] END ....................C=1000.0, gamma=3.0, kernel=rbf; total time= 3.3s\n", + "[CV] END ....................C=1000.0, gamma=3.0, kernel=rbf; total time= 3.3s\n", + "[CV] END ....................C=1000.0, gamma=3.0, kernel=rbf; total time= 3.3s\n" ] }, { @@ -5278,6 +6066,23 @@ " 'gamma': [0.01, 0.03, 0.1, 0.3, 1.0, 3.0],\n", " 'kernel': ['rbf']}],\n", " scoring='neg_mean_squared_error', verbose=2)" + ], + "text/html": [ + "
GridSearchCV(cv=5, estimator=SVR(),\n",
+       "             param_grid=[{'C': [10.0, 30.0, 100.0, 300.0, 1000.0, 3000.0,\n",
+       "                                10000.0, 30000.0],\n",
+       "                          'kernel': ['linear']},\n",
+       "                         {'C': [1.0, 3.0, 10.0, 30.0, 100.0, 300.0, 1000.0],\n",
+       "                          'gamma': [0.01, 0.03, 0.1, 0.3, 1.0, 3.0],\n",
+       "                          'kernel': ['rbf']}],\n",
+       "             scoring='neg_mean_squared_error', verbose=2)
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.
" ] }, "execution_count": 117, @@ -5285,19 +6090,7 @@ "output_type": "execute_result" } ], - "source": [ - "from sklearn.model_selection import GridSearchCV\n", - "\n", - "param_grid = [\n", - " {'kernel': ['linear'], 'C': [10., 30., 100., 300., 1000., 3000., 10000., 30000.0]},\n", - " {'kernel': ['rbf'], 'C': [1.0, 3.0, 10., 30., 100., 300., 1000.0],\n", - " 'gamma': [0.01, 0.03, 0.1, 0.3, 1.0, 3.0]},\n", - " ]\n", - "\n", - "svm_reg = SVR()\n", - "grid_search = GridSearchCV(svm_reg, param_grid, cv=5, scoring='neg_mean_squared_error', verbose=2)\n", - "grid_search.fit(housing_prepared, housing_labels)" - ] + "execution_count": 117 }, { "cell_type": "markdown", @@ -5308,13 +6101,22 @@ }, { "cell_type": "code", - "execution_count": 118, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:38:55.382500Z", + "start_time": "2024-06-08T21:38:55.380573Z" + } + }, + "source": [ + "negative_mse = grid_search.best_score_\n", + "rmse = np.sqrt(-negative_mse)\n", + "rmse" + ], "outputs": [ { "data": { "text/plain": [ - "70363.84006944533" + "70286.61835634754" ] }, "execution_count": 118, @@ -5322,11 +6124,7 @@ "output_type": "execute_result" } ], - "source": [ - "negative_mse = grid_search.best_score_\n", - "rmse = np.sqrt(-negative_mse)\n", - "rmse" - ] + "execution_count": 118 }, { "cell_type": "markdown", @@ -5337,8 +6135,15 @@ }, { "cell_type": "code", - "execution_count": 119, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:38:55.385024Z", + "start_time": "2024-06-08T21:38:55.382946Z" + } + }, + "source": [ + "grid_search.best_params_" + ], "outputs": [ { "data": { @@ -5351,9 +6156,7 @@ "output_type": "execute_result" } ], - "source": [ - "grid_search.best_params_" - ] + "execution_count": 119 }, { "cell_type": "markdown", @@ -5385,125 +6188,312 @@ }, { "cell_type": "code", - "execution_count": 120, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:58:02.946768Z", + "start_time": "2024-06-08T21:38:55.385451Z" + } + }, + "source": [ + "from sklearn.model_selection import RandomizedSearchCV\n", + "from scipy.stats import expon, reciprocal\n", + "\n", + "# see https://docs.scipy.org/doc/scipy/reference/stats.html\n", + "# for `expon()` and `reciprocal()` documentation and more probability distribution functions.\n", + "\n", + "# Note: gamma is ignored when kernel is \"linear\"\n", + "param_distribs = {\n", + " 'kernel': ['linear', 'rbf'],\n", + " 'C': reciprocal(20, 200000),\n", + " 'gamma': expon(scale=1.0),\n", + " }\n", + "\n", + "svm_reg = SVR()\n", + "rnd_search = RandomizedSearchCV(svm_reg, param_distributions=param_distribs,\n", + " n_iter=50, cv=5, scoring='neg_mean_squared_error',\n", + " verbose=2, random_state=42)\n", + "rnd_search.fit(housing_prepared, housing_labels)" + ], "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Fitting 5 folds for each of 50 candidates, totalling 250 fits\n", - "[CV] C=629.782329591372, gamma=3.010121430917521, kernel=linear ......\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "[Parallel(n_jobs=1)]: Using backend SequentialBackend with 1 concurrent workers.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[CV] C=629.782329591372, gamma=3.010121430917521, kernel=linear, total= 4.2s\n", - "[CV] C=629.782329591372, gamma=3.010121430917521, kernel=linear ......\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "[Parallel(n_jobs=1)]: Done 1 out of 1 | elapsed: 4.2s remaining: 0.0s\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[CV] C=629.782329591372, gamma=3.010121430917521, kernel=linear, total= 4.0s\n", - "[CV] C=629.782329591372, gamma=3.010121430917521, kernel=linear ......\n", - "[CV] C=629.782329591372, gamma=3.010121430917521, kernel=linear, total= 4.5s\n", - "[CV] C=629.782329591372, gamma=3.010121430917521, kernel=linear ......\n", - "[CV] C=629.782329591372, gamma=3.010121430917521, kernel=linear, total= 4.5s\n", - "[CV] C=629.782329591372, gamma=3.010121430917521, kernel=linear ......\n", - "[CV] C=629.782329591372, gamma=3.010121430917521, kernel=linear, total= 4.3s\n", - "[CV] C=26290.206464300216, gamma=0.9084469696321253, kernel=rbf ......\n", - "[CV] C=26290.206464300216, gamma=0.9084469696321253, kernel=rbf, total= 8.6s\n", - "[CV] C=26290.206464300216, gamma=0.9084469696321253, kernel=rbf ......\n", - "[CV] C=26290.206464300216, gamma=0.9084469696321253, kernel=rbf, total= 9.1s\n", - "[CV] C=26290.206464300216, gamma=0.9084469696321253, kernel=rbf ......\n", - "[CV] C=26290.206464300216, gamma=0.9084469696321253, kernel=rbf, total= 8.8s\n", - "[CV] C=26290.206464300216, gamma=0.9084469696321253, kernel=rbf ......\n", - "[CV] C=26290.206464300216, gamma=0.9084469696321253, kernel=rbf, total= 8.9s\n", - "[CV] C=26290.206464300216, gamma=0.9084469696321253, kernel=rbf ......\n", - "[CV] C=26290.206464300216, gamma=0.9084469696321253, kernel=rbf, total= 9.0s\n", - "[CV] C=84.14107900575871, gamma=0.059838768608680676, kernel=rbf .....\n", - "[CV] C=84.14107900575871, gamma=0.059838768608680676, kernel=rbf, total= 7.0s\n", - "[CV] C=84.14107900575871, gamma=0.059838768608680676, kernel=rbf .....\n", - "[CV] C=84.14107900575871, gamma=0.059838768608680676, kernel=rbf, total= 7.0s\n", - "[CV] C=84.14107900575871, gamma=0.059838768608680676, kernel=rbf .....\n", - "[CV] C=84.14107900575871, gamma=0.059838768608680676, kernel=rbf, total= 6.9s\n", - "[CV] C=84.14107900575871, gamma=0.059838768608680676, kernel=rbf .....\n", - "[CV] C=84.14107900575871, gamma=0.059838768608680676, kernel=rbf, total= 7.0s\n", - "[CV] C=84.14107900575871, gamma=0.059838768608680676, kernel=rbf .....\n", - "[CV] C=84.14107900575871, gamma=0.059838768608680676, kernel=rbf, total= 7.0s\n", - "[CV] C=432.37884813148855, gamma=0.15416196746656105, kernel=linear ..\n", - "[CV] C=432.37884813148855, gamma=0.15416196746656105, kernel=linear, total= 4.6s\n", - "<<434 more lines>>\n", - "[CV] C=61217.04421344494, gamma=1.6279689407405564, kernel=rbf .......\n", - "[CV] C=61217.04421344494, gamma=1.6279689407405564, kernel=rbf, total= 25.2s\n", - "[CV] C=61217.04421344494, gamma=1.6279689407405564, kernel=rbf .......\n", - "[CV] C=61217.04421344494, gamma=1.6279689407405564, kernel=rbf, total= 23.2s\n", - "[CV] C=926.9787684096649, gamma=2.147979593060577, kernel=rbf ........\n", - "[CV] C=926.9787684096649, gamma=2.147979593060577, kernel=rbf, total= 5.7s\n", - "[CV] C=926.9787684096649, gamma=2.147979593060577, kernel=rbf ........\n", - "[CV] C=926.9787684096649, gamma=2.147979593060577, kernel=rbf, total= 5.7s\n", - "[CV] C=926.9787684096649, gamma=2.147979593060577, kernel=rbf ........\n", - "[CV] C=926.9787684096649, gamma=2.147979593060577, kernel=rbf, total= 5.7s\n", - "[CV] C=926.9787684096649, gamma=2.147979593060577, kernel=rbf ........\n", - "[CV] C=926.9787684096649, gamma=2.147979593060577, kernel=rbf, total= 5.8s\n", - "[CV] C=926.9787684096649, gamma=2.147979593060577, kernel=rbf ........\n", - "[CV] C=926.9787684096649, gamma=2.147979593060577, kernel=rbf, total= 5.6s\n", - "[CV] C=33946.157064934, gamma=2.2642426492862313, kernel=linear ......\n", - "[CV] C=33946.157064934, gamma=2.2642426492862313, kernel=linear, total= 10.0s\n", - "[CV] C=33946.157064934, gamma=2.2642426492862313, kernel=linear ......\n", - "[CV] C=33946.157064934, gamma=2.2642426492862313, kernel=linear, total= 9.7s\n", - "[CV] C=33946.157064934, gamma=2.2642426492862313, kernel=linear ......\n", - "[CV] C=33946.157064934, gamma=2.2642426492862313, kernel=linear, total= 8.9s\n", - "[CV] C=33946.157064934, gamma=2.2642426492862313, kernel=linear ......\n", - "[CV] C=33946.157064934, gamma=2.2642426492862313, kernel=linear, total= 10.4s\n", - "[CV] C=33946.157064934, gamma=2.2642426492862313, kernel=linear ......\n", - "[CV] C=33946.157064934, gamma=2.2642426492862313, kernel=linear, total= 9.3s\n", - "[CV] C=84789.82947739525, gamma=0.3176359085304841, kernel=linear ....\n", - "[CV] C=84789.82947739525, gamma=0.3176359085304841, kernel=linear, total= 25.8s\n", - "[CV] C=84789.82947739525, gamma=0.3176359085304841, kernel=linear ....\n", - "[CV] C=84789.82947739525, gamma=0.3176359085304841, kernel=linear, total= 18.5s\n", - "[CV] C=84789.82947739525, gamma=0.3176359085304841, kernel=linear ....\n", - "[CV] C=84789.82947739525, gamma=0.3176359085304841, kernel=linear, total= 28.3s\n", - "[CV] C=84789.82947739525, gamma=0.3176359085304841, kernel=linear ....\n", - "[CV] C=84789.82947739525, gamma=0.3176359085304841, kernel=linear, total= 20.8s\n", - "[CV] C=84789.82947739525, gamma=0.3176359085304841, kernel=linear ....\n", - "[CV] C=84789.82947739525, gamma=0.3176359085304841, kernel=linear, total= 15.6s\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "[Parallel(n_jobs=1)]: Done 250 out of 250 | elapsed: 44.0min finished\n" + "[CV] END C=629.7823295913721, gamma=3.010121430917521, kernel=linear; total time= 2.4s\n", + "[CV] END C=629.7823295913721, gamma=3.010121430917521, kernel=linear; total time= 2.4s\n", + "[CV] END C=629.7823295913721, gamma=3.010121430917521, kernel=linear; total time= 2.5s\n", + "[CV] END C=629.7823295913721, gamma=3.010121430917521, kernel=linear; total time= 2.5s\n", + "[CV] END C=629.7823295913721, gamma=3.010121430917521, kernel=linear; total time= 2.5s\n", + "[CV] END C=26290.20646430022, gamma=0.9084469696321253, kernel=rbf; total time= 4.1s\n", + "[CV] END C=26290.20646430022, gamma=0.9084469696321253, kernel=rbf; total time= 4.0s\n", + "[CV] END C=26290.20646430022, gamma=0.9084469696321253, kernel=rbf; total time= 4.0s\n", + "[CV] END C=26290.20646430022, gamma=0.9084469696321253, kernel=rbf; total time= 4.0s\n", + "[CV] END C=26290.20646430022, gamma=0.9084469696321253, kernel=rbf; total time= 4.0s\n", + "[CV] END C=84.14107900575871, gamma=0.059838768608680676, kernel=rbf; total time= 3.6s\n", + "[CV] END C=84.14107900575871, gamma=0.059838768608680676, kernel=rbf; total time= 3.6s\n", + "[CV] END C=84.14107900575871, gamma=0.059838768608680676, kernel=rbf; total time= 3.6s\n", + "[CV] END C=84.14107900575871, gamma=0.059838768608680676, kernel=rbf; total time= 3.6s\n", + "[CV] END C=84.14107900575871, gamma=0.059838768608680676, kernel=rbf; total time= 3.6s\n", + "[CV] END C=432.37884813148844, gamma=0.15416196746656105, kernel=linear; total time= 2.4s\n", + "[CV] END C=432.37884813148844, gamma=0.15416196746656105, kernel=linear; total time= 2.4s\n", + "[CV] END C=432.37884813148844, gamma=0.15416196746656105, kernel=linear; total time= 2.4s\n", + "[CV] END C=432.37884813148844, gamma=0.15416196746656105, kernel=linear; total time= 2.4s\n", + "[CV] END C=432.37884813148844, gamma=0.15416196746656105, kernel=linear; total time= 2.4s\n", + "[CV] END C=24.175082946113903, gamma=3.503557475158312, kernel=rbf; total time= 3.3s\n", + "[CV] END C=24.175082946113903, gamma=3.503557475158312, kernel=rbf; total time= 3.5s\n", + "[CV] END C=24.175082946113903, gamma=3.503557475158312, kernel=rbf; total time= 3.5s\n", + "[CV] END C=24.175082946113903, gamma=3.503557475158312, kernel=rbf; total time= 3.4s\n", + "[CV] END C=24.175082946113903, gamma=3.503557475158312, kernel=rbf; total time= 3.3s\n", + "[CV] END C=113564.03940586244, gamma=0.0007790692366582295, kernel=rbf; total time= 3.6s\n", + "[CV] END C=113564.03940586244, gamma=0.0007790692366582295, kernel=rbf; total time= 3.6s\n", + "[CV] END C=113564.03940586244, gamma=0.0007790692366582295, kernel=rbf; total time= 3.6s\n", + "[CV] END C=113564.03940586244, gamma=0.0007790692366582295, kernel=rbf; total time= 3.6s\n", + "[CV] END C=113564.03940586244, gamma=0.0007790692366582295, kernel=rbf; total time= 3.6s\n", + "[CV] END C=108.30488238805071, gamma=0.3627537294604771, kernel=rbf; total time= 3.5s\n", + "[CV] END C=108.30488238805071, gamma=0.3627537294604771, kernel=rbf; total time= 3.5s\n", + "[CV] END C=108.30488238805071, gamma=0.3627537294604771, kernel=rbf; total time= 3.5s\n", + "[CV] END C=108.30488238805071, gamma=0.3627537294604771, kernel=rbf; total time= 3.5s\n", + "[CV] END C=108.30488238805071, gamma=0.3627537294604771, kernel=rbf; total time= 3.5s\n", + "[CV] END C=21.34495367264743, gamma=0.023332523598323388, kernel=linear; total time= 2.4s\n", + "[CV] END C=21.34495367264743, gamma=0.023332523598323388, kernel=linear; total time= 2.3s\n", + "[CV] END C=21.34495367264743, gamma=0.023332523598323388, kernel=linear; total time= 2.3s\n", + "[CV] END C=21.34495367264743, gamma=0.023332523598323388, kernel=linear; total time= 2.3s\n", + "[CV] END C=21.34495367264743, gamma=0.023332523598323388, kernel=linear; total time= 2.3s\n", + "[CV] END C=5603.270317432522, gamma=0.15023452872733867, kernel=rbf; total time= 3.6s\n", + "[CV] END C=5603.270317432522, gamma=0.15023452872733867, kernel=rbf; total time= 3.5s\n", + "[CV] END C=5603.270317432522, gamma=0.15023452872733867, kernel=rbf; total time= 3.5s\n", + "[CV] END C=5603.270317432522, gamma=0.15023452872733867, kernel=rbf; total time= 3.4s\n", + "[CV] END C=5603.270317432522, gamma=0.15023452872733867, kernel=rbf; total time= 3.5s\n", + "[CV] END C=157055.10989448498, gamma=0.26497040005002437, kernel=rbf; total time= 7.2s\n", + "[CV] END C=157055.10989448498, gamma=0.26497040005002437, kernel=rbf; total time= 7.3s\n", + "[CV] END C=157055.10989448498, gamma=0.26497040005002437, kernel=rbf; total time= 7.6s\n", + "[CV] END C=157055.10989448498, gamma=0.26497040005002437, kernel=rbf; total time= 7.0s\n", + "[CV] END C=157055.10989448498, gamma=0.26497040005002437, kernel=rbf; total time= 7.8s\n", + "[CV] END C=27652.46435873972, gamma=0.2227358621286903, kernel=linear; total time= 4.3s\n", + "[CV] END C=27652.46435873972, gamma=0.2227358621286903, kernel=linear; total time= 4.4s\n", + "[CV] END C=27652.46435873972, gamma=0.2227358621286903, kernel=linear; total time= 4.4s\n", + "[CV] END C=27652.46435873972, gamma=0.2227358621286903, kernel=linear; total time= 4.0s\n", + "[CV] END C=27652.46435873972, gamma=0.2227358621286903, kernel=linear; total time= 4.4s\n", + "[CV] END C=171377.39570377997, gamma=0.628789100540856, kernel=linear; total time= 12.4s\n", + "[CV] END C=171377.39570377997, gamma=0.628789100540856, kernel=linear; total time= 12.5s\n", + "[CV] END C=171377.39570377997, gamma=0.628789100540856, kernel=linear; total time= 11.2s\n", + "[CV] END C=171377.39570377997, gamma=0.628789100540856, kernel=linear; total time= 12.4s\n", + "[CV] END C=171377.39570377997, gamma=0.628789100540856, kernel=linear; total time= 12.6s\n", + "[CV] END C=5385.293820172355, gamma=0.18696125197741642, kernel=linear; total time= 2.8s\n", + "[CV] END C=5385.293820172355, gamma=0.18696125197741642, kernel=linear; total time= 2.7s\n", + "[CV] END C=5385.293820172355, gamma=0.18696125197741642, kernel=linear; total time= 2.7s\n", + "[CV] END C=5385.293820172355, gamma=0.18696125197741642, kernel=linear; total time= 2.7s\n", + "[CV] END C=5385.293820172355, gamma=0.18696125197741642, kernel=linear; total time= 2.7s\n", + "[CV] END C=22.599032166213227, gamma=2.850796878935603, kernel=rbf; total time= 3.4s\n", + "[CV] END C=22.599032166213227, gamma=2.850796878935603, kernel=rbf; total time= 3.3s\n", + "[CV] END C=22.599032166213227, gamma=2.850796878935603, kernel=rbf; total time= 3.3s\n", + "[CV] END C=22.599032166213227, gamma=2.850796878935603, kernel=rbf; total time= 3.4s\n", + "[CV] END C=22.599032166213227, gamma=2.850796878935603, kernel=rbf; total time= 3.3s\n", + "[CV] END C=34246.751946327975, gamma=0.3632878599687583, kernel=linear; total time= 4.6s\n", + "[CV] END C=34246.751946327975, gamma=0.3632878599687583, kernel=linear; total time= 5.1s\n", + "[CV] END C=34246.751946327975, gamma=0.3632878599687583, kernel=linear; total time= 4.4s\n", + "[CV] END C=34246.751946327975, gamma=0.3632878599687583, kernel=linear; total time= 4.5s\n", + "[CV] END C=34246.751946327975, gamma=0.3632878599687583, kernel=linear; total time= 4.8s\n", + "[CV] END C=167.7278956080511, gamma=0.2757870542258224, kernel=rbf; total time= 3.5s\n", + "[CV] END C=167.7278956080511, gamma=0.2757870542258224, kernel=rbf; total time= 3.5s\n", + "[CV] END C=167.7278956080511, gamma=0.2757870542258224, kernel=rbf; total time= 3.5s\n", + "[CV] END C=167.7278956080511, gamma=0.2757870542258224, kernel=rbf; total time= 3.5s\n", + "[CV] END C=167.7278956080511, gamma=0.2757870542258224, kernel=rbf; total time= 3.5s\n", + "[CV] END C=61.54360542501372, gamma=0.6835472281341501, kernel=linear; total time= 2.3s\n", + "[CV] END C=61.54360542501372, gamma=0.6835472281341501, kernel=linear; total time= 2.3s\n", + "[CV] END C=61.54360542501372, gamma=0.6835472281341501, kernel=linear; total time= 2.3s\n", + "[CV] END C=61.54360542501372, gamma=0.6835472281341501, kernel=linear; total time= 2.3s\n", + "[CV] END C=61.54360542501372, gamma=0.6835472281341501, kernel=linear; total time= 2.3s\n", + "[CV] END C=98.73897389920917, gamma=0.4960365360493639, kernel=rbf; total time= 3.4s\n", + "[CV] END C=98.73897389920917, gamma=0.4960365360493639, kernel=rbf; total time= 3.5s\n", + "[CV] END C=98.73897389920917, gamma=0.4960365360493639, kernel=rbf; total time= 3.4s\n", + "[CV] END C=98.73897389920917, gamma=0.4960365360493639, kernel=rbf; total time= 3.4s\n", + "[CV] END C=98.73897389920917, gamma=0.4960365360493639, kernel=rbf; total time= 3.4s\n", + "[CV] END C=8935.505635947806, gamma=0.37354658165762367, kernel=rbf; total time= 3.4s\n", + "[CV] END C=8935.505635947806, gamma=0.37354658165762367, kernel=rbf; total time= 3.4s\n", + "[CV] END C=8935.505635947806, gamma=0.37354658165762367, kernel=rbf; total time= 3.4s\n", + "[CV] END C=8935.505635947806, gamma=0.37354658165762367, kernel=rbf; total time= 3.5s\n", + "[CV] END C=8935.505635947806, gamma=0.37354658165762367, kernel=rbf; total time= 3.5s\n", + "[CV] END C=135.7677582484244, gamma=0.838636245624803, kernel=linear; total time= 2.3s\n", + "[CV] END C=135.7677582484244, gamma=0.838636245624803, kernel=linear; total time= 2.3s\n", + "[CV] END C=135.7677582484244, gamma=0.838636245624803, kernel=linear; total time= 2.3s\n", + "[CV] END C=135.7677582484244, gamma=0.838636245624803, kernel=linear; total time= 2.3s\n", + "[CV] END C=135.7677582484244, gamma=0.838636245624803, kernel=linear; total time= 2.3s\n", + "[CV] END C=151136.20282548846, gamma=1.4922453771381408, kernel=rbf; total time= 32.8s\n", + "[CV] END C=151136.20282548846, gamma=1.4922453771381408, kernel=rbf; total time= 32.1s\n", + "[CV] END C=151136.20282548846, gamma=1.4922453771381408, kernel=rbf; total time= 33.4s\n", + "[CV] END C=151136.20282548846, gamma=1.4922453771381408, kernel=rbf; total time= 30.1s\n", + "[CV] END C=151136.20282548846, gamma=1.4922453771381408, kernel=rbf; total time= 29.3s\n", + "[CV] END C=761.4316758498787, gamma=2.6126336514161914, kernel=linear; total time= 2.4s\n", + "[CV] END C=761.4316758498787, gamma=2.6126336514161914, kernel=linear; total time= 2.3s\n", + "[CV] END C=761.4316758498787, gamma=2.6126336514161914, kernel=linear; total time= 2.3s\n", + "[CV] END C=761.4316758498787, gamma=2.6126336514161914, kernel=linear; total time= 2.3s\n", + "[CV] END C=761.4316758498787, gamma=2.6126336514161914, kernel=linear; total time= 2.4s\n", + "[CV] END C=97392.8188304179, gamma=0.09265545895311562, kernel=linear; total time= 8.9s\n", + "[CV] END C=97392.8188304179, gamma=0.09265545895311562, kernel=linear; total time= 9.0s\n", + "[CV] END C=97392.8188304179, gamma=0.09265545895311562, kernel=linear; total time= 7.7s\n", + "[CV] END C=97392.8188304179, gamma=0.09265545895311562, kernel=linear; total time= 8.0s\n", + "[CV] END C=97392.8188304179, gamma=0.09265545895311562, kernel=linear; total time= 8.3s\n", + "[CV] END C=2423.0759984939154, gamma=3.248614270240346, kernel=linear; total time= 2.5s\n", + "[CV] END C=2423.0759984939154, gamma=3.248614270240346, kernel=linear; total time= 2.5s\n", + "[CV] END C=2423.0759984939154, gamma=3.248614270240346, kernel=linear; total time= 2.5s\n", + "[CV] END C=2423.0759984939154, gamma=3.248614270240346, kernel=linear; total time= 2.6s\n", + "[CV] END C=2423.0759984939154, gamma=3.248614270240346, kernel=linear; total time= 2.5s\n", + "[CV] END C=717.3632997255093, gamma=0.3165604432088257, kernel=linear; total time= 2.3s\n", + "[CV] END C=717.3632997255093, gamma=0.3165604432088257, kernel=linear; total time= 2.4s\n", + "[CV] END C=717.3632997255093, gamma=0.3165604432088257, kernel=linear; total time= 2.3s\n", + "[CV] END C=717.3632997255093, gamma=0.3165604432088257, kernel=linear; total time= 2.3s\n", + "[CV] END C=717.3632997255093, gamma=0.3165604432088257, kernel=linear; total time= 2.4s\n", + "[CV] END C=4446.66752118407, gamma=3.3597284456608496, kernel=rbf; total time= 3.3s\n", + "[CV] END C=4446.66752118407, gamma=3.3597284456608496, kernel=rbf; total time= 3.4s\n", + "[CV] END C=4446.66752118407, gamma=3.3597284456608496, kernel=rbf; total time= 3.4s\n", + "[CV] END C=4446.66752118407, gamma=3.3597284456608496, kernel=rbf; total time= 3.4s\n", + "[CV] END C=4446.66752118407, gamma=3.3597284456608496, kernel=rbf; total time= 3.4s\n", + "[CV] END C=2963.564121207816, gamma=0.15189814782062885, kernel=linear; total time= 2.5s\n", + "[CV] END C=2963.564121207816, gamma=0.15189814782062885, kernel=linear; total time= 2.6s\n", + "[CV] END C=2963.564121207816, gamma=0.15189814782062885, kernel=linear; total time= 2.6s\n", + "[CV] END C=2963.564121207816, gamma=0.15189814782062885, kernel=linear; total time= 2.6s\n", + "[CV] END C=2963.564121207816, gamma=0.15189814782062885, kernel=linear; total time= 2.5s\n", + "[CV] END C=91.64267381686706, gamma=0.01575994483585621, kernel=linear; total time= 2.3s\n", + "[CV] END C=91.64267381686706, gamma=0.01575994483585621, kernel=linear; total time= 2.3s\n", + "[CV] END C=91.64267381686706, gamma=0.01575994483585621, kernel=linear; total time= 2.3s\n", + "[CV] END C=91.64267381686706, gamma=0.01575994483585621, kernel=linear; total time= 2.3s\n", + "[CV] END C=91.64267381686706, gamma=0.01575994483585621, kernel=linear; total time= 2.3s\n", + "[CV] END C=24547.601975705937, gamma=0.22153944050588595, kernel=rbf; total time= 3.7s\n", + "[CV] END C=24547.601975705937, gamma=0.22153944050588595, kernel=rbf; total time= 3.7s\n", + "[CV] END C=24547.601975705937, gamma=0.22153944050588595, kernel=rbf; total time= 3.7s\n", + "[CV] END C=24547.601975705937, gamma=0.22153944050588595, kernel=rbf; total time= 3.6s\n", + "[CV] END C=24547.601975705937, gamma=0.22153944050588595, kernel=rbf; total time= 3.6s\n", + "[CV] END C=22.76927941060928, gamma=0.22169760231351215, kernel=rbf; total time= 3.6s\n", + "[CV] END C=22.76927941060928, gamma=0.22169760231351215, kernel=rbf; total time= 3.6s\n", + "[CV] END C=22.76927941060928, gamma=0.22169760231351215, kernel=rbf; total time= 3.6s\n", + "[CV] END C=22.76927941060928, gamma=0.22169760231351215, kernel=rbf; total time= 3.6s\n", + "[CV] END C=22.76927941060928, gamma=0.22169760231351215, kernel=rbf; total time= 3.6s\n", + "[CV] END C=16483.85052975289, gamma=1.4752145260435134, kernel=linear; total time= 3.5s\n", + "[CV] END C=16483.85052975289, gamma=1.4752145260435134, kernel=linear; total time= 3.6s\n", + "[CV] END C=16483.85052975289, gamma=1.4752145260435134, kernel=linear; total time= 3.4s\n", + "[CV] END C=16483.85052975289, gamma=1.4752145260435134, kernel=linear; total time= 3.8s\n", + "[CV] END C=16483.85052975289, gamma=1.4752145260435134, kernel=linear; total time= 3.6s\n", + "[CV] END C=101445.66881340076, gamma=1.052904084582266, kernel=rbf; total time= 12.6s\n", + "[CV] END C=101445.66881340076, gamma=1.052904084582266, kernel=rbf; total time= 14.1s\n", + "[CV] END C=101445.66881340076, gamma=1.052904084582266, kernel=rbf; total time= 12.0s\n", + "[CV] END C=101445.66881340076, gamma=1.052904084582266, kernel=rbf; total time= 13.2s\n", + "[CV] END C=101445.66881340076, gamma=1.052904084582266, kernel=rbf; total time= 15.3s\n", + "[CV] END C=56681.8085902955, gamma=0.9763011917123741, kernel=rbf; total time= 5.5s\n", + "[CV] END C=56681.8085902955, gamma=0.9763011917123741, kernel=rbf; total time= 5.8s\n", + "[CV] END C=56681.8085902955, gamma=0.9763011917123741, kernel=rbf; total time= 5.6s\n", + "[CV] END C=56681.8085902955, gamma=0.9763011917123741, kernel=rbf; total time= 6.5s\n", + "[CV] END C=56681.8085902955, gamma=0.9763011917123741, kernel=rbf; total time= 5.9s\n", + "[CV] END C=48.15822390928913, gamma=0.4633351167983427, kernel=rbf; total time= 3.4s\n", + "[CV] END C=48.15822390928913, gamma=0.4633351167983427, kernel=rbf; total time= 3.5s\n", + "[CV] END C=48.15822390928913, gamma=0.4633351167983427, kernel=rbf; total time= 3.6s\n", + "[CV] END C=48.15822390928913, gamma=0.4633351167983427, kernel=rbf; total time= 3.5s\n", + "[CV] END C=48.15822390928913, gamma=0.4633351167983427, kernel=rbf; total time= 3.5s\n", + "[CV] END C=399.7268155705776, gamma=1.3078757839577408, kernel=rbf; total time= 3.4s\n", + "[CV] END C=399.7268155705776, gamma=1.3078757839577408, kernel=rbf; total time= 3.4s\n", + "[CV] END C=399.7268155705776, gamma=1.3078757839577408, kernel=rbf; total time= 3.4s\n", + "[CV] END C=399.7268155705776, gamma=1.3078757839577408, kernel=rbf; total time= 3.4s\n", + "[CV] END C=399.7268155705776, gamma=1.3078757839577408, kernel=rbf; total time= 3.4s\n", + "[CV] END C=251.1407388628136, gamma=0.8238105204914145, kernel=linear; total time= 2.3s\n", + "[CV] END C=251.1407388628136, gamma=0.8238105204914145, kernel=linear; total time= 2.3s\n", + "[CV] END C=251.1407388628136, gamma=0.8238105204914145, kernel=linear; total time= 2.3s\n", + "[CV] END C=251.1407388628136, gamma=0.8238105204914145, kernel=linear; total time= 2.3s\n", + "[CV] END C=251.1407388628136, gamma=0.8238105204914145, kernel=linear; total time= 2.3s\n", + "[CV] END C=60.17373642891686, gamma=1.2491263443165994, kernel=linear; total time= 2.3s\n", + "[CV] END C=60.17373642891686, gamma=1.2491263443165994, kernel=linear; total time= 2.3s\n", + "[CV] END C=60.17373642891686, gamma=1.2491263443165994, kernel=linear; total time= 2.2s\n", + "[CV] END C=60.17373642891686, gamma=1.2491263443165994, kernel=linear; total time= 2.3s\n", + "[CV] END C=60.17373642891686, gamma=1.2491263443165994, kernel=linear; total time= 2.3s\n", + "[CV] END C=15415.161544891862, gamma=0.2691677514619319, kernel=rbf; total time= 3.6s\n", + "[CV] END C=15415.161544891862, gamma=0.2691677514619319, kernel=rbf; total time= 3.6s\n", + "[CV] END C=15415.161544891862, gamma=0.2691677514619319, kernel=rbf; total time= 3.5s\n", + "[CV] END C=15415.161544891862, gamma=0.2691677514619319, kernel=rbf; total time= 3.6s\n", + "[CV] END C=15415.161544891862, gamma=0.2691677514619319, kernel=rbf; total time= 3.6s\n", + "[CV] END C=1888.9148509967115, gamma=0.739678838777267, kernel=linear; total time= 2.4s\n", + "[CV] END C=1888.9148509967115, gamma=0.739678838777267, kernel=linear; total time= 2.4s\n", + "[CV] END C=1888.9148509967115, gamma=0.739678838777267, kernel=linear; total time= 2.4s\n", + "[CV] END C=1888.9148509967115, gamma=0.739678838777267, kernel=linear; total time= 2.4s\n", + "[CV] END C=1888.9148509967115, gamma=0.739678838777267, kernel=linear; total time= 2.4s\n", + "[CV] END C=55.53838911232771, gamma=0.578634378499143, kernel=linear; total time= 2.3s\n", + "[CV] END C=55.53838911232771, gamma=0.578634378499143, kernel=linear; total time= 2.3s\n", + "[CV] END C=55.53838911232771, gamma=0.578634378499143, kernel=linear; total time= 2.3s\n", + "[CV] END C=55.53838911232771, gamma=0.578634378499143, kernel=linear; total time= 2.3s\n", + "[CV] END C=55.53838911232771, gamma=0.578634378499143, kernel=linear; total time= 2.3s\n", + "[CV] END C=26.714480823948186, gamma=1.0117295509275495, kernel=rbf; total time= 3.5s\n", + "[CV] END C=26.714480823948186, gamma=1.0117295509275495, kernel=rbf; total time= 3.5s\n", + "[CV] END C=26.714480823948186, gamma=1.0117295509275495, kernel=rbf; total time= 3.5s\n", + "[CV] END C=26.714480823948186, gamma=1.0117295509275495, kernel=rbf; total time= 3.4s\n", + "[CV] END C=26.714480823948186, gamma=1.0117295509275495, kernel=rbf; total time= 3.5s\n", + "[CV] END C=3582.05527804896, gamma=1.1891370222133257, kernel=linear; total time= 2.6s\n", + "[CV] END C=3582.05527804896, gamma=1.1891370222133257, kernel=linear; total time= 2.6s\n", + "[CV] END C=3582.05527804896, gamma=1.1891370222133257, kernel=linear; total time= 2.5s\n", + "[CV] END C=3582.05527804896, gamma=1.1891370222133257, kernel=linear; total time= 2.6s\n", + "[CV] END C=3582.05527804896, gamma=1.1891370222133257, kernel=linear; total time= 2.6s\n", + "[CV] END C=198.70047818127367, gamma=0.5282819748826726, kernel=linear; total time= 2.3s\n", + "[CV] END C=198.70047818127367, gamma=0.5282819748826726, kernel=linear; total time= 2.3s\n", + "[CV] END C=198.70047818127367, gamma=0.5282819748826726, kernel=linear; total time= 2.3s\n", + "[CV] END C=198.70047818127367, gamma=0.5282819748826726, kernel=linear; total time= 2.3s\n", + "[CV] END C=198.70047818127367, gamma=0.5282819748826726, kernel=linear; total time= 2.3s\n", + "[CV] END C=129.80006041433077, gamma=2.8621383676481322, kernel=linear; total time= 2.3s\n", + "[CV] END C=129.80006041433077, gamma=2.8621383676481322, kernel=linear; total time= 2.3s\n", + "[CV] END C=129.80006041433077, gamma=2.8621383676481322, kernel=linear; total time= 2.3s\n", + "[CV] END C=129.80006041433077, gamma=2.8621383676481322, kernel=linear; total time= 2.3s\n", + "[CV] END C=129.80006041433077, gamma=2.8621383676481322, kernel=linear; total time= 2.3s\n", + "[CV] END C=288.4269299593897, gamma=0.17580835850006285, kernel=rbf; total time= 3.5s\n", + "[CV] END C=288.4269299593897, gamma=0.17580835850006285, kernel=rbf; total time= 3.5s\n", + "[CV] END C=288.4269299593897, gamma=0.17580835850006285, kernel=rbf; total time= 3.5s\n", + "[CV] END C=288.4269299593897, gamma=0.17580835850006285, kernel=rbf; total time= 3.5s\n", + "[CV] END C=288.4269299593897, gamma=0.17580835850006285, kernel=rbf; total time= 3.6s\n", + "[CV] END C=6287.039489427173, gamma=0.3504567255332862, kernel=linear; total time= 2.8s\n", + "[CV] END C=6287.039489427173, gamma=0.3504567255332862, kernel=linear; total time= 2.8s\n", + "[CV] END C=6287.039489427173, gamma=0.3504567255332862, kernel=linear; total time= 2.6s\n", + "[CV] END C=6287.039489427173, gamma=0.3504567255332862, kernel=linear; total time= 2.8s\n", + "[CV] END C=6287.039489427173, gamma=0.3504567255332862, kernel=linear; total time= 2.8s\n", + "[CV] END C=61217.04421344495, gamma=1.6279689407405564, kernel=rbf; total time= 10.0s\n", + "[CV] END C=61217.04421344495, gamma=1.6279689407405564, kernel=rbf; total time= 11.8s\n", + "[CV] END C=61217.04421344495, gamma=1.6279689407405564, kernel=rbf; total time= 8.3s\n", + "[CV] END C=61217.04421344495, gamma=1.6279689407405564, kernel=rbf; total time= 8.8s\n", + "[CV] END C=61217.04421344495, gamma=1.6279689407405564, kernel=rbf; total time= 10.7s\n", + "[CV] END C=926.9787684096652, gamma=2.147979593060577, kernel=rbf; total time= 3.4s\n", + "[CV] END C=926.9787684096652, gamma=2.147979593060577, kernel=rbf; total time= 3.4s\n", + "[CV] END C=926.9787684096652, gamma=2.147979593060577, kernel=rbf; total time= 3.3s\n", + "[CV] END C=926.9787684096652, gamma=2.147979593060577, kernel=rbf; total time= 3.4s\n", + "[CV] END C=926.9787684096652, gamma=2.147979593060577, kernel=rbf; total time= 3.3s\n", + "[CV] END C=33946.15706493403, gamma=2.2642426492862313, kernel=linear; total time= 4.5s\n", + "[CV] END C=33946.15706493403, gamma=2.2642426492862313, kernel=linear; total time= 4.8s\n", + "[CV] END C=33946.15706493403, gamma=2.2642426492862313, kernel=linear; total time= 4.3s\n", + "[CV] END C=33946.15706493403, gamma=2.2642426492862313, kernel=linear; total time= 4.9s\n", + "[CV] END C=33946.15706493403, gamma=2.2642426492862313, kernel=linear; total time= 4.8s\n", + "[CV] END C=84789.82947739528, gamma=0.3176359085304841, kernel=linear; total time= 12.6s\n", + "[CV] END C=84789.82947739528, gamma=0.3176359085304841, kernel=linear; total time= 7.9s\n", + "[CV] END C=84789.82947739528, gamma=0.3176359085304841, kernel=linear; total time= 7.6s\n", + "[CV] END C=84789.82947739528, gamma=0.3176359085304841, kernel=linear; total time= 7.6s\n", + "[CV] END C=84789.82947739528, gamma=0.3176359085304841, kernel=linear; total time= 8.1s\n" ] }, { "data": { "text/plain": [ "RandomizedSearchCV(cv=5, estimator=SVR(), n_iter=50,\n", - " param_distributions={'C': ,\n", - " 'gamma': ,\n", + " param_distributions={'C': ,\n", + " 'gamma': ,\n", " 'kernel': ['linear', 'rbf']},\n", " random_state=42, scoring='neg_mean_squared_error',\n", " verbose=2)" + ], + "text/html": [ + "
RandomizedSearchCV(cv=5, estimator=SVR(), n_iter=50,\n",
+       "                   param_distributions={'C': <scipy.stats._distn_infrastructure.rv_continuous_frozen object at 0x33f280f90>,\n",
+       "                                        'gamma': <scipy.stats._distn_infrastructure.rv_continuous_frozen object at 0x33f280c10>,\n",
+       "                                        'kernel': ['linear', 'rbf']},\n",
+       "                   random_state=42, scoring='neg_mean_squared_error',\n",
+       "                   verbose=2)
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.
" ] }, "execution_count": 120, @@ -5511,26 +6501,7 @@ "output_type": "execute_result" } ], - "source": [ - "from sklearn.model_selection import RandomizedSearchCV\n", - "from scipy.stats import expon, reciprocal\n", - "\n", - "# see https://docs.scipy.org/doc/scipy/reference/stats.html\n", - "# for `expon()` and `reciprocal()` documentation and more probability distribution functions.\n", - "\n", - "# Note: gamma is ignored when kernel is \"linear\"\n", - "param_distribs = {\n", - " 'kernel': ['linear', 'rbf'],\n", - " 'C': reciprocal(20, 200000),\n", - " 'gamma': expon(scale=1.0),\n", - " }\n", - "\n", - "svm_reg = SVR()\n", - "rnd_search = RandomizedSearchCV(svm_reg, param_distributions=param_distribs,\n", - " n_iter=50, cv=5, scoring='neg_mean_squared_error',\n", - " verbose=2, random_state=42)\n", - "rnd_search.fit(housing_prepared, housing_labels)" - ] + "execution_count": 120 }, { "cell_type": "markdown", @@ -5541,13 +6512,22 @@ }, { "cell_type": "code", - "execution_count": 121, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:58:02.949352Z", + "start_time": "2024-06-08T21:58:02.947404Z" + } + }, + "source": [ + "negative_mse = rnd_search.best_score_\n", + "rmse = np.sqrt(-negative_mse)\n", + "rmse" + ], "outputs": [ { "data": { "text/plain": [ - "54767.960710084146" + "54751.690093335324" ] }, "execution_count": 121, @@ -5555,11 +6535,7 @@ "output_type": "execute_result" } ], - "source": [ - "negative_mse = rnd_search.best_score_\n", - "rmse = np.sqrt(-negative_mse)\n", - "rmse" - ] + "execution_count": 121 }, { "cell_type": "markdown", @@ -5570,8 +6546,15 @@ }, { "cell_type": "code", - "execution_count": 122, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:58:02.951346Z", + "start_time": "2024-06-08T21:58:02.949737Z" + } + }, + "source": [ + "rnd_search.best_params_" + ], "outputs": [ { "data": { @@ -5584,9 +6567,7 @@ "output_type": "execute_result" } ], - "source": [ - "rnd_search.best_params_" - ] + "execution_count": 122 }, { "cell_type": "markdown", @@ -5604,22 +6585,12 @@ }, { "cell_type": "code", - "execution_count": 123, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:58:03.045275Z", + "start_time": "2024-06-08T21:58:02.951847Z" } - ], + }, "source": [ "expon_distrib = expon(scale=1.)\n", "samples = expon_distrib.rvs(10000, random_state=42)\n", @@ -5631,7 +6602,20 @@ "plt.title(\"Log of this distribution\")\n", "plt.hist(np.log(samples), bins=50)\n", "plt.show()" - ] + ], + "outputs": [ + { + "data": { + "text/plain": [ + "
" + ], + "image/png": "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SE5Oxvz581FaWooePXrg9ddfx+LFi9G5c2cAgJeXFw4fPoxFixZh0qRJkMvlGD58OFJSUuDo6KhVZlRUFGxsbJCWloaUlBQ4OzsjMjISUVFR5mgiERGZicFB1cNGMwKAjh07agVUdZ566ikAwNWrV6W0hiZPjIqKws6dO6WgaseOHfD09JQCKgCQy+WYMmUKlixZgoKCAnTr1s3QJhERUTsREBCAgICAh+YbOHAgDh482Kgyw8PDER4ebmzViIioDWvRgSoOHToEAHjyySelNEMmT8zLy6t3QkYAOH36dLPXmYiIiIiIqCEtNqR6QUEBIiMj8bvf/Q7jx4+X0g2ZPLGwsLDeCRnr1uvDCRaJiIiIiMhUWuRJVVFREcaOHQshBD7//HN06KD9tYZMntiUiRaXL18OOzs7aeE8IERERERE1FxMHlQVFxdj1KhRKCgowIEDB/Cb3/xGa/39kyc+qKioSOvJlIODQ70TMgLQ+xQLuDfBYmlpqbTc/04XERERERGRMUwaVBUXF2PkyJG4dOkSDhw4oPd9KEMmT+zbt2+9EzICqHeiRU6wSEREREREpmKyoKouoLp48SL++c9/YsCAAXrzGTJ54oQJE3D27FmtodNramqwceNGDB48GK6urqZoChERERERUb2aNFDFvn37UFFRIc02f+bMGWzbtg0AMHbsWMhkMowePRrffvstUlNTUVNTgxMnTkjbOzo6wt3dHYBhkyfOmDEDaWlpmDx5MpKTk+Hk5IQ1a9bghx9+aPTQt0RERERERM2pSUHVnDlzcPnyZenz1q1bsXXrVgDApUuXAAA5OTkAgPnz5+tsP23aNK0nU42dPFGhUCArKwsLFy7EG2+8gcrKSvTv3x/79u2Dn59fU5pCRERERERklCYFVfn5+Q/NI4QwqMzGTp7YtWtXfPzxxwaVTUREREREZCotOvkvERERERHRo4ZBFRERERERkREYVBERERERERmBQRUREREREZERGFQREREREREZgUEVERERERGRERhUERERERERGYFBFRERERERkREYVBERERERERmBQRUREREREZERGFQREREREREZgUEVERERERGRERhUERERERERGYFBFRERERERkREYVBERERERERmBQRUREREREZERGFQREREREREZQW7uCrQnPSP36E3PTx7XwjUhIiIiIqLmwidVRERE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WloCAGQyWb3l3L+usfn0Wb58OeLj4w1pAhERtVLs/kdERO2Cg4MDAGD06NFa6WPGjAFwbxj1ujz6njIVFRVBJpPB3t5eKk+j0aCyslJvXn1Pu+63ePFilJaWSsvVq1cNbhMREbUOfFJFRETtgo+PD06cOKGTXjeceocOHeDu7g4LCwvk5ubq5MvNzYWHhweUSiWAX9+lys3NxeDBg6V8169fx61bt9CnT58G66NQKKBQKJrcHiJq+xp6BYTaFj6pIiKidmHixIkAgH379mml7927FwDg6+sLuVyO4OBgbN++HeXl5VKeK1euIDs7G6GhoVJaUFAQlEol0tPTtcpLT0+HTCZDSEiIaRpCREStDp9UERFRuxAYGIjg4GAsW7YMtbW18PX1xddff434+HiMHz8eTz/9NAAgPj4egwYNwvjx4xEZGQmNRoPY2Fio1WosWLBAKk+lUiE6OhoxMTFQqVQIDAxETk4O4uLiMHPmTM5RRUTUjvBJFRERtRuff/45IiIisHbtWowZMwbvv/8+3nzzTWzbtk3K4+XlhcOHD6NTp06YNGkSpk+fDg8PDxw9ehSOjo5a5UVFRSE1NRXbtm1DYGAgVq9ejcjISKSlpbV004iIyIxkoq4zeTtSVlYGOzs7lJaWak3uaIiW6gPLIdWJ6FHSHOffRxX3DVH78yi9U9WW71mb4/zLJ1VERERERERGYFBFRERERERkBAZVRERERERERmBQRUREREREZAQGVUREREREREZgUEVERERERGQEBlVERERERERGYFBFRERERERkBAZVRERERERERmBQRUREREREZAQGVUREREREREZgUEVERERERGQEBlVERERERERGMGlQ9e233yIkJASurq6wtLSEl5cXli1bhsrKSq18p06dwsiRI2FtbQ17e3uEhobi4sWLestcvXo1vLy8oFAo0KtXL8THx6O6utqUzSAiIiIiogb0jNxT79IeyE1V8JkzZzB06FB4enoiNTUVarUaR48exbJly/DNN99g165dAICzZ8/C398f/fv3x5YtW6DRaBAbG4thw4bhu+++g6Ojo1RmYmIiYmJiEBkZicDAQOTk5CA6OhoFBQVYu3atqZpiVvX9IeYnj2vhmhARERERkT4mC6o2bdoEjUaDL774Au7u7gCA4cOH46effsLatWtRXFyMLl26IDY2FgqFAhkZ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EREREREZgUEVERERERGRERhUERERERERGUFu7goQEREREbUVPSP3mLsK1ArxSRUREREREZERGFQREREREREZgUEVERERERGRERhUERERERERGYFBFRERERERkRE4+l87Ut9oNfnJ41q4JkREREREjw4+qSIiIiIiIjICgyoiIiIiIiIjMKgiIiIiIiIyAoMqIiIiIiIiIzCoIiIiIiIiMkKLBlXr1q2DTCaDtbW1zrpTp05h5MiRsLa2hr29PUJDQ3Hx4kW95axevRpeXl5QKBTo1asX4uPjUV1dberqExERERER6WixoKqgoABvv/02XF1dddadPXsW/v7+uHv3LrZs2YINGzbg3LlzGDZsGG7evKmVNzExEfPnz0doaCj279+PuXPnIikpCfPmzWupphAREREREUlabJ6q2bNn45lnnoFKpcK2bdu01sXGxkKhUCAjIwO2trYAgIEDB6J3795ISUnBihUrAACFhYVISEjArFmzkJSUBADw9/dHdXU1oqOjERERAW9v75ZqEhERERERUcs8qdq4cSOOHDmCNWvW6KyrqalBRkYGJk6cKAVUAODm5oaAgADs2LFDSsvMzIRGo0FYWJhWGWFhYRBCYOfOnSZrAxERERERkT4mD6pu3LiBiIgIJCcno3v37jrrL1y4gDt37sDHx0dnnY+PD86fPw+NRgMAyMvLAwD07dtXK5+LiwvUarW0noiIiIiIqKWYvPvf3Llz4enpiTlz5uhdX1hYCABQqVQ661QqFYQQKC4uhouLCwoLC6FQKGBlZaU3b11ZD6qqqkJVVZX0uaysrClNISIiIiIi0mHSJ1VffPEFdu/ejb/97W+QyWQN5m1o/f3rGpvvfsuXL4ednZ209OjR4yE1JyIiIiIiahyTBVW3b9/GvHnz8MYbb8DV1RUlJSUoKSnB3bt3AQAlJSWoqKiAg4MDAOh9ylRUVASZTAZ7e3sAgIODAzQaDSorK/Xm1fe0CwAWL16M0tJSabl69WoztZKIiIiIiNo7kwVVt27dws8//4z33nsPXbp0kZbNmzejoqICXbp0wcsvvwx3d3dYWFggNzdXp4zc3Fx4eHhAqVQC+PVdqgfzXr9+Hbdu3UKfPn301kWhUMDW1lZrISIiIiIiag4me6fK2dkZ2dnZOunJyck4cuQI9u3bB7VaDblcjuDgYGzfvh0rV66EjY0N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+vqKzz//XGRlZYnExERhbW0tvL29RVVVlbmrSGa0d+9esXXrVrFhwwYBQEyePFls3bpVbN26VVRUVEj5/vvf/wpra2vxzDPPiL1794rt27eLPn36CFdXV3Hjxg2tMjt27CiGDx+ulZadnS3kcrmYMGGCOHDggPj0009Fjx49RJ8+fYx6h6k5fPbZZwKAWLt2bb15ZsyYITp27Cjy8/OltBEjRoj4+HixY8cOkZWVJVJTU4Wrq6uwsbFplT+Ovfjii2LRokVi69atIjs7W6xdu1Z4enoKuVyu816qvvZqNBrx5JNPih49eohPP/1UHDhwQEyYMEHI5XJx+PDhlm5Ogwy5R2lLx7Yx96xt/djVaewxNPXxY1BlgPLychEeHi6cnZ1F586dhY+PT5t4Yc/c/Pz8GnxZlAzDoOrhKisrxaJFi0SPHj2EXC4Xjz32mFi8eLHZb8jagkOHDonAwEDh7OwsLCwsxOOPPy4WLFggbt26Ze6qkZm5ubnVex6/dOmSVt6vv/5ajBgxQlhaWgpbW1sREhKiM6m0EEIAEH5+fjrp//znP4Wvr69QKpVCpVKJqVOn6p3gs6WNGjVKWFlZaT2Fe9C0adN09klERITw9vYWNjY2Qi6XC1dXVzFlyhTxww8/tECtDbd8+XLRv39/YWdnJzp27CgcHR3FhAkTxFdffaWTV197hRDi+vXrYurUqUKlUgmlUil8fX1b5UBBhtyjtKVj25h71rZ+7Oo09hia+vjJhPi/DrJERERERERkML6xTUREREREZAQGVUREREREREZgUEVERERERGQEBlVERERERERGYFBFRERERERkBAZVRERERERERmBQRUREREREZAQGVUREREREREZgUEVERERERGQEBlVERERERERGYFBFRERERERkBAZVRERERERERvj/1tw58MIqfHsAAAAASUVORK5CYII=" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "execution_count": 123 }, { "cell_type": "markdown", @@ -5642,22 +6626,12 @@ }, { "cell_type": "code", - "execution_count": 124, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:58:03.138672Z", + "start_time": "2024-06-08T21:58:03.045902Z" } - ], + }, "source": [ "reciprocal_distrib = reciprocal(20, 200000)\n", "samples = reciprocal_distrib.rvs(10000, random_state=42)\n", @@ -5669,7 +6643,20 @@ "plt.title(\"Log of this distribution\")\n", "plt.hist(np.log(samples), bins=50)\n", "plt.show()" - ] + ], + "outputs": [ + { + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA08AAAF1CAYAAAAwQNH4AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABfaklEQVR4nO3deXxU1f3/8fdAYCYLSZgsQNhli0gCSNmsSMIaWaoEcEUEvuCGIkoNAQIkyiaN/Up5hLogRcUNLGBFgUoIVMsiFq0EBb+ACI1FIGEJhIQEzu8PfrkyZBJmICEsr+fjMQ+dcz9z7rknw9z5zDn3XJsxxggAAAAAUKYqld0AAAAAALgWkDwBAAAAgAdIngAAAADAAyRPAAAAAOABkicAAAAA8ADJEwAAAAB4gOQJAAAAADxA8gQAAAAAHiB5AgAAAAAPkDxVooULF8pms1kPHx8f1alTR/fdd5/+7//+r8L2u3fvXtlsNi1cuLDC9nElxcTEKCYm5pJf36hRIw0bNsx6vm7dOtlsNq1bt86reubNm+d1n7rb17BhwxQQEOBVPRezYcMGJScn6+jRoyW2XW7/Xa7PP/9cdrtdP/30U6W1YdiwYWrUqNEV3ecXX3yhkSNHql27drLb7bLZbNq7d69XdaxZs0adO3eWn5+fQkNDNWzYMB08eNAlJj09XQEBAcrKyirH1gNXv+Jz7FdffVXZTfHKBx98oFtuuUW+vr6y2Wz65ptv3MZ99913Sk5Odvu5ERMTo1atWl10X1fi+0BycrJsNptL2YXnXU+UdR4rS2nn+A8//NCresqSl5en5ORkt98bit+H3n6+4+pF8nQV+Mtf/qKNGzdqzZo1evLJJ/W3v/1Nt99+u44cOVIh+6tTp442btyovn37Vkj917pbb71VGzdu1K233urV6y4lebrUfXlrw4YNSklJcXvSmTdvnubNm1eh+y+NMUZjx47VqFGj1LBhw0ppQ2VJT0/XmjVr1KBBA912221ev379+vW68847VatWLX300UeaM2eO1qxZo+7du6ugoMCK6969uzp06KCJEyeWZ/MBVIBDhw7poYceUpMmTbRq1Spt3LhRzZs3dxv73XffKSUl5bK+lFfW94Fly5Zp8uTJXr2mrPNYee/LW3l5eUpJSXGbPPXt21cbN25UnTp1KrQNuHJ8KrsBkFq1aqXf/OY3ks79WnTmzBlNnTpVy5cv1/Dhw8t9f3a7XZ06dSrXOk+dOiVfX99yrbOyBAYGlnv/XKiwsFA2m+2K7OtiWrZsWWn7XrVqlbZu3ap333230tpQWSZPnqypU6dKklJTU70e6XzuuefUvHlzffjhh/LxOfdR3rhxY/32t7/VggUL9Pjjj1uxo0eP1r333qtp06apfv365XYMAMrXDz/8oMLCQg0ZMkRdu3at8P1VxPcBT7Rt27bC91H8veRK7KssYWFhCgsLq9Q2oHwx8nQVKk6kfvnlF5fyr776Sr/73e/kdDrlcDjUtm1bLV68uMTrs7Ky9Mgjj6h+/fqqXr26IiIiNGjQIKs+d8P0xcPqX3/9teLj4xUYGKigoCANGTJEhw4dcqm/UaNG6tevn5YuXaq2bdvK4XAoJSVFkpSZmam77rpLNWvWlMPhUJs2bfTmm2+WaOPRo0c1btw43XTTTbLb7QoPD1efPn20Y8cOKyYlJUUdO3aU0+lUYGCgbr31Vr3xxhsyxlxSvxYWFiohIUG1a9eWn5+fbr/9dn355Zcl4txNpduzZ4/uu+8+RUREyG63q1atWurevbs1naJRo0bavn271q9fb03DLJ4GVlzf22+/rXHjxqlu3bqy2+3atWtXmVMEt2/fru7du8vf319hYWF68sknlZeXZ20va7qFzWZTcnKypHN/2+eee07SuS/Xxe0r3qe7aXs5OTl64oknVLduXVWvXl033XSTJk2a5DKiUbyfJ598Um+//bZuvvlm+fn5qXXr1lqxYkXpf4jz/PnPf1b79u3VokULl/K1a9cqJiZGISEh8vX1VYMGDTRw4ECX4y8oKNDzzz+vm2++WQ6HQyEhIYqNjdWGDRusmLS0NN1xxx0KDw+Xv7+/oqKiNHv2bBUWFl60bcYYzZs3T23atJGvr69q1qypQYMGac+ePR4d28VUqXLpH79ZWVnasmWLHnroIStxkqTbbrtNzZs317Jly1zi+/fvr4CAAL3++uuXvE/gevXFF1+oe/fuqlGjhvz8/HTbbbfpk08+cRvXuXNnORwO1a1bV5MnT9b8+fM9npL1t7/9zZpmW6NGDfXs2VMbN260tg8bNky33367JOnee++VzWYrdUr1woULNXjwYElSbGys9bl+4flgy5Yt6tKli/z8/HTTTTdp1qxZOnv2rLXd3Xnk0KFD1ncIu92usLAw/fa3v9WaNWsueoyffPKJ2rRpI7vdrsaNGys1NdVt3IVT6c6ePatp06apRYsW8vX1VXBwsKKjozVnzhxJFz+PlfW9pLQpgvn5+Xr22WdVu3Zt+fr6qmvXrvr6669dYkqb1n7+VO+9e/dayVFKSorVtuJ9ljZtb8GCBWrdurUcDoecTqcGDBig77//vsR+AgICtGvXLvXp00cBAQGqX7++xo0bV+J8jCuHkaer0I8//ihJLkP1GRkZiouLU8eOHfXKK68oKChI77//vu69917l5eVZ/0izsrLUvn17FRYWauLEiYqOjlZ2drZWr16tI0eOqFatWmXue8CAAbrnnnv02GOPafv27Zo8ebK+++47bd68WdWqVbPitm7dqu+//15JSUlq3Lix/P39tXPnTt12220KDw/Xn/70J4WEhGjRokUaNmyYfvnlFyUkJEiScnNzdfvtt2vv3r0aP368OnbsqBMnTugf//iH/vvf/yoyMlLSuQ+kRx99VA0aNJAkbdq0SU899ZSysrI0ZcoUr/t11KhReuutt/T73/9ePXv2VGZmpuLj45Wbm3vR1/bp00dnzpzR7Nmz1aBBAx0+fFgbNmywpg8sW7ZMgwYNUlBQkDUFzm63u9QxYcIEde7cWa+88oqqVKmi8PBwHThwwO3+CgsL1adPHz366KNKTEzUhg0bNG3aNP3000/6+OOPvTrukSNHKicnR3PnztXSpUutqQOljTjl5+crNjZWu3fvVkpKiqKjo/X5559r5syZ+uabb0p8qfjkk0+0ZcsWPf/88woICNDs2bM1YMAA7dy5UzfddFOp7Tp9+rTWrFmjp556yqV879696tu3r7p06aIFCxYoODhYWVlZWrVqlU6fPi0/Pz8VFRXpzjvv1Oeff66xY8eqW7duKioq0qZNm7Rv3z5rGtzu3bv1wAMPqHHjxqpevbr+/e9/a/r06dqxY4cWLFhQZr89+uijWrhwocaMGaMXX3xROTk5ev7553Xbbbfp3//+t/Vv6ezZsy5fRkpjs9lUtWrVi8Z5IjMzU5IUHR1dYlt0dLT++c9/upRVr17d+kL4/PPPl0sbgOvB+vXr1bNnT0VHR+uNN96Q3W7XvHnz1L9/f7333nu69957JUnffvutevbsqebNm+vNN9+Un5+fXnnlFS1atMij/bz77rt68MEH1atXL7333nsqKCjQ7NmzFRMTo/T0dN1+++2aPHmyOnTooNGjR2vGjBmKjY1VYGCg2/r69u2rGTNmaOLEiUpLS7Omfjdp0sSKOXDggB588EGNGzdOU6dO1bJlyzRhwgRFRERo6NChpbb1oYce0tatWzV9+nQ1b95cR48e1datW5WdnV3mMaanp+uuu+5S586d9f7771vnzAt/CHZn9uzZSk5OVlJSku644w4VFhZqx44d1jnWk/OYu+8lZZk4caJuvfVWzZ8/X8eOHVNycrJiYmL09ddfl3nuulCdOnW0atUqxcXF6X/+5380cuRISSpztGnmzJmaOHGi7r//fs2cOVPZ2dlKTk5W586dtWXLFjVr1syKLSws1O9+9zv9z//8j8aNG6d//OMfeuGFFxQUFHRJ34VQDgwqzV/+8hcjyWzatMkUFhaa3Nxcs2rVKlO7dm1zxx13mMLCQis2MjLStG3b1qXMGGP69etn6tSpY86cOWOMMWbEiBGmWrVq5rvvvit1vz/++KORZP7yl79YZVOnTjWSzDPPPOMS+8477xhJZtGiRVZZw4YNTdWqVc3OnTtdYu+77z5jt9vNvn37XMrvvPNO4+fnZ44ePWqMMeb55583ksxnn33mQS+dc+bMGVNYWGief/55ExISYs6ePWtt69q1q+natWuZr//+++/LPL6HH37YKsvIyDCSTEZGhjHGmMOHDxtJ5uWXXy5zH7fccovbdhTXd8cdd5S6rXhfxhjz8MMPG0lmzpw5LrHTp083kswXX3xhjHH/dywmyUydOtV6/oc//MFIMj/++GOJ2Av775VXXjGSzOLFi13iXnzxRSPJ/P3vf3fZT61atczx48etsgMHDpgqVaqYmTNnltjX+TZv3mwkmffff9+l/MMPPzSSzDfffFPqa9966y0jybz++utl7uN8xe+ht956y1StWtXk5ORY2x5++GHTsGFD6/nGjRuNJPPSSy+51LF//37j6+trEhISrLLifzsXe5xf/4XK+vu4U/y+3bhxY4ltjzzyiKlevXqJ8kmTJpkqVaqYEydOeLQP4FpXfI7dsmVLqTGdOnUy4eHhJjc31yorKioyrVq1MvXq1bPONYMHDzb+/v7m0KFDVtyZM2dMy5YtL/pv98yZMyYiIsJERUVZ52pjjMnNzTXh4eHmtttus8qKzwlLliy56PEtWbKkxPmjWNeuXY0ks3nzZpfyli1bmt69e1vP3Z1HAgICzNixYy+6/wt17NjRREREmFOnTlllx48fN06n01z4dbNhw4Yu591+/fqZNm3alFl/WZ+TpX0vcbev4j6+9dZbXb5L7N2711SrVs2MHDnSKivt+8WF54xDhw6VOO8WK34fFrf7yJEjxtfX1/Tp08clbt++fcZut5sHHnjAZT/uzsd9+vQxLVq0KLEvXBlM27sKdOrUSdWqVVONGjUUFxenmjVr6qOPPrKm4+zatUs7duzQgw8+KEkqKiqyHn369NF///tf7dy5U5K0cuVKxcbG6uabb76kthTvo9g999wjHx8fZWRkuJRHR0eXuIh17dq16t69e4lrKoYNG6a8vDxresLKlSvVvHlz9ejRo8y2rF27Vj169FBQUJCqVq2qatWqacqUKcrOzi6xotjFFLe/tOMri9PpVJMmTfSHP/xBf/zjH/X11197NNJwoYEDB3oVf2FbH3jgAUkq8bcob2vXrpW/v78GDRrkUl48upmenu5SHhsbqxo1aljPa9WqpfDw8Iuunvfzzz9LksLDw13K27Rpo+rVq+uRRx7Rm2++6Xaa3MqVK+VwODRixIgy9/H111/rd7/7nUJCQqz30NChQ3XmzBn98MMPpb5uxYoVstlsGjJkiMu/t9q1a6t169Yu0ywfeeQRbdmy5aIPb0cMPXHhClZllYeHh+vs2bOljnYCN5qTJ09q8+bNGjRokMsKp1WrVtVDDz2k//znP9a5df369erWrZtCQ0OtuCpVquiee+656H527typn3/+WQ899JDLdN2AgAANHDhQmzZtcpmSXF5q166tDh06uJRFR0df9LO5Q4cOWrhwoaZNm6ZNmzZ5NM355MmT2rJli+Lj4+VwOKzyGjVqqH///hd9fYcOHfTvf/9bTzzxhFavXq3jx49f9DUXcve9pCwPPPCAy2dlw4YNddttt1X4OXbjxo06depUiamE9evXV7du3UqcY202W4k+9OTviIpD8nQVeOutt7RlyxatXbtWjz76qL7//nvdf//91vbiIe/f//73qlatmsvjiSeekCQdPnxY0rm5yvXq1bvkttSuXdvluY+Pj0JCQkoM17tbNSY7O9tteUREhLXd0zZ++eWX6tWrlyTp9ddf1z//+U9t2bJFkyZNknTuQlBvFO+7tOMri81mU3p6unr37q3Zs2fr1ltvVVhYmMaMGePRlL9i3qy0465dxW2/2NSJy5Wdna3atWuX+AIeHh4uHx+fEvt31392u/2if6Pi7eefaKVz007WrFmj8PBwjR49Wk2aNFGTJk2sue/SufdQREREmdcN7du3T126dFFWVpbmzJmjzz//XFu2bFFaWprL/t355ZdfZIxRrVq1Svyb27Rpk/XvTTr3d2nTps1FH+W5MEdxn7t7L+Tk5MjpdJYoL+5nb//tANerI0eOyBjj0XkrOzvb7bT3i02FP7+O0vZz9uzZClld91I/mz/44AM9/PDDmj9/vjp37iyn06mhQ4eW+cPLkSNHdPbs2RLnWKnkededCRMmKDU1VZs2bdKdd96pkJAQde/e3atl5r1dza60tl6Jc6xU+vvhwv37+fmVOE/a7Xbl5+dXXCNRJq55ugrcfPPN1iIRsbGxOnPmjObPn68PP/xQgwYNsn7pmjBhguLj493WUXzBfVhYmP7zn/9cclsOHDigunXrWs+LioqUnZ1d4kPY3S/bISEh+u9//1uivHiEofg4PGnj+++/r2rVqmnFihUuHxrLly/3+FgubJtU+vFdTMOGDfXGG29IOrca0uLFi5WcnKzTp0/rlVde8agNpY0SuOOu34tPXMVlxf1y4UWjl/vBHxISos2bN8sY49LmgwcPqqioyOWX18tRXE9OTk6JbV26dFGXLl105swZffXVV5o7d67Gjh2rWrVq6b777lNYWJi++OILnT17ttQEavny5Tp58qSWLl3qsgx6afdMubBtNpvNugfVhc4ve/75560Lk8vSsGHDcrvPR/H9W7Zt26Y+ffq4bNu2bZvb+7sU93N5/f2Aa13NmjVVpUoVj85bISEhbq/d8WQkt/gzu7T9VKlSRTVr1vSq7RUpNDRUL7/8sl5++WXt27dPf/vb35SYmKiDBw9q1apVbl9Ts2ZN2Ww2t/3hSR/5+Pjo2Wef1bPPPqujR49qzZo1mjhxonr37q39+/fLz8/vonV4c44trV0HDhxwOe86HA4dO3asRNz5P6B562LvBz6jr36MPF2FZs+erZo1a2rKlCk6e/asWrRooWbNmunf//63fvOb37h9FE+buvPOO5WRkWFNNfDWO++84/J88eLFKioq8ugmqt27d9fatWutk06xt956S35+ftZyqHfeead++OEHrV27ttS6im8afP4F9qdOndLbb7/txdH8qrj9pR2fN5o3b66kpCRFRUVp69atVrknv+h548K2Fi/nXXwstWrVksPh0LfffusS99FHH5Woq/jLvift6969u06cOFEiUX3rrbes7eWheGrp7t27S42pWrWqOnbsaI0WFff3nXfeqfz8/DLvq1V8Ij0/0THGeLTiXL9+/WSMUVZWltt/b1FRUVZsZUzbq1u3rjp06KBFixbpzJkzVvmmTZu0c+dOtz+y7NmzRyEhIR79Ug7cCPz9/dWxY0ctXbrU5bPx7NmzWrRokerVq2dNA+vatavWrl3r8qX57NmzWrJkyUX306JFC9WtW1fvvvuuy2qxJ0+e1F//+ldrBT5vefO5fqkaNGigJ598Uj179nQ5313I399fHTp00NKlS11GRHJzc73+7AsODtagQYM0evRo5eTkWD86lffxvvfeey5/j59++kkbNmxw+b7TqFEj/fDDDy4/UmZnZ7us6upt2zp37ixfX98Si4385z//sS5/wNWNkaerUM2aNTVhwgQlJCTo3Xff1ZAhQ/Tqq6/qzjvvVO/evTVs2DDVrVtXOTk5+v7777V161brA/z555/XypUrdccdd2jixImKiorS0aNHtWrVKj377LPWSnalWbp0qXx8fNSzZ09rtb3WrVt7NK976tSpWrFihWJjYzVlyhQ5nU698847+uSTTzR79mwFBQVJksaOHasPPvhAd911lxITE9WhQwedOnVK69evV79+/RQbG6u+ffvqj3/8ox544AE98sgjys7OVmpqqttRAE/cfPPNGjJkiF5++WVVq1ZNPXr0UGZmplJTU0tdzajYt99+qyeffFKDBw9Ws2bNVL16da1du1bffvutEhMTrbioqCi9//77+uCDD3TTTTfJ4XC4fMn2RvXq1fXSSy/pxIkTat++vbXa3p133mktZVt8Tc6CBQvUpEkTtW7dWl9++aXbeyYVt2POnDl6+OGHVa1aNbVo0cLlWqViQ4cOVVpamh5++GHt3btXUVFR+uKLLzRjxgz16dPnoteqeapevXq66aabtGnTJo0ZM8Yqf+WVV7R27Vr17dtXDRo0UH5+vrUyXvG+77//fv3lL3/RY489pp07dyo2NlZnz57V5s2bdfPNN+u+++5Tz549Vb16dd1///1KSEhQfn6+/vznP3s0Pea3v/2tHnnkEQ0fPlxfffWV7rjjDvn7++u///2vvvjiC0VFRVn3UYqIiLCm+Hjj0KFDWr9+vaRzo0XSuWu5iu8Jcv49Xnx8fNS1a1eXufAvvviievbsqcGDB+uJJ57QwYMHlZiYqFatWrm9P9ymTZvUtWtXr3+dBa51a9eudTvq26dPH82cOVM9e/ZUbGysfv/736t69eqaN2+eMjMz9d5771n/XiZNmqSPP/5Y3bt316RJk+Tr66tXXnlFJ0+elFT2rQeqVKmi2bNn68EHH1S/fv306KOPqqCgQH/4wx909OhRzZo165KOq3iE+bXXXlONGjXkcDjUuHHji05FL8uxY8cUGxurBx54QJGRkapRo4a2bNmiVatWlTrzpdgLL7yguLg49ezZU+PGjdOZM2f04osvyt/f3+0Mg/P179/fuudlWFiYfvrpJ7388stq2LChtfKcN+cxTxw8eFADBgzQqFGjdOzYMU2dOlUOh0MTJkywYh566CG9+uqrGjJkiEaNGqXs7GzNnj27xPeGGjVqqGHDhvroo4/UvXt3OZ1OhYaGWsuZny84OFiTJ0/WxIkTNXToUN1///3Kzs5WSkqKHA6Hdf8/XMUqcbGKG15ZKwGdOnXKNGjQwDRr1swUFRUZY4z597//be655x4THh5uqlWrZmrXrm26detmXnnlFZfX7t+/34wYMcLUrl3bVKtWzURERJh77rnH/PLLL8aYslfb+9e//mX69+9vAgICTI0aNcz9999vva5Yw4YNTd++fd0e07Zt20z//v1NUFCQqV69umndurXb1eCOHDlinn76adOgQQNTrVo1Ex4ebvr27Wt27NhhxSxYsMC0aNHC2O12c9NNN5mZM2eaN954o8RqO56stmeMMQUFBWbcuHEmPDzcOBwO06lTJ7Nx48ZSV+IpXsHol19+McOGDTORkZHG39/fBAQEmOjoaPO///u/1t/GmHMr9fTq1cvUqFHDZXW1slZPKm21PX9/f/Ptt9+amJgY4+vra5xOp3n88cdLrJR27NgxM3LkSFOrVi3j7+9v+vfvb/bu3et21Z8JEyaYiIgIU6VKFZd9uuu/7Oxs89hjj5k6deoYHx8f07BhQzNhwgSTn5/vEifJjB49usRxXdinpZk8ebKpWbOmS70bN240AwYMMA0bNjR2u92EhISYrl27mr/97W8urz116pSZMmWKadasmalevboJCQkx3bp1Mxs2bLBiPv74Y9O6dWvjcDhM3bp1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9957WrVqlRYtWsR9NAAAVxznJgC4cVxTyZMkLV26VJMmTdKUKVOUk5OjyMhIvffee7rvvvuuWBvsdrumTp1aYroFPEP/XT768PLQf5eH/ivpajg3XU14j5REn7hHv7hHv5R0tfSJzVxP68UCAAAAQAW5pq55AgAAAIDKQvIEAAAAAB4geQIAAAAAD5A8eeHEiRMaO3asIiIi5HA41KZNG73//vuV3axyt27dOtlsNrePTZs2ucRu3bpVPXr0UEBAgIKDgxUfH689e/a4rXfu3LmKjIyU3W5X48aNlZKSosLCwhJxBw8e1LBhwxQaGio/Pz917txZ6enpbutcs2aNOnfuLD8/P4WGhmrYsGE6ePDg5XeCF3Jzc5WQkKBevXopLCxMNptNycnJbmOvlf4qLCxUSkqKGjVqJLvdrsjISM2dO9fzTvGCp/03bNgwt+/JyMhIt/XeKP23du1ajRgxQpGRkfL391fdunV111136V//+leJWN5/uJLmz58vm82mgICAym5Kpfviiy/Up08f1axZU76+vmrWrJleeOGFym5Wpfr666919913KyIiQn5+foqMjNTzzz+vvLy8ym7aFVFR3x2uZZ70yZkzZ/THP/5RcXFxqlevnvz8/HTzzTcrMTFRR48evTINNfBYz549TXBwsHnllVfM2rVrzciRI40k884771R208pVRkaGkWRmzJhhNm7c6PLIzc214r7//ntTo0YN06VLF/PJJ5+Yv/71r+aWW24xERER5uDBgy51Tps2zdhsNjNhwgSTkZFhZs+ebapXr25GjRrlEpefn29atWpl6tWrZxYtWmT+/ve/m7vuusv4+PiYdevWucSuW7fO+Pj4mLvuusv8/e9/N4sWLTJ169Y1rVq1Mvn5+RXXQRf48ccfTVBQkLnjjjus98TUqVNLxF1L/TVy5Ehjt9vN7NmzTUZGhklMTDQ2m81Mnz69fDrtPJ7238MPP2x8fX1LvCe/+eabErE3Uv8NGjTIxMbGmnnz5pl169aZJUuWmE6dOhkfHx+Tnp5uxfH+w5X0n//8xwQFBZmIiAjj7+9f2c2pVO+8846pUqWKue+++8zf/vY3s3btWvP666+blJSUym5apdm+fbtxOBymdevW5oMPPjDp6elm6tSppmrVquZ3v/tdZTfviqiI7w7XOk/6JDc319SoUcM88sgjZsmSJSYj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" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "execution_count": 124 }, { "cell_type": "markdown", @@ -5694,9 +6681,12 @@ }, { "cell_type": "code", - "execution_count": 125, - "metadata": {}, - "outputs": [], + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:58:03.141555Z", + "start_time": "2024-06-08T21:58:03.139223Z" + } + }, "source": [ "from sklearn.base import BaseEstimator, TransformerMixin\n", "\n", @@ -5712,7 +6702,9 @@ " return self\n", " def transform(self, X):\n", " return X[:, self.feature_indices_]" - ] + ], + "outputs": [], + "execution_count": 125 }, { "cell_type": "markdown", @@ -5730,12 +6722,17 @@ }, { "cell_type": "code", - "execution_count": 126, - "metadata": {}, - "outputs": [], + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:58:03.143397Z", + "start_time": "2024-06-08T21:58:03.142135Z" + } + }, "source": [ "k = 5" - ] + ], + "outputs": [], + "execution_count": 126 }, { "cell_type": "markdown", @@ -5746,8 +6743,16 @@ }, { "cell_type": "code", - "execution_count": 127, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:58:03.145850Z", + "start_time": "2024-06-08T21:58:03.144059Z" + } + }, + "source": [ + "top_k_feature_indices = indices_of_top_k(feature_importances, k)\n", + "top_k_feature_indices" + ], "outputs": [ { "data": { @@ -5760,15 +6765,19 @@ "output_type": "execute_result" } ], - "source": [ - "top_k_feature_indices = indices_of_top_k(feature_importances, k)\n", - "top_k_feature_indices" - ] + "execution_count": 127 }, { "cell_type": "code", - "execution_count": 128, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:58:03.147976Z", + "start_time": "2024-06-08T21:58:03.146346Z" + } + }, + "source": [ + "np.array(attributes)[top_k_feature_indices]" + ], "outputs": [ { "data": { @@ -5782,9 +6791,7 @@ "output_type": "execute_result" } ], - "source": [ - "np.array(attributes)[top_k_feature_indices]" - ] + "execution_count": 128 }, { "cell_type": "markdown", @@ -5795,17 +6802,24 @@ }, { "cell_type": "code", - "execution_count": 129, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:58:03.150216Z", + "start_time": "2024-06-08T21:58:03.148327Z" + } + }, + "source": [ + "sorted(zip(feature_importances, attributes), reverse=True)[:k]" + ], "outputs": [ { "data": { "text/plain": [ - "[(0.36615898061813423, 'median_income'),\n", - " (0.16478099356159054, 'INLAND'),\n", - " (0.10879295677551575, 'pop_per_hhold'),\n", - " (0.07334423551601243, 'longitude'),\n", - " (0.06290907048262032, 'latitude')]" + "[(0.3790092248170966, 'median_income'),\n", + " (0.16570630316895874, 'INLAND'),\n", + " (0.10703132208204355, 'pop_per_hhold'),\n", + " (0.06965425227942927, 'longitude'),\n", + " (0.060421384008072176, 'latitude')]" ] }, "execution_count": 129, @@ -5813,9 +6827,7 @@ "output_type": "execute_result" } ], - "source": [ - "sorted(zip(feature_importances, attributes), reverse=True)[:k]" - ] + "execution_count": 129 }, { "cell_type": "markdown", @@ -5826,24 +6838,34 @@ }, { "cell_type": "code", - "execution_count": 130, - "metadata": {}, - "outputs": [], + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:58:03.151859Z", + "start_time": "2024-06-08T21:58:03.150596Z" + } + }, "source": [ "preparation_and_feature_selection_pipeline = Pipeline([\n", " ('preparation', full_pipeline),\n", " ('feature_selection', TopFeatureSelector(feature_importances, k))\n", "])" - ] + ], + "outputs": [], + "execution_count": 130 }, { "cell_type": "code", - "execution_count": 131, - "metadata": {}, - "outputs": [], + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:58:03.168214Z", + "start_time": "2024-06-08T21:58:03.152222Z" + } + }, "source": [ "housing_prepared_top_k_features = preparation_and_feature_selection_pipeline.fit_transform(housing)" - ] + ], + "outputs": [], + "execution_count": 131 }, { "cell_type": "markdown", @@ -5854,15 +6876,22 @@ }, { "cell_type": "code", - "execution_count": 132, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:58:03.170608Z", + "start_time": "2024-06-08T21:58:03.168760Z" + } + }, + "source": [ + "housing_prepared_top_k_features[0:3]" + ], "outputs": [ { "data": { "text/plain": [ - "array([[-1.15604281, 0.77194962, -0.61493744, -0.08649871, 0. ],\n", - " [-1.17602483, 0.6596948 , 1.33645936, -0.03353391, 0. ],\n", - " [ 1.18684903, -1.34218285, -0.5320456 , -0.09240499, 0. ]])" + "array([[-0.94135046, 1.34743822, -0.8936472 , 0.00622264, 1. ],\n", + " [ 1.17178212, -1.19243966, 1.292168 , -0.04081077, 0. ],\n", + " [ 0.26758118, -0.1259716 , -0.52543365, -0.07537122, 1. ]])" ] }, "execution_count": 132, @@ -5870,9 +6899,7 @@ "output_type": "execute_result" } ], - "source": [ - "housing_prepared_top_k_features[0:3]" - ] + "execution_count": 132 }, { "cell_type": "markdown", @@ -5883,15 +6910,22 @@ }, { "cell_type": "code", - "execution_count": 133, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:58:03.172860Z", + "start_time": "2024-06-08T21:58:03.171164Z" + } + }, + "source": [ + "housing_prepared[0:3, top_k_feature_indices]" + ], "outputs": [ { "data": { "text/plain": [ - "array([[-1.15604281, 0.77194962, -0.61493744, -0.08649871, 0. ],\n", - " [-1.17602483, 0.6596948 , 1.33645936, -0.03353391, 0. ],\n", - " [ 1.18684903, -1.34218285, -0.5320456 , -0.09240499, 0. ]])" + "array([[-0.94135046, 1.34743822, -0.8936472 , 0.00622264, 1. ],\n", + " [ 1.17178212, -1.19243966, 1.292168 , -0.04081077, 0. ],\n", + " [ 0.26758118, -0.1259716 , -0.52543365, -0.07537122, 1. ]])" ] }, "execution_count": 133, @@ -5899,9 +6933,7 @@ "output_type": "execute_result" } ], - "source": [ - "housing_prepared[0:3, top_k_feature_indices]" - ] + "execution_count": 133 }, { "cell_type": "markdown", @@ -5926,21 +6958,33 @@ }, { "cell_type": "code", - "execution_count": 134, - "metadata": {}, - "outputs": [], + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:58:03.174712Z", + "start_time": "2024-06-08T21:58:03.173267Z" + } + }, "source": [ "prepare_select_and_predict_pipeline = Pipeline([\n", " ('preparation', full_pipeline),\n", " ('feature_selection', TopFeatureSelector(feature_importances, k)),\n", " ('svm_reg', SVR(**rnd_search.best_params_))\n", "])" - ] + ], + "outputs": [], + "execution_count": 134 }, { "cell_type": "code", - "execution_count": 135, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:58:07.287386Z", + "start_time": "2024-06-08T21:58:03.175079Z" + } + }, + "source": [ + "prepare_select_and_predict_pipeline.fit(housing, housing_labels)" + ], "outputs": [ { "data": { @@ -5960,13 +7004,72 @@ " 'population', 'households',\n", " 'median_income']),\n", " ('cat', OneHotEncoder(...\n", - " TopFeatureSelector(feature_importances=array([7.33442355e-02, 6.29090705e-02, 4.11437985e-02, 1.46726854e-02,\n", - " 1.41064835e-02, 1.48742809e-02, 1.42575993e-02, 3.66158981e-01,\n", - " 5.64191792e-02, 1.08792957e-01, 5.33510773e-02, 1.03114883e-02,\n", - " 1.64780994e-01, 6.02803867e-05, 1.96041560e-03, 2.85647464e-03]),\n", + " TopFeatureSelector(feature_importances=array([6.96542523e-02, 6.04213840e-02, 4.21882202e-02, 1.52450557e-02,\n", + " 1.55545295e-02, 1.58491147e-02, 1.49346552e-02, 3.79009225e-01,\n", + " 5.47789150e-02, 1.07031322e-01, 4.82031213e-02, 6.79266007e-03,\n", + " 1.65706303e-01, 7.83480660e-05, 1.52473276e-03, 3.02816106e-03]),\n", " k=5)),\n", " ('svm_reg',\n", " SVR(C=157055.10989448498, gamma=0.26497040005002437))])" + ], + "text/html": [ + "
Pipeline(steps=[('preparation',\n",
+       "                 ColumnTransformer(transformers=[('num',\n",
+       "                                                  Pipeline(steps=[('imputer',\n",
+       "                                                                   SimpleImputer(strategy='median')),\n",
+       "                                                                  ('attribs_adder',\n",
+       "                                                                   CombinedAttributesAdder()),\n",
+       "                                                                  ('std_scaler',\n",
+       "                                                                   StandardScaler())]),\n",
+       "                                                  ['longitude', 'latitude',\n",
+       "                                                   'housing_median_age',\n",
+       "                                                   'total_rooms',\n",
+       "                                                   'total_bedrooms',\n",
+       "                                                   'population', 'households',\n",
+       "                                                   'median_income']),\n",
+       "                                                 ('cat', OneHotEncoder(...\n",
+       "                 TopFeatureSelector(feature_importances=array([6.96542523e-02, 6.04213840e-02, 4.21882202e-02, 1.52450557e-02,\n",
+       "       1.55545295e-02, 1.58491147e-02, 1.49346552e-02, 3.79009225e-01,\n",
+       "       5.47789150e-02, 1.07031322e-01, 4.82031213e-02, 6.79266007e-03,\n",
+       "       1.65706303e-01, 7.83480660e-05, 1.52473276e-03, 3.02816106e-03]),\n",
+       "                                    k=5)),\n",
+       "                ('svm_reg',\n",
+       "                 SVR(C=157055.10989448498, gamma=0.26497040005002437))])
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.
" ] }, "execution_count": 135, @@ -5974,9 +7077,7 @@ "output_type": "execute_result" } ], - "source": [ - "prepare_select_and_predict_pipeline.fit(housing, housing_labels)" - ] + "execution_count": 135 }, { "cell_type": "markdown", @@ -5987,25 +7088,30 @@ }, { "cell_type": "code", - "execution_count": 136, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T21:58:07.293609Z", + "start_time": "2024-06-08T21:58:07.288133Z" + } + }, + "source": [ + "some_data = housing.iloc[:4]\n", + "some_labels = housing_labels.iloc[:4]\n", + "\n", + "print(\"Predictions:\\t\", prepare_select_and_predict_pipeline.predict(some_data))\n", + "print(\"Labels:\\t\\t\", list(some_labels))" + ], "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Predictions:\t [203214.28978849 371846.88152572 173295.65441612 47328.3970888 ]\n", - "Labels:\t\t [286600.0, 340600.0, 196900.0, 46300.0]\n" + "Predictions:\t [ 83384.4917407 299407.90409275 92272.03334661 150173.16164089]\n", + "Labels:\t\t [72100.0, 279600.0, 82700.0, 112500.0]\n" ] } ], - "source": [ - "some_data = housing.iloc[:4]\n", - "some_labels = housing_labels.iloc[:4]\n", - "\n", - "print(\"Predictions:\\t\", prepare_select_and_predict_pipeline.predict(some_data))\n", - "print(\"Labels:\\t\\t\", list(some_labels))" - ] + "execution_count": 136 }, { "cell_type": "markdown", @@ -6044,148 +7150,3608 @@ }, { "cell_type": "code", - "execution_count": 137, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T22:17:01.579730Z", + "start_time": "2024-06-08T21:58:07.297268Z" + } + }, + "source": [ + "full_pipeline.named_transformers_[\"cat\"].handle_unknown = 'ignore'\n", + "\n", + "param_grid = [{\n", + " 'preparation__num__imputer__strategy': ['mean', 'median', 'most_frequent'],\n", + " 'feature_selection__k': list(range(1, len(feature_importances) + 1))\n", + "}]\n", + "\n", + "grid_search_prep = GridSearchCV(prepare_select_and_predict_pipeline, param_grid, cv=5,\n", + " scoring='neg_mean_squared_error', verbose=2)\n", + "grid_search_prep.fit(housing, housing_labels)" + ], "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Fitting 5 folds for each of 48 candidates, totalling 240 fits\n", - "[CV] feature_selection__k=1, preparation__num__imputer__strategy=mean \n" + "Fitting 5 folds for each of 48 candidates, totalling 240 fits\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "[Parallel(n_jobs=1)]: Using backend SequentialBackend with 1 concurrent workers.\n" + "/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:824: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py\", line 813, in _score\n", + " scores = scorer(estimator, X_test, y_test)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 266, in __call__\n", + " return self._score(partial(_cached_call, None), estimator, X, y_true, **_kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 353, in _score\n", + " y_pred = method_caller(estimator, \"predict\", X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 86, in _cached_call\n", + " result, _ = _get_response_values(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_response.py\", line 109, in _get_response_values\n", + " y_pred, pos_label = estimator.predict(X), None\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 507, in predict\n", + " Xt = transform.transform(Xt)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 816, in transform\n", + " Xs = self._fit_transform(\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 670, in _fit_transform\n", + " return Parallel(n_jobs=self.n_jobs)(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 65, in __call__\n", + " return super().__call__(iterable_with_config)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 1088, in __call__\n", + " while self.dispatch_one_batch(iterator):\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 901, in dispatch_one_batch\n", + " self._dispatch(tasks)\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 819, in _dispatch\n", + " job = self._backend.apply_async(batch, callback=cb)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 208, in apply_async\n", + " result = ImmediateResult(func)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 597, in __init__\n", + " self.results = batch()\n", + " ^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in __call__\n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in \n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 127, in __call__\n", + " return self.function(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 933, in _transform_one\n", + " res = transformer.transform(X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 1016, in transform\n", + " X_int, X_mask = self._transform(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 199, in _transform\n", + " raise ValueError(msg)\n", + "ValueError: Found unknown categories ['ISLAND'] in column 0 during transform\n", + "\n", + " warnings.warn(\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "[CV] feature_selection__k=1, preparation__num__imputer__strategy=mean, total= 4.2s\n", - "[CV] feature_selection__k=1, preparation__num__imputer__strategy=mean \n" + "[CV] END feature_selection__k=1, preparation__num__imputer__strategy=mean; total time= 2.2s\n", + "[CV] END feature_selection__k=1, preparation__num__imputer__strategy=mean; total time= 2.9s\n", + "[CV] END feature_selection__k=1, preparation__num__imputer__strategy=mean; total time= 2.9s\n", + "[CV] END feature_selection__k=1, preparation__num__imputer__strategy=mean; total time= 3.0s\n", + "[CV] END feature_selection__k=1, preparation__num__imputer__strategy=mean; total time= 2.9s\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "[Parallel(n_jobs=1)]: Done 1 out of 1 | elapsed: 4.2s remaining: 0.0s\n" + "/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:824: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py\", line 813, in _score\n", + " scores = scorer(estimator, X_test, y_test)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 266, in __call__\n", + " return self._score(partial(_cached_call, None), estimator, X, y_true, **_kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 353, in _score\n", + " y_pred = method_caller(estimator, \"predict\", X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 86, in _cached_call\n", + " result, _ = _get_response_values(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_response.py\", line 109, in _get_response_values\n", + " y_pred, pos_label = estimator.predict(X), None\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 507, in predict\n", + " Xt = transform.transform(Xt)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 816, in transform\n", + " Xs = self._fit_transform(\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 670, in _fit_transform\n", + " return Parallel(n_jobs=self.n_jobs)(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 65, in __call__\n", + " return super().__call__(iterable_with_config)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 1088, in __call__\n", + " while self.dispatch_one_batch(iterator):\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 901, in dispatch_one_batch\n", + " self._dispatch(tasks)\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 819, in _dispatch\n", + " job = self._backend.apply_async(batch, callback=cb)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 208, in apply_async\n", + " result = ImmediateResult(func)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 597, in __init__\n", + " self.results = batch()\n", + " ^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in __call__\n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in \n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 127, in __call__\n", + " return self.function(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 933, in _transform_one\n", + " res = transformer.transform(X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 1016, in transform\n", + " X_int, X_mask = self._transform(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 199, in _transform\n", + " raise ValueError(msg)\n", + "ValueError: Found unknown categories ['ISLAND'] in column 0 during transform\n", + "\n", + " warnings.warn(\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "[CV] feature_selection__k=1, preparation__num__imputer__strategy=mean, total= 5.2s\n", - "[CV] feature_selection__k=1, preparation__num__imputer__strategy=mean \n", - "[CV] feature_selection__k=1, preparation__num__imputer__strategy=mean, total= 4.7s\n", - "[CV] feature_selection__k=1, preparation__num__imputer__strategy=mean \n", - "[CV] feature_selection__k=1, preparation__num__imputer__strategy=mean, total= 4.7s\n", - "[CV] feature_selection__k=1, preparation__num__imputer__strategy=mean \n", - "[CV] feature_selection__k=1, preparation__num__imputer__strategy=mean, total= 4.8s\n", - "[CV] feature_selection__k=1, preparation__num__imputer__strategy=median \n", - "[CV] feature_selection__k=1, preparation__num__imputer__strategy=median, total= 5.1s\n", - "[CV] feature_selection__k=1, preparation__num__imputer__strategy=median \n", - "[CV] feature_selection__k=1, preparation__num__imputer__strategy=median, total= 4.9s\n", - "[CV] feature_selection__k=1, preparation__num__imputer__strategy=median \n", - "[CV] feature_selection__k=1, preparation__num__imputer__strategy=median, total= 4.7s\n", - "[CV] feature_selection__k=1, preparation__num__imputer__strategy=median \n", - "[CV] feature_selection__k=1, preparation__num__imputer__strategy=median, total= 4.3s\n", - "[CV] feature_selection__k=1, preparation__num__imputer__strategy=median \n", - "[CV] feature_selection__k=1, preparation__num__imputer__strategy=median, total= 4.2s\n", - "[CV] feature_selection__k=1, preparation__num__imputer__strategy=most_frequent \n", - "[CV] feature_selection__k=1, preparation__num__imputer__strategy=most_frequent, total= 4.6s\n", - "[CV] feature_selection__k=1, preparation__num__imputer__strategy=most_frequent \n", - "[CV] feature_selection__k=1, preparation__num__imputer__strategy=most_frequent, total= 4.3s\n", - "[CV] feature_selection__k=1, preparation__num__imputer__strategy=most_frequent \n", - "[CV] feature_selection__k=1, preparation__num__imputer__strategy=most_frequent, total= 4.4s\n", - "[CV] feature_selection__k=1, preparation__num__imputer__strategy=most_frequent \n", - "[CV] feature_selection__k=1, preparation__num__imputer__strategy=most_frequent, total= 4.7s\n", - "[CV] feature_selection__k=1, preparation__num__imputer__strategy=most_frequent \n", - "[CV] feature_selection__k=1, preparation__num__imputer__strategy=most_frequent, total= 4.8s\n", - "[CV] feature_selection__k=2, preparation__num__imputer__strategy=mean \n", - "[CV] feature_selection__k=2, preparation__num__imputer__strategy=mean, total= 4.8s\n", - "<<414 more lines>>\n", - "[CV] feature_selection__k=15, preparation__num__imputer__strategy=most_frequent \n", - "[CV] feature_selection__k=15, preparation__num__imputer__strategy=most_frequent, total= 15.8s\n", - "[CV] feature_selection__k=15, preparation__num__imputer__strategy=most_frequent \n", - "[CV] feature_selection__k=15, preparation__num__imputer__strategy=most_frequent, total= 19.8s\n", - "[CV] feature_selection__k=16, preparation__num__imputer__strategy=mean \n", - "[CV] feature_selection__k=16, preparation__num__imputer__strategy=mean, total= 17.9s\n", - "[CV] feature_selection__k=16, preparation__num__imputer__strategy=mean \n", - "[CV] feature_selection__k=16, preparation__num__imputer__strategy=mean, total= 19.2s\n", - "[CV] feature_selection__k=16, preparation__num__imputer__strategy=mean \n", - "[CV] feature_selection__k=16, preparation__num__imputer__strategy=mean, total= 18.2s\n", - "[CV] feature_selection__k=16, preparation__num__imputer__strategy=mean \n", - "[CV] feature_selection__k=16, preparation__num__imputer__strategy=mean, total= 19.1s\n", - "[CV] feature_selection__k=16, preparation__num__imputer__strategy=mean \n", - "[CV] feature_selection__k=16, preparation__num__imputer__strategy=mean, total= 16.4s\n", - "[CV] feature_selection__k=16, preparation__num__imputer__strategy=median \n", - "[CV] feature_selection__k=16, preparation__num__imputer__strategy=median, total= 17.9s\n", - "[CV] feature_selection__k=16, preparation__num__imputer__strategy=median \n", - "[CV] feature_selection__k=16, preparation__num__imputer__strategy=median, total= 19.2s\n", - "[CV] feature_selection__k=16, preparation__num__imputer__strategy=median \n", - "[CV] feature_selection__k=16, preparation__num__imputer__strategy=median, total= 20.5s\n", - "[CV] feature_selection__k=16, preparation__num__imputer__strategy=median \n", - "[CV] feature_selection__k=16, preparation__num__imputer__strategy=median, total= 17.1s\n", - "[CV] feature_selection__k=16, preparation__num__imputer__strategy=median \n", - "[CV] feature_selection__k=16, preparation__num__imputer__strategy=median, total= 20.3s\n", - "[CV] feature_selection__k=16, preparation__num__imputer__strategy=most_frequent \n", - "[CV] feature_selection__k=16, preparation__num__imputer__strategy=most_frequent, total= 16.7s\n", - "[CV] feature_selection__k=16, preparation__num__imputer__strategy=most_frequent \n", - "[CV] feature_selection__k=16, preparation__num__imputer__strategy=most_frequent, total= 19.4s\n", - "[CV] feature_selection__k=16, preparation__num__imputer__strategy=most_frequent \n", - "[CV] feature_selection__k=16, preparation__num__imputer__strategy=most_frequent, total= 17.2s\n", - "[CV] feature_selection__k=16, preparation__num__imputer__strategy=most_frequent \n", - "[CV] feature_selection__k=16, preparation__num__imputer__strategy=most_frequent, total= 17.5s\n", - "[CV] feature_selection__k=16, preparation__num__imputer__strategy=most_frequent \n", - "[CV] feature_selection__k=16, preparation__num__imputer__strategy=most_frequent, total= 19.1s\n" + "[CV] END feature_selection__k=1, preparation__num__imputer__strategy=median; total time= 2.1s\n", + "[CV] END feature_selection__k=1, preparation__num__imputer__strategy=median; total time= 2.9s\n", + "[CV] END feature_selection__k=1, preparation__num__imputer__strategy=median; total time= 3.0s\n", + "[CV] END feature_selection__k=1, preparation__num__imputer__strategy=median; total time= 2.9s\n", + "[CV] END feature_selection__k=1, preparation__num__imputer__strategy=median; total time= 2.9s\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "[Parallel(n_jobs=1)]: Done 240 out of 240 | elapsed: 42.3min finished\n" + "/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:824: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py\", line 813, in _score\n", + " scores = scorer(estimator, X_test, y_test)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 266, in __call__\n", + " return self._score(partial(_cached_call, None), estimator, X, y_true, **_kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 353, in _score\n", + " y_pred = method_caller(estimator, \"predict\", X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 86, in _cached_call\n", + " result, _ = _get_response_values(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_response.py\", line 109, in _get_response_values\n", + " y_pred, pos_label = estimator.predict(X), None\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 507, in predict\n", + " Xt = transform.transform(Xt)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 816, in transform\n", + " Xs = self._fit_transform(\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 670, in _fit_transform\n", + " return Parallel(n_jobs=self.n_jobs)(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 65, in __call__\n", + " return super().__call__(iterable_with_config)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 1088, in __call__\n", + " while self.dispatch_one_batch(iterator):\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 901, in dispatch_one_batch\n", + " self._dispatch(tasks)\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 819, in _dispatch\n", + " job = self._backend.apply_async(batch, callback=cb)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 208, in apply_async\n", + " result = ImmediateResult(func)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 597, in __init__\n", + " self.results = batch()\n", + " ^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in __call__\n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in \n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 127, in __call__\n", + " return self.function(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 933, in _transform_one\n", + " res = transformer.transform(X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 1016, in transform\n", + " X_int, X_mask = self._transform(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 199, in _transform\n", + " raise ValueError(msg)\n", + "ValueError: Found unknown categories ['ISLAND'] in column 0 during transform\n", + "\n", + " warnings.warn(\n" ] }, { - "data": { - "text/plain": [ - "GridSearchCV(cv=5,\n", - " estimator=Pipeline(steps=[('preparation',\n", - " ColumnTransformer(transformers=[('num',\n", - " Pipeline(steps=[('imputer',\n", - " SimpleImputer(strategy='median')),\n", - " ('attribs_adder',\n", - " CombinedAttributesAdder()),\n", - " ('std_scaler',\n", - " StandardScaler())]),\n", - " ['longitude',\n", - " 'latitude',\n", - " 'housing_median_age',\n", - " 'total_rooms',\n", - " 'total_bedrooms',\n", - " 'population',\n", - " 'households',\n", - " 'median_inc...\n", - " 5.64191792e-02, 1.08792957e-01, 5.33510773e-02, 1.03114883e-02,\n", - " 1.64780994e-01, 6.02803867e-05, 1.96041560e-03, 2.85647464e-03]),\n", - " k=5)),\n", - " ('svm_reg',\n", - " SVR(C=157055.10989448498,\n", - " gamma=0.26497040005002437))]),\n", - " param_grid=[{'feature_selection__k': [1, 2, 3, 4, 5, 6, 7, 8, 9,\n", - " 10, 11, 12, 13, 14, 15, 16],\n", - " 'preparation__num__imputer__strategy': ['mean',\n", + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV] END feature_selection__k=1, preparation__num__imputer__strategy=most_frequent; total time= 2.1s\n", + "[CV] END feature_selection__k=1, preparation__num__imputer__strategy=most_frequent; total time= 2.9s\n", + "[CV] END feature_selection__k=1, preparation__num__imputer__strategy=most_frequent; total time= 2.9s\n", + "[CV] END feature_selection__k=1, preparation__num__imputer__strategy=most_frequent; total time= 2.9s\n", + "[CV] END feature_selection__k=1, preparation__num__imputer__strategy=most_frequent; total time= 2.9s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:824: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py\", line 813, in _score\n", + " scores = scorer(estimator, X_test, y_test)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 266, in __call__\n", + " return self._score(partial(_cached_call, None), estimator, X, y_true, **_kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 353, in _score\n", + " y_pred = method_caller(estimator, \"predict\", X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 86, in _cached_call\n", + " result, _ = _get_response_values(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_response.py\", line 109, in _get_response_values\n", + " y_pred, pos_label = estimator.predict(X), None\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 507, in predict\n", + " Xt = transform.transform(Xt)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 816, in transform\n", + " Xs = self._fit_transform(\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 670, in _fit_transform\n", + " return Parallel(n_jobs=self.n_jobs)(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 65, in __call__\n", + " return super().__call__(iterable_with_config)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 1088, in __call__\n", + " while self.dispatch_one_batch(iterator):\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 901, in dispatch_one_batch\n", + " self._dispatch(tasks)\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 819, in _dispatch\n", + " job = self._backend.apply_async(batch, callback=cb)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 208, in apply_async\n", + " result = ImmediateResult(func)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 597, in __init__\n", + " self.results = batch()\n", + " ^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in __call__\n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in \n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 127, in __call__\n", + " return self.function(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 933, in _transform_one\n", + " res = transformer.transform(X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 1016, in transform\n", + " X_int, X_mask = self._transform(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 199, in _transform\n", + " raise ValueError(msg)\n", + "ValueError: Found unknown categories ['ISLAND'] in column 0 during transform\n", + "\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV] END feature_selection__k=2, preparation__num__imputer__strategy=mean; total time= 2.2s\n", + "[CV] END feature_selection__k=2, preparation__num__imputer__strategy=mean; total time= 3.1s\n", + "[CV] END feature_selection__k=2, preparation__num__imputer__strategy=mean; total time= 3.1s\n", + "[CV] END feature_selection__k=2, preparation__num__imputer__strategy=mean; total time= 3.1s\n", + "[CV] END feature_selection__k=2, preparation__num__imputer__strategy=mean; total time= 3.1s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:824: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py\", line 813, in _score\n", + " scores = scorer(estimator, X_test, y_test)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 266, in __call__\n", + " return self._score(partial(_cached_call, None), estimator, X, y_true, **_kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 353, in _score\n", + " y_pred = method_caller(estimator, \"predict\", X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 86, in _cached_call\n", + " result, _ = _get_response_values(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_response.py\", line 109, in _get_response_values\n", + " y_pred, pos_label = estimator.predict(X), None\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 507, in predict\n", + " Xt = transform.transform(Xt)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 816, in transform\n", + " Xs = self._fit_transform(\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 670, in _fit_transform\n", + " return Parallel(n_jobs=self.n_jobs)(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 65, in __call__\n", + " return super().__call__(iterable_with_config)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 1088, in __call__\n", + " while self.dispatch_one_batch(iterator):\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 901, in dispatch_one_batch\n", + " self._dispatch(tasks)\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 819, in _dispatch\n", + " job = self._backend.apply_async(batch, callback=cb)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 208, in apply_async\n", + " result = ImmediateResult(func)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 597, in __init__\n", + " self.results = batch()\n", + " ^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in __call__\n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in \n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 127, in __call__\n", + " return self.function(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 933, in _transform_one\n", + " res = transformer.transform(X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 1016, in transform\n", + " X_int, X_mask = self._transform(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 199, in _transform\n", + " raise ValueError(msg)\n", + "ValueError: Found unknown categories ['ISLAND'] in column 0 during transform\n", + "\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV] END feature_selection__k=2, preparation__num__imputer__strategy=median; total time= 2.3s\n", + "[CV] END feature_selection__k=2, preparation__num__imputer__strategy=median; total time= 3.1s\n", + "[CV] END feature_selection__k=2, preparation__num__imputer__strategy=median; total time= 3.1s\n", + "[CV] END feature_selection__k=2, preparation__num__imputer__strategy=median; total time= 3.1s\n", + "[CV] END feature_selection__k=2, preparation__num__imputer__strategy=median; total time= 3.1s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:824: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py\", line 813, in _score\n", + " scores = scorer(estimator, X_test, y_test)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 266, in __call__\n", + " return self._score(partial(_cached_call, None), estimator, X, y_true, **_kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 353, in _score\n", + " y_pred = method_caller(estimator, \"predict\", X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 86, in _cached_call\n", + " result, _ = _get_response_values(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_response.py\", line 109, in _get_response_values\n", + " y_pred, pos_label = estimator.predict(X), None\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 507, in predict\n", + " Xt = transform.transform(Xt)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 816, in transform\n", + " Xs = self._fit_transform(\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 670, in _fit_transform\n", + " return Parallel(n_jobs=self.n_jobs)(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 65, in __call__\n", + " return super().__call__(iterable_with_config)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 1088, in __call__\n", + " while self.dispatch_one_batch(iterator):\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 901, in dispatch_one_batch\n", + " self._dispatch(tasks)\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 819, in _dispatch\n", + " job = self._backend.apply_async(batch, callback=cb)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 208, in apply_async\n", + " result = ImmediateResult(func)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 597, in __init__\n", + " self.results = batch()\n", + " ^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in __call__\n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in \n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 127, in __call__\n", + " return self.function(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 933, in _transform_one\n", + " res = transformer.transform(X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 1016, in transform\n", + " X_int, X_mask = self._transform(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 199, in _transform\n", + " raise ValueError(msg)\n", + "ValueError: Found unknown categories ['ISLAND'] in column 0 during transform\n", + "\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV] END feature_selection__k=2, preparation__num__imputer__strategy=most_frequent; total time= 2.3s\n", + "[CV] END feature_selection__k=2, preparation__num__imputer__strategy=most_frequent; total time= 3.1s\n", + "[CV] END feature_selection__k=2, preparation__num__imputer__strategy=most_frequent; total time= 3.1s\n", + "[CV] END feature_selection__k=2, preparation__num__imputer__strategy=most_frequent; total time= 3.1s\n", + "[CV] END feature_selection__k=2, preparation__num__imputer__strategy=most_frequent; total time= 3.1s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:824: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py\", line 813, in _score\n", + " scores = scorer(estimator, X_test, y_test)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 266, in __call__\n", + " return self._score(partial(_cached_call, None), estimator, X, y_true, **_kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 353, in _score\n", + " y_pred = method_caller(estimator, \"predict\", X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 86, in _cached_call\n", + " result, _ = _get_response_values(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_response.py\", line 109, in _get_response_values\n", + " y_pred, pos_label = estimator.predict(X), None\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 507, in predict\n", + " Xt = transform.transform(Xt)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 816, in transform\n", + " Xs = self._fit_transform(\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 670, in _fit_transform\n", + " return Parallel(n_jobs=self.n_jobs)(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 65, in __call__\n", + " return super().__call__(iterable_with_config)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 1088, in __call__\n", + " while self.dispatch_one_batch(iterator):\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 901, in dispatch_one_batch\n", + " self._dispatch(tasks)\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 819, in _dispatch\n", + " job = self._backend.apply_async(batch, callback=cb)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 208, in apply_async\n", + " result = ImmediateResult(func)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 597, in __init__\n", + " self.results = batch()\n", + " ^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in __call__\n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in \n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 127, in __call__\n", + " return self.function(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 933, in _transform_one\n", + " res = transformer.transform(X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 1016, in transform\n", + " X_int, X_mask = self._transform(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 199, in _transform\n", + " raise ValueError(msg)\n", + "ValueError: Found unknown categories ['ISLAND'] in column 0 during transform\n", + "\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV] END feature_selection__k=3, preparation__num__imputer__strategy=mean; total time= 2.3s\n", + "[CV] END feature_selection__k=3, preparation__num__imputer__strategy=mean; total time= 3.3s\n", + "[CV] END feature_selection__k=3, preparation__num__imputer__strategy=mean; total time= 3.3s\n", + "[CV] END feature_selection__k=3, preparation__num__imputer__strategy=mean; total time= 3.2s\n", + "[CV] END feature_selection__k=3, preparation__num__imputer__strategy=mean; total time= 3.3s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:824: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py\", line 813, in _score\n", + " scores = scorer(estimator, X_test, y_test)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 266, in __call__\n", + " return self._score(partial(_cached_call, None), estimator, X, y_true, **_kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 353, in _score\n", + " y_pred = method_caller(estimator, \"predict\", X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 86, in _cached_call\n", + " result, _ = _get_response_values(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_response.py\", line 109, in _get_response_values\n", + " y_pred, pos_label = estimator.predict(X), None\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 507, in predict\n", + " Xt = transform.transform(Xt)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 816, in transform\n", + " Xs = self._fit_transform(\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 670, in _fit_transform\n", + " return Parallel(n_jobs=self.n_jobs)(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 65, in __call__\n", + " return super().__call__(iterable_with_config)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 1088, in __call__\n", + " while self.dispatch_one_batch(iterator):\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 901, in dispatch_one_batch\n", + " self._dispatch(tasks)\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 819, in _dispatch\n", + " job = self._backend.apply_async(batch, callback=cb)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 208, in apply_async\n", + " result = ImmediateResult(func)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 597, in __init__\n", + " self.results = batch()\n", + " ^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in __call__\n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in \n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 127, in __call__\n", + " return self.function(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 933, in _transform_one\n", + " res = transformer.transform(X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 1016, in transform\n", + " X_int, X_mask = self._transform(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 199, in _transform\n", + " raise ValueError(msg)\n", + "ValueError: Found unknown categories ['ISLAND'] in column 0 during transform\n", + "\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV] END feature_selection__k=3, preparation__num__imputer__strategy=median; total time= 2.3s\n", + "[CV] END feature_selection__k=3, preparation__num__imputer__strategy=median; total time= 3.2s\n", + "[CV] END feature_selection__k=3, preparation__num__imputer__strategy=median; total time= 3.3s\n", + "[CV] END feature_selection__k=3, preparation__num__imputer__strategy=median; total time= 3.2s\n", + "[CV] END feature_selection__k=3, preparation__num__imputer__strategy=median; total time= 3.2s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:824: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py\", line 813, in _score\n", + " scores = scorer(estimator, X_test, y_test)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 266, in __call__\n", + " return self._score(partial(_cached_call, None), estimator, X, y_true, **_kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 353, in _score\n", + " y_pred = method_caller(estimator, \"predict\", X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 86, in _cached_call\n", + " result, _ = _get_response_values(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_response.py\", line 109, in _get_response_values\n", + " y_pred, pos_label = estimator.predict(X), None\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 507, in predict\n", + " Xt = transform.transform(Xt)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 816, in transform\n", + " Xs = self._fit_transform(\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 670, in _fit_transform\n", + " return Parallel(n_jobs=self.n_jobs)(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 65, in __call__\n", + " return super().__call__(iterable_with_config)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 1088, in __call__\n", + " while self.dispatch_one_batch(iterator):\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 901, in dispatch_one_batch\n", + " self._dispatch(tasks)\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 819, in _dispatch\n", + " job = self._backend.apply_async(batch, callback=cb)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 208, in apply_async\n", + " result = ImmediateResult(func)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 597, in __init__\n", + " self.results = batch()\n", + " ^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in __call__\n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in \n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 127, in __call__\n", + " return self.function(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 933, in _transform_one\n", + " res = transformer.transform(X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 1016, in transform\n", + " X_int, X_mask = self._transform(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 199, in _transform\n", + " raise ValueError(msg)\n", + "ValueError: Found unknown categories ['ISLAND'] in column 0 during transform\n", + "\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV] END feature_selection__k=3, preparation__num__imputer__strategy=most_frequent; total time= 2.3s\n", + "[CV] END feature_selection__k=3, preparation__num__imputer__strategy=most_frequent; total time= 3.3s\n", + "[CV] END feature_selection__k=3, preparation__num__imputer__strategy=most_frequent; total time= 3.2s\n", + "[CV] END feature_selection__k=3, preparation__num__imputer__strategy=most_frequent; total time= 3.2s\n", + "[CV] END feature_selection__k=3, preparation__num__imputer__strategy=most_frequent; total time= 3.3s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:824: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py\", line 813, in _score\n", + " scores = scorer(estimator, X_test, y_test)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 266, in __call__\n", + " return self._score(partial(_cached_call, None), estimator, X, y_true, **_kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 353, in _score\n", + " y_pred = method_caller(estimator, \"predict\", X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 86, in _cached_call\n", + " result, _ = _get_response_values(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_response.py\", line 109, in _get_response_values\n", + " y_pred, pos_label = estimator.predict(X), None\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 507, in predict\n", + " Xt = transform.transform(Xt)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 816, in transform\n", + " Xs = self._fit_transform(\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 670, in _fit_transform\n", + " return Parallel(n_jobs=self.n_jobs)(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 65, in __call__\n", + " return super().__call__(iterable_with_config)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 1088, in __call__\n", + " while self.dispatch_one_batch(iterator):\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 901, in dispatch_one_batch\n", + " self._dispatch(tasks)\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 819, in _dispatch\n", + " job = self._backend.apply_async(batch, callback=cb)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 208, in apply_async\n", + " result = ImmediateResult(func)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 597, in __init__\n", + " self.results = batch()\n", + " ^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in __call__\n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in \n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 127, in __call__\n", + " return self.function(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 933, in _transform_one\n", + " res = transformer.transform(X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 1016, in transform\n", + " X_int, X_mask = self._transform(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 199, in _transform\n", + " raise ValueError(msg)\n", + "ValueError: Found unknown categories ['ISLAND'] in column 0 during transform\n", + "\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV] END feature_selection__k=4, preparation__num__imputer__strategy=mean; total time= 2.5s\n", + "[CV] END feature_selection__k=4, preparation__num__imputer__strategy=mean; total time= 3.3s\n", + "[CV] END feature_selection__k=4, preparation__num__imputer__strategy=mean; total time= 3.4s\n", + "[CV] END feature_selection__k=4, preparation__num__imputer__strategy=mean; total time= 3.3s\n", + "[CV] END feature_selection__k=4, preparation__num__imputer__strategy=mean; total time= 3.3s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:824: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py\", line 813, in _score\n", + " scores = scorer(estimator, X_test, y_test)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 266, in __call__\n", + " return self._score(partial(_cached_call, None), estimator, X, y_true, **_kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 353, in _score\n", + " y_pred = method_caller(estimator, \"predict\", X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 86, in _cached_call\n", + " result, _ = _get_response_values(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_response.py\", line 109, in _get_response_values\n", + " y_pred, pos_label = estimator.predict(X), None\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 507, in predict\n", + " Xt = transform.transform(Xt)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 816, in transform\n", + " Xs = self._fit_transform(\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 670, in _fit_transform\n", + " return Parallel(n_jobs=self.n_jobs)(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 65, in __call__\n", + " return super().__call__(iterable_with_config)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 1088, in __call__\n", + " while self.dispatch_one_batch(iterator):\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 901, in dispatch_one_batch\n", + " self._dispatch(tasks)\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 819, in _dispatch\n", + " job = self._backend.apply_async(batch, callback=cb)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 208, in apply_async\n", + " result = ImmediateResult(func)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 597, in __init__\n", + " self.results = batch()\n", + " ^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in __call__\n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in \n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 127, in __call__\n", + " return self.function(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 933, in _transform_one\n", + " res = transformer.transform(X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 1016, in transform\n", + " X_int, X_mask = self._transform(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 199, in _transform\n", + " raise ValueError(msg)\n", + "ValueError: Found unknown categories ['ISLAND'] in column 0 during transform\n", + "\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV] END feature_selection__k=4, preparation__num__imputer__strategy=median; total time= 2.5s\n", + "[CV] END feature_selection__k=4, preparation__num__imputer__strategy=median; total time= 3.4s\n", + "[CV] END feature_selection__k=4, preparation__num__imputer__strategy=median; total time= 3.4s\n", + "[CV] END feature_selection__k=4, preparation__num__imputer__strategy=median; total time= 3.3s\n", + "[CV] END feature_selection__k=4, preparation__num__imputer__strategy=median; total time= 3.4s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:824: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py\", line 813, in _score\n", + " scores = scorer(estimator, X_test, y_test)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 266, in __call__\n", + " return self._score(partial(_cached_call, None), estimator, X, y_true, **_kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 353, in _score\n", + " y_pred = method_caller(estimator, \"predict\", X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 86, in _cached_call\n", + " result, _ = _get_response_values(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_response.py\", line 109, in _get_response_values\n", + " y_pred, pos_label = estimator.predict(X), None\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 507, in predict\n", + " Xt = transform.transform(Xt)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 816, in transform\n", + " Xs = self._fit_transform(\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 670, in _fit_transform\n", + " return Parallel(n_jobs=self.n_jobs)(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 65, in __call__\n", + " return super().__call__(iterable_with_config)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 1088, in __call__\n", + " while self.dispatch_one_batch(iterator):\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 901, in dispatch_one_batch\n", + " self._dispatch(tasks)\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 819, in _dispatch\n", + " job = self._backend.apply_async(batch, callback=cb)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 208, in apply_async\n", + " result = ImmediateResult(func)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 597, in __init__\n", + " self.results = batch()\n", + " ^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in __call__\n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in \n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 127, in __call__\n", + " return self.function(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 933, in _transform_one\n", + " res = transformer.transform(X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 1016, in transform\n", + " X_int, X_mask = self._transform(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 199, in _transform\n", + " raise ValueError(msg)\n", + "ValueError: Found unknown categories ['ISLAND'] in column 0 during transform\n", + "\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV] END feature_selection__k=4, preparation__num__imputer__strategy=most_frequent; total time= 2.5s\n", + "[CV] END feature_selection__k=4, preparation__num__imputer__strategy=most_frequent; total time= 3.4s\n", + "[CV] END feature_selection__k=4, preparation__num__imputer__strategy=most_frequent; total time= 3.4s\n", + "[CV] END feature_selection__k=4, preparation__num__imputer__strategy=most_frequent; total time= 3.4s\n", + "[CV] END feature_selection__k=4, preparation__num__imputer__strategy=most_frequent; total time= 3.4s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:824: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py\", line 813, in _score\n", + " scores = scorer(estimator, X_test, y_test)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 266, in __call__\n", + " return self._score(partial(_cached_call, None), estimator, X, y_true, **_kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 353, in _score\n", + " y_pred = method_caller(estimator, \"predict\", X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 86, in _cached_call\n", + " result, _ = _get_response_values(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_response.py\", line 109, in _get_response_values\n", + " y_pred, pos_label = estimator.predict(X), None\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 507, in predict\n", + " Xt = transform.transform(Xt)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 816, in transform\n", + " Xs = self._fit_transform(\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 670, in _fit_transform\n", + " return Parallel(n_jobs=self.n_jobs)(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 65, in __call__\n", + " return super().__call__(iterable_with_config)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 1088, in __call__\n", + " while self.dispatch_one_batch(iterator):\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 901, in dispatch_one_batch\n", + " self._dispatch(tasks)\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 819, in _dispatch\n", + " job = self._backend.apply_async(batch, callback=cb)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 208, in apply_async\n", + " result = ImmediateResult(func)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 597, in __init__\n", + " self.results = batch()\n", + " ^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in __call__\n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in \n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 127, in __call__\n", + " return self.function(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 933, in _transform_one\n", + " res = transformer.transform(X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 1016, in transform\n", + " X_int, X_mask = self._transform(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 199, in _transform\n", + " raise ValueError(msg)\n", + "ValueError: Found unknown categories ['ISLAND'] in column 0 during transform\n", + "\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV] END feature_selection__k=5, preparation__num__imputer__strategy=mean; total time= 2.6s\n", + "[CV] END feature_selection__k=5, preparation__num__imputer__strategy=mean; total time= 3.5s\n", + "[CV] END feature_selection__k=5, preparation__num__imputer__strategy=mean; total time= 3.5s\n", + "[CV] END feature_selection__k=5, preparation__num__imputer__strategy=mean; total time= 3.4s\n", + "[CV] END feature_selection__k=5, preparation__num__imputer__strategy=mean; total time= 3.5s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:824: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py\", line 813, in _score\n", + " scores = scorer(estimator, X_test, y_test)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 266, in __call__\n", + " return self._score(partial(_cached_call, None), estimator, X, y_true, **_kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 353, in _score\n", + " y_pred = method_caller(estimator, \"predict\", X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 86, in _cached_call\n", + " result, _ = _get_response_values(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_response.py\", line 109, in _get_response_values\n", + " y_pred, pos_label = estimator.predict(X), None\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 507, in predict\n", + " Xt = transform.transform(Xt)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 816, in transform\n", + " Xs = self._fit_transform(\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 670, in _fit_transform\n", + " return Parallel(n_jobs=self.n_jobs)(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 65, in __call__\n", + " return super().__call__(iterable_with_config)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 1088, in __call__\n", + " while self.dispatch_one_batch(iterator):\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 901, in dispatch_one_batch\n", + " self._dispatch(tasks)\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 819, in _dispatch\n", + " job = self._backend.apply_async(batch, callback=cb)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 208, in apply_async\n", + " result = ImmediateResult(func)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 597, in __init__\n", + " self.results = batch()\n", + " ^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in __call__\n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in \n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 127, in __call__\n", + " return self.function(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 933, in _transform_one\n", + " res = transformer.transform(X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 1016, in transform\n", + " X_int, X_mask = self._transform(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 199, in _transform\n", + " raise ValueError(msg)\n", + "ValueError: Found unknown categories ['ISLAND'] in column 0 during transform\n", + "\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV] END feature_selection__k=5, preparation__num__imputer__strategy=median; total time= 2.6s\n", + "[CV] END feature_selection__k=5, preparation__num__imputer__strategy=median; total time= 3.5s\n", + "[CV] END feature_selection__k=5, preparation__num__imputer__strategy=median; total time= 3.5s\n", + "[CV] END feature_selection__k=5, preparation__num__imputer__strategy=median; total time= 3.5s\n", + "[CV] END feature_selection__k=5, preparation__num__imputer__strategy=median; total time= 3.5s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:824: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py\", line 813, in _score\n", + " scores = scorer(estimator, X_test, y_test)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 266, in __call__\n", + " return self._score(partial(_cached_call, None), estimator, X, y_true, **_kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 353, in _score\n", + " y_pred = method_caller(estimator, \"predict\", X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 86, in _cached_call\n", + " result, _ = _get_response_values(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_response.py\", line 109, in _get_response_values\n", + " y_pred, pos_label = estimator.predict(X), None\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 507, in predict\n", + " Xt = transform.transform(Xt)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 816, in transform\n", + " Xs = self._fit_transform(\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 670, in _fit_transform\n", + " return Parallel(n_jobs=self.n_jobs)(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 65, in __call__\n", + " return super().__call__(iterable_with_config)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 1088, in __call__\n", + " while self.dispatch_one_batch(iterator):\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 901, in dispatch_one_batch\n", + " self._dispatch(tasks)\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 819, in _dispatch\n", + " job = self._backend.apply_async(batch, callback=cb)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 208, in apply_async\n", + " result = ImmediateResult(func)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 597, in __init__\n", + " self.results = batch()\n", + " ^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in __call__\n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in \n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 127, in __call__\n", + " return self.function(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 933, in _transform_one\n", + " res = transformer.transform(X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 1016, in transform\n", + " X_int, X_mask = self._transform(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 199, in _transform\n", + " raise ValueError(msg)\n", + "ValueError: Found unknown categories ['ISLAND'] in column 0 during transform\n", + "\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV] END feature_selection__k=5, preparation__num__imputer__strategy=most_frequent; total time= 2.5s\n", + "[CV] END feature_selection__k=5, preparation__num__imputer__strategy=most_frequent; total time= 3.5s\n", + "[CV] END feature_selection__k=5, preparation__num__imputer__strategy=most_frequent; total time= 3.5s\n", + "[CV] END feature_selection__k=5, preparation__num__imputer__strategy=most_frequent; total time= 3.5s\n", + "[CV] END feature_selection__k=5, preparation__num__imputer__strategy=most_frequent; total time= 3.5s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:824: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py\", line 813, in _score\n", + " scores = scorer(estimator, X_test, y_test)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 266, in __call__\n", + " return self._score(partial(_cached_call, None), estimator, X, y_true, **_kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 353, in _score\n", + " y_pred = method_caller(estimator, \"predict\", X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 86, in _cached_call\n", + " result, _ = _get_response_values(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_response.py\", line 109, in _get_response_values\n", + " y_pred, pos_label = estimator.predict(X), None\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 507, in predict\n", + " Xt = transform.transform(Xt)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 816, in transform\n", + " Xs = self._fit_transform(\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 670, in _fit_transform\n", + " return Parallel(n_jobs=self.n_jobs)(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 65, in __call__\n", + " return super().__call__(iterable_with_config)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 1088, in __call__\n", + " while self.dispatch_one_batch(iterator):\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 901, in dispatch_one_batch\n", + " self._dispatch(tasks)\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 819, in _dispatch\n", + " job = self._backend.apply_async(batch, callback=cb)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 208, in apply_async\n", + " result = ImmediateResult(func)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 597, in __init__\n", + " self.results = batch()\n", + " ^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in __call__\n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in \n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 127, in __call__\n", + " return self.function(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 933, in _transform_one\n", + " res = transformer.transform(X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 1016, in transform\n", + " X_int, X_mask = self._transform(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 199, in _transform\n", + " raise ValueError(msg)\n", + "ValueError: Found unknown categories ['ISLAND'] in column 0 during transform\n", + "\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV] END feature_selection__k=6, preparation__num__imputer__strategy=mean; total time= 2.7s\n", + "[CV] END feature_selection__k=6, preparation__num__imputer__strategy=mean; total time= 3.6s\n", + "[CV] END feature_selection__k=6, preparation__num__imputer__strategy=mean; total time= 3.7s\n", + "[CV] END feature_selection__k=6, preparation__num__imputer__strategy=mean; total time= 3.6s\n", + "[CV] END feature_selection__k=6, preparation__num__imputer__strategy=mean; total time= 3.6s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:824: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py\", line 813, in _score\n", + " scores = scorer(estimator, X_test, y_test)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 266, in __call__\n", + " return self._score(partial(_cached_call, None), estimator, X, y_true, **_kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 353, in _score\n", + " y_pred = method_caller(estimator, \"predict\", X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 86, in _cached_call\n", + " result, _ = _get_response_values(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_response.py\", line 109, in _get_response_values\n", + " y_pred, pos_label = estimator.predict(X), None\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 507, in predict\n", + " Xt = transform.transform(Xt)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 816, in transform\n", + " Xs = self._fit_transform(\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 670, in _fit_transform\n", + " return Parallel(n_jobs=self.n_jobs)(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 65, in __call__\n", + " return super().__call__(iterable_with_config)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 1088, in __call__\n", + " while self.dispatch_one_batch(iterator):\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 901, in dispatch_one_batch\n", + " self._dispatch(tasks)\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 819, in _dispatch\n", + " job = self._backend.apply_async(batch, callback=cb)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 208, in apply_async\n", + " result = ImmediateResult(func)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 597, in __init__\n", + " self.results = batch()\n", + " ^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in __call__\n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in \n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 127, in __call__\n", + " return self.function(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 933, in _transform_one\n", + " res = transformer.transform(X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 1016, in transform\n", + " X_int, X_mask = self._transform(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 199, in _transform\n", + " raise ValueError(msg)\n", + "ValueError: Found unknown categories ['ISLAND'] in column 0 during transform\n", + "\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV] END feature_selection__k=6, preparation__num__imputer__strategy=median; total time= 2.7s\n", + "[CV] END feature_selection__k=6, preparation__num__imputer__strategy=median; total time= 3.6s\n", + "[CV] END feature_selection__k=6, preparation__num__imputer__strategy=median; total time= 3.7s\n", + "[CV] END feature_selection__k=6, preparation__num__imputer__strategy=median; total time= 3.8s\n", + "[CV] END feature_selection__k=6, preparation__num__imputer__strategy=median; total time= 3.7s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:824: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py\", line 813, in _score\n", + " scores = scorer(estimator, X_test, y_test)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 266, in __call__\n", + " return self._score(partial(_cached_call, None), estimator, X, y_true, **_kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 353, in _score\n", + " y_pred = method_caller(estimator, \"predict\", X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 86, in _cached_call\n", + " result, _ = _get_response_values(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_response.py\", line 109, in _get_response_values\n", + " y_pred, pos_label = estimator.predict(X), None\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 507, in predict\n", + " Xt = transform.transform(Xt)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 816, in transform\n", + " Xs = self._fit_transform(\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 670, in _fit_transform\n", + " return Parallel(n_jobs=self.n_jobs)(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 65, in __call__\n", + " return super().__call__(iterable_with_config)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 1088, in __call__\n", + " while self.dispatch_one_batch(iterator):\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 901, in dispatch_one_batch\n", + " self._dispatch(tasks)\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 819, in _dispatch\n", + " job = self._backend.apply_async(batch, callback=cb)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 208, in apply_async\n", + " result = ImmediateResult(func)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 597, in __init__\n", + " self.results = batch()\n", + " ^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in __call__\n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in \n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 127, in __call__\n", + " return self.function(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 933, in _transform_one\n", + " res = transformer.transform(X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 1016, in transform\n", + " X_int, X_mask = self._transform(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 199, in _transform\n", + " raise ValueError(msg)\n", + "ValueError: Found unknown categories ['ISLAND'] in column 0 during transform\n", + "\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV] END feature_selection__k=6, preparation__num__imputer__strategy=most_frequent; total time= 2.7s\n", + "[CV] END feature_selection__k=6, preparation__num__imputer__strategy=most_frequent; total time= 3.7s\n", + "[CV] END feature_selection__k=6, preparation__num__imputer__strategy=most_frequent; total time= 3.7s\n", + "[CV] END feature_selection__k=6, preparation__num__imputer__strategy=most_frequent; total time= 3.6s\n", + "[CV] END feature_selection__k=6, preparation__num__imputer__strategy=most_frequent; total time= 3.6s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:824: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py\", line 813, in _score\n", + " scores = scorer(estimator, X_test, y_test)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 266, in __call__\n", + " return self._score(partial(_cached_call, None), estimator, X, y_true, **_kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 353, in _score\n", + " y_pred = method_caller(estimator, \"predict\", X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 86, in _cached_call\n", + " result, _ = _get_response_values(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_response.py\", line 109, in _get_response_values\n", + " y_pred, pos_label = estimator.predict(X), None\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 507, in predict\n", + " Xt = transform.transform(Xt)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 816, in transform\n", + " Xs = self._fit_transform(\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 670, in _fit_transform\n", + " return Parallel(n_jobs=self.n_jobs)(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 65, in __call__\n", + " return super().__call__(iterable_with_config)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 1088, in __call__\n", + " while self.dispatch_one_batch(iterator):\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 901, in dispatch_one_batch\n", + " self._dispatch(tasks)\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 819, in _dispatch\n", + " job = self._backend.apply_async(batch, callback=cb)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 208, in apply_async\n", + " result = ImmediateResult(func)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 597, in __init__\n", + " self.results = batch()\n", + " ^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in __call__\n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in \n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 127, in __call__\n", + " return self.function(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 933, in _transform_one\n", + " res = transformer.transform(X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 1016, in transform\n", + " X_int, X_mask = self._transform(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 199, in _transform\n", + " raise ValueError(msg)\n", + "ValueError: Found unknown categories ['ISLAND'] in column 0 during transform\n", + "\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV] END feature_selection__k=7, preparation__num__imputer__strategy=mean; total time= 2.9s\n", + "[CV] END feature_selection__k=7, preparation__num__imputer__strategy=mean; total time= 3.9s\n", + "[CV] END feature_selection__k=7, preparation__num__imputer__strategy=mean; total time= 3.8s\n", + "[CV] END feature_selection__k=7, preparation__num__imputer__strategy=mean; total time= 3.7s\n", + "[CV] END feature_selection__k=7, preparation__num__imputer__strategy=mean; total time= 4.1s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:824: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py\", line 813, in _score\n", + " scores = scorer(estimator, X_test, y_test)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 266, in __call__\n", + " return self._score(partial(_cached_call, None), estimator, X, y_true, **_kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 353, in _score\n", + " y_pred = method_caller(estimator, \"predict\", X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 86, in _cached_call\n", + " result, _ = _get_response_values(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_response.py\", line 109, in _get_response_values\n", + " y_pred, pos_label = estimator.predict(X), None\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 507, in predict\n", + " Xt = transform.transform(Xt)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 816, in transform\n", + " Xs = self._fit_transform(\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 670, in _fit_transform\n", + " return Parallel(n_jobs=self.n_jobs)(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 65, in __call__\n", + " return super().__call__(iterable_with_config)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 1088, in __call__\n", + " while self.dispatch_one_batch(iterator):\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 901, in dispatch_one_batch\n", + " self._dispatch(tasks)\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 819, in _dispatch\n", + " job = self._backend.apply_async(batch, callback=cb)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 208, in apply_async\n", + " result = ImmediateResult(func)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 597, in __init__\n", + " self.results = batch()\n", + " ^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in __call__\n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in \n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 127, in __call__\n", + " return self.function(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 933, in _transform_one\n", + " res = transformer.transform(X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 1016, in transform\n", + " X_int, X_mask = self._transform(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 199, in _transform\n", + " raise ValueError(msg)\n", + "ValueError: Found unknown categories ['ISLAND'] in column 0 during transform\n", + "\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV] END feature_selection__k=7, preparation__num__imputer__strategy=median; total time= 3.0s\n", + "[CV] END feature_selection__k=7, preparation__num__imputer__strategy=median; total time= 3.9s\n", + "[CV] END feature_selection__k=7, preparation__num__imputer__strategy=median; total time= 3.9s\n", + "[CV] END feature_selection__k=7, preparation__num__imputer__strategy=median; total time= 3.9s\n", + "[CV] END feature_selection__k=7, preparation__num__imputer__strategy=median; total time= 3.8s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:824: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py\", line 813, in _score\n", + " scores = scorer(estimator, X_test, y_test)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 266, in __call__\n", + " return self._score(partial(_cached_call, None), estimator, X, y_true, **_kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 353, in _score\n", + " y_pred = method_caller(estimator, \"predict\", X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 86, in _cached_call\n", + " result, _ = _get_response_values(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_response.py\", line 109, in _get_response_values\n", + " y_pred, pos_label = estimator.predict(X), None\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 507, in predict\n", + " Xt = transform.transform(Xt)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 816, in transform\n", + " Xs = self._fit_transform(\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 670, in _fit_transform\n", + " return Parallel(n_jobs=self.n_jobs)(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 65, in __call__\n", + " return super().__call__(iterable_with_config)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 1088, in __call__\n", + " while self.dispatch_one_batch(iterator):\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 901, in dispatch_one_batch\n", + " self._dispatch(tasks)\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 819, in _dispatch\n", + " job = self._backend.apply_async(batch, callback=cb)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 208, in apply_async\n", + " result = ImmediateResult(func)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 597, in __init__\n", + " self.results = batch()\n", + " ^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in __call__\n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in \n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 127, in __call__\n", + " return self.function(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 933, in _transform_one\n", + " res = transformer.transform(X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 1016, in transform\n", + " X_int, X_mask = self._transform(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 199, in _transform\n", + " raise ValueError(msg)\n", + "ValueError: Found unknown categories ['ISLAND'] in column 0 during transform\n", + "\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV] END feature_selection__k=7, preparation__num__imputer__strategy=most_frequent; total time= 2.9s\n", + "[CV] END feature_selection__k=7, preparation__num__imputer__strategy=most_frequent; total time= 4.0s\n", + "[CV] END feature_selection__k=7, preparation__num__imputer__strategy=most_frequent; total time= 3.8s\n", + "[CV] END feature_selection__k=7, preparation__num__imputer__strategy=most_frequent; total time= 3.8s\n", + "[CV] END feature_selection__k=7, preparation__num__imputer__strategy=most_frequent; total time= 3.9s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:824: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py\", line 813, in _score\n", + " scores = scorer(estimator, X_test, y_test)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 266, in __call__\n", + " return self._score(partial(_cached_call, None), estimator, X, y_true, **_kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 353, in _score\n", + " y_pred = method_caller(estimator, \"predict\", X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 86, in _cached_call\n", + " result, _ = _get_response_values(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_response.py\", line 109, in _get_response_values\n", + " y_pred, pos_label = estimator.predict(X), None\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 507, in predict\n", + " Xt = transform.transform(Xt)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 816, in transform\n", + " Xs = self._fit_transform(\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 670, in _fit_transform\n", + " return Parallel(n_jobs=self.n_jobs)(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 65, in __call__\n", + " return super().__call__(iterable_with_config)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 1088, in __call__\n", + " while self.dispatch_one_batch(iterator):\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 901, in dispatch_one_batch\n", + " self._dispatch(tasks)\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 819, in _dispatch\n", + " job = self._backend.apply_async(batch, callback=cb)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 208, in apply_async\n", + " result = ImmediateResult(func)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 597, in __init__\n", + " self.results = batch()\n", + " ^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in __call__\n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in \n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 127, in __call__\n", + " return self.function(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 933, in _transform_one\n", + " res = transformer.transform(X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 1016, in transform\n", + " X_int, X_mask = self._transform(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 199, in _transform\n", + " raise ValueError(msg)\n", + "ValueError: Found unknown categories ['ISLAND'] in column 0 during transform\n", + "\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV] END feature_selection__k=8, preparation__num__imputer__strategy=mean; total time= 3.6s\n", + "[CV] END feature_selection__k=8, preparation__num__imputer__strategy=mean; total time= 4.0s\n", + "[CV] END feature_selection__k=8, preparation__num__imputer__strategy=mean; total time= 4.1s\n", + "[CV] END feature_selection__k=8, preparation__num__imputer__strategy=mean; total time= 4.4s\n", + "[CV] END feature_selection__k=8, preparation__num__imputer__strategy=mean; total time= 4.3s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:824: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py\", line 813, in _score\n", + " scores = scorer(estimator, X_test, y_test)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 266, in __call__\n", + " return self._score(partial(_cached_call, None), estimator, X, y_true, **_kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 353, in _score\n", + " y_pred = method_caller(estimator, \"predict\", X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 86, in _cached_call\n", + " result, _ = _get_response_values(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_response.py\", line 109, in _get_response_values\n", + " y_pred, pos_label = estimator.predict(X), None\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 507, in predict\n", + " Xt = transform.transform(Xt)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 816, in transform\n", + " Xs = self._fit_transform(\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 670, in _fit_transform\n", + " return Parallel(n_jobs=self.n_jobs)(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 65, in __call__\n", + " return super().__call__(iterable_with_config)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 1088, in __call__\n", + " while self.dispatch_one_batch(iterator):\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 901, in dispatch_one_batch\n", + " self._dispatch(tasks)\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 819, in _dispatch\n", + " job = self._backend.apply_async(batch, callback=cb)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 208, in apply_async\n", + " result = ImmediateResult(func)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 597, in __init__\n", + " self.results = batch()\n", + " ^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in __call__\n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in \n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 127, in __call__\n", + " return self.function(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 933, in _transform_one\n", + " res = transformer.transform(X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 1016, in transform\n", + " X_int, X_mask = self._transform(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 199, in _transform\n", + " raise ValueError(msg)\n", + "ValueError: Found unknown categories ['ISLAND'] in column 0 during transform\n", + "\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV] END feature_selection__k=8, preparation__num__imputer__strategy=median; total time= 3.5s\n", + "[CV] END feature_selection__k=8, preparation__num__imputer__strategy=median; total time= 4.2s\n", + "[CV] END feature_selection__k=8, preparation__num__imputer__strategy=median; total time= 4.4s\n", + "[CV] END feature_selection__k=8, preparation__num__imputer__strategy=median; total time= 4.5s\n", + "[CV] END feature_selection__k=8, preparation__num__imputer__strategy=median; total time= 4.6s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:824: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py\", line 813, in _score\n", + " scores = scorer(estimator, X_test, y_test)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 266, in __call__\n", + " return self._score(partial(_cached_call, None), estimator, X, y_true, **_kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 353, in _score\n", + " y_pred = method_caller(estimator, \"predict\", X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 86, in _cached_call\n", + " result, _ = _get_response_values(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_response.py\", line 109, in _get_response_values\n", + " y_pred, pos_label = estimator.predict(X), None\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 507, in predict\n", + " Xt = transform.transform(Xt)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 816, in transform\n", + " Xs = self._fit_transform(\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 670, in _fit_transform\n", + " return Parallel(n_jobs=self.n_jobs)(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 65, in __call__\n", + " return super().__call__(iterable_with_config)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 1088, in __call__\n", + " while self.dispatch_one_batch(iterator):\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 901, in dispatch_one_batch\n", + " self._dispatch(tasks)\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 819, in _dispatch\n", + " job = self._backend.apply_async(batch, callback=cb)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 208, in apply_async\n", + " result = ImmediateResult(func)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 597, in __init__\n", + " self.results = batch()\n", + " ^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in __call__\n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in \n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 127, in __call__\n", + " return self.function(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 933, in _transform_one\n", + " res = transformer.transform(X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 1016, in transform\n", + " X_int, X_mask = self._transform(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 199, in _transform\n", + " raise ValueError(msg)\n", + "ValueError: Found unknown categories ['ISLAND'] in column 0 during transform\n", + "\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV] END feature_selection__k=8, preparation__num__imputer__strategy=most_frequent; total time= 3.3s\n", + "[CV] END feature_selection__k=8, preparation__num__imputer__strategy=most_frequent; total time= 4.3s\n", + "[CV] END feature_selection__k=8, preparation__num__imputer__strategy=most_frequent; total time= 4.3s\n", + "[CV] END feature_selection__k=8, preparation__num__imputer__strategy=most_frequent; total time= 4.7s\n", + "[CV] END feature_selection__k=8, preparation__num__imputer__strategy=most_frequent; total time= 4.7s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:824: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py\", line 813, in _score\n", + " scores = scorer(estimator, X_test, y_test)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 266, in __call__\n", + " return self._score(partial(_cached_call, None), estimator, X, y_true, **_kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 353, in _score\n", + " y_pred = method_caller(estimator, \"predict\", X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 86, in _cached_call\n", + " result, _ = _get_response_values(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_response.py\", line 109, in _get_response_values\n", + " y_pred, pos_label = estimator.predict(X), None\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 507, in predict\n", + " Xt = transform.transform(Xt)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 816, in transform\n", + " Xs = self._fit_transform(\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 670, in _fit_transform\n", + " return Parallel(n_jobs=self.n_jobs)(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 65, in __call__\n", + " return super().__call__(iterable_with_config)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 1088, in __call__\n", + " while self.dispatch_one_batch(iterator):\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 901, in dispatch_one_batch\n", + " self._dispatch(tasks)\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 819, in _dispatch\n", + " job = self._backend.apply_async(batch, callback=cb)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 208, in apply_async\n", + " result = ImmediateResult(func)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 597, in __init__\n", + " self.results = batch()\n", + " ^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in __call__\n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in \n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 127, in __call__\n", + " return self.function(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 933, in _transform_one\n", + " res = transformer.transform(X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 1016, in transform\n", + " X_int, X_mask = self._transform(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 199, in _transform\n", + " raise ValueError(msg)\n", + "ValueError: Found unknown categories ['ISLAND'] in column 0 during transform\n", + "\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV] END feature_selection__k=9, preparation__num__imputer__strategy=mean; total time= 4.6s\n", + "[CV] END feature_selection__k=9, preparation__num__imputer__strategy=mean; total time= 5.3s\n", + "[CV] END feature_selection__k=9, preparation__num__imputer__strategy=mean; total time= 5.4s\n", + "[CV] END feature_selection__k=9, preparation__num__imputer__strategy=mean; total time= 5.2s\n", + "[CV] END feature_selection__k=9, preparation__num__imputer__strategy=mean; total time= 5.1s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:824: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py\", line 813, in _score\n", + " scores = scorer(estimator, X_test, y_test)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 266, in __call__\n", + " return self._score(partial(_cached_call, None), estimator, X, y_true, **_kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 353, in _score\n", + " y_pred = method_caller(estimator, \"predict\", X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 86, in _cached_call\n", + " result, _ = _get_response_values(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_response.py\", line 109, in _get_response_values\n", + " y_pred, pos_label = estimator.predict(X), None\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 507, in predict\n", + " Xt = transform.transform(Xt)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 816, in transform\n", + " Xs = self._fit_transform(\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 670, in _fit_transform\n", + " return Parallel(n_jobs=self.n_jobs)(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 65, in __call__\n", + " return super().__call__(iterable_with_config)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 1088, in __call__\n", + " while self.dispatch_one_batch(iterator):\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 901, in dispatch_one_batch\n", + " self._dispatch(tasks)\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 819, in _dispatch\n", + " job = self._backend.apply_async(batch, callback=cb)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 208, in apply_async\n", + " result = ImmediateResult(func)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 597, in __init__\n", + " self.results = batch()\n", + " ^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in __call__\n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in \n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 127, in __call__\n", + " return self.function(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 933, in _transform_one\n", + " res = transformer.transform(X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 1016, in transform\n", + " X_int, X_mask = self._transform(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 199, in _transform\n", + " raise ValueError(msg)\n", + "ValueError: Found unknown categories ['ISLAND'] in column 0 during transform\n", + "\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV] END feature_selection__k=9, preparation__num__imputer__strategy=median; total time= 4.1s\n", + "[CV] END feature_selection__k=9, preparation__num__imputer__strategy=median; total time= 5.6s\n", + "[CV] END feature_selection__k=9, preparation__num__imputer__strategy=median; total time= 5.2s\n", + "[CV] END feature_selection__k=9, preparation__num__imputer__strategy=median; total time= 5.2s\n", + "[CV] END feature_selection__k=9, preparation__num__imputer__strategy=median; total time= 5.4s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:824: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py\", line 813, in _score\n", + " scores = scorer(estimator, X_test, y_test)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 266, in __call__\n", + " return self._score(partial(_cached_call, None), estimator, X, y_true, **_kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 353, in _score\n", + " y_pred = method_caller(estimator, \"predict\", X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 86, in _cached_call\n", + " result, _ = _get_response_values(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_response.py\", line 109, in _get_response_values\n", + " y_pred, pos_label = estimator.predict(X), None\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 507, in predict\n", + " Xt = transform.transform(Xt)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 816, in transform\n", + " Xs = self._fit_transform(\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 670, in _fit_transform\n", + " return Parallel(n_jobs=self.n_jobs)(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 65, in __call__\n", + " return super().__call__(iterable_with_config)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 1088, in __call__\n", + " while self.dispatch_one_batch(iterator):\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 901, in dispatch_one_batch\n", + " self._dispatch(tasks)\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 819, in _dispatch\n", + " job = self._backend.apply_async(batch, callback=cb)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 208, in apply_async\n", + " result = ImmediateResult(func)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 597, in __init__\n", + " self.results = batch()\n", + " ^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in __call__\n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in \n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 127, in __call__\n", + " return self.function(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 933, in _transform_one\n", + " res = transformer.transform(X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 1016, in transform\n", + " X_int, X_mask = self._transform(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 199, in _transform\n", + " raise ValueError(msg)\n", + "ValueError: Found unknown categories ['ISLAND'] in column 0 during transform\n", + "\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV] END feature_selection__k=9, preparation__num__imputer__strategy=most_frequent; total time= 3.7s\n", + "[CV] END feature_selection__k=9, preparation__num__imputer__strategy=most_frequent; total time= 5.5s\n", + "[CV] END feature_selection__k=9, preparation__num__imputer__strategy=most_frequent; total time= 5.3s\n", + "[CV] END feature_selection__k=9, preparation__num__imputer__strategy=most_frequent; total time= 4.6s\n", + "[CV] END feature_selection__k=9, preparation__num__imputer__strategy=most_frequent; total time= 5.3s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:824: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py\", line 813, in _score\n", + " scores = scorer(estimator, X_test, y_test)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 266, in __call__\n", + " return self._score(partial(_cached_call, None), estimator, X, y_true, **_kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 353, in _score\n", + " y_pred = method_caller(estimator, \"predict\", X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 86, in _cached_call\n", + " result, _ = _get_response_values(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_response.py\", line 109, in _get_response_values\n", + " y_pred, pos_label = estimator.predict(X), None\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 507, in predict\n", + " Xt = transform.transform(Xt)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 816, in transform\n", + " Xs = self._fit_transform(\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 670, in _fit_transform\n", + " return Parallel(n_jobs=self.n_jobs)(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 65, in __call__\n", + " return super().__call__(iterable_with_config)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 1088, in __call__\n", + " while self.dispatch_one_batch(iterator):\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 901, in dispatch_one_batch\n", + " self._dispatch(tasks)\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 819, in _dispatch\n", + " job = self._backend.apply_async(batch, callback=cb)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 208, in apply_async\n", + " result = ImmediateResult(func)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 597, in __init__\n", + " self.results = batch()\n", + " ^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in __call__\n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in \n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 127, in __call__\n", + " return self.function(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 933, in _transform_one\n", + " res = transformer.transform(X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 1016, in transform\n", + " X_int, X_mask = self._transform(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 199, in _transform\n", + " raise ValueError(msg)\n", + "ValueError: Found unknown categories ['ISLAND'] in column 0 during transform\n", + "\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV] END feature_selection__k=10, preparation__num__imputer__strategy=mean; total time= 5.4s\n", + "[CV] END feature_selection__k=10, preparation__num__imputer__strategy=mean; total time= 5.9s\n", + "[CV] END feature_selection__k=10, preparation__num__imputer__strategy=mean; total time= 5.1s\n", + "[CV] END feature_selection__k=10, preparation__num__imputer__strategy=mean; total time= 6.7s\n", + "[CV] END feature_selection__k=10, preparation__num__imputer__strategy=mean; total time= 5.6s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:824: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py\", line 813, in _score\n", + " scores = scorer(estimator, X_test, y_test)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 266, in __call__\n", + " return self._score(partial(_cached_call, None), estimator, X, y_true, **_kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 353, in _score\n", + " y_pred = method_caller(estimator, \"predict\", X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 86, in _cached_call\n", + " result, _ = _get_response_values(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_response.py\", line 109, in _get_response_values\n", + " y_pred, pos_label = estimator.predict(X), None\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 507, in predict\n", + " Xt = transform.transform(Xt)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 816, in transform\n", + " Xs = self._fit_transform(\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 670, in _fit_transform\n", + " return Parallel(n_jobs=self.n_jobs)(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 65, in __call__\n", + " return super().__call__(iterable_with_config)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 1088, in __call__\n", + " while self.dispatch_one_batch(iterator):\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 901, in dispatch_one_batch\n", + " self._dispatch(tasks)\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 819, in _dispatch\n", + " job = self._backend.apply_async(batch, callback=cb)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 208, in apply_async\n", + " result = ImmediateResult(func)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 597, in __init__\n", + " self.results = batch()\n", + " ^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in __call__\n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in \n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 127, in __call__\n", + " return self.function(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 933, in _transform_one\n", + " res = transformer.transform(X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 1016, in transform\n", + " X_int, X_mask = self._transform(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 199, in _transform\n", + " raise ValueError(msg)\n", + "ValueError: Found unknown categories ['ISLAND'] in column 0 during transform\n", + "\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV] END feature_selection__k=10, preparation__num__imputer__strategy=median; total time= 4.7s\n", + "[CV] END feature_selection__k=10, preparation__num__imputer__strategy=median; total time= 6.2s\n", + "[CV] END feature_selection__k=10, preparation__num__imputer__strategy=median; total time= 6.2s\n", + "[CV] END feature_selection__k=10, preparation__num__imputer__strategy=median; total time= 6.7s\n", + "[CV] END feature_selection__k=10, preparation__num__imputer__strategy=median; total time= 5.9s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:824: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py\", line 813, in _score\n", + " scores = scorer(estimator, X_test, y_test)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 266, in __call__\n", + " return self._score(partial(_cached_call, None), estimator, X, y_true, **_kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 353, in _score\n", + " y_pred = method_caller(estimator, \"predict\", X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 86, in _cached_call\n", + " result, _ = _get_response_values(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_response.py\", line 109, in _get_response_values\n", + " y_pred, pos_label = estimator.predict(X), None\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 507, in predict\n", + " Xt = transform.transform(Xt)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 816, in transform\n", + " Xs = self._fit_transform(\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 670, in _fit_transform\n", + " return Parallel(n_jobs=self.n_jobs)(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 65, in __call__\n", + " return super().__call__(iterable_with_config)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 1088, in __call__\n", + " while self.dispatch_one_batch(iterator):\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 901, in dispatch_one_batch\n", + " self._dispatch(tasks)\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 819, in _dispatch\n", + " job = self._backend.apply_async(batch, callback=cb)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 208, in apply_async\n", + " result = ImmediateResult(func)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 597, in __init__\n", + " self.results = batch()\n", + " ^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in __call__\n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in \n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 127, in __call__\n", + " return self.function(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 933, in _transform_one\n", + " res = transformer.transform(X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 1016, in transform\n", + " X_int, X_mask = self._transform(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 199, in _transform\n", + " raise ValueError(msg)\n", + "ValueError: Found unknown categories ['ISLAND'] in column 0 during transform\n", + "\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV] END feature_selection__k=10, preparation__num__imputer__strategy=most_frequent; total time= 5.3s\n", + "[CV] END feature_selection__k=10, preparation__num__imputer__strategy=most_frequent; total time= 6.0s\n", + "[CV] END feature_selection__k=10, preparation__num__imputer__strategy=most_frequent; total time= 6.2s\n", + "[CV] END feature_selection__k=10, preparation__num__imputer__strategy=most_frequent; total time= 6.6s\n", + "[CV] END feature_selection__k=10, preparation__num__imputer__strategy=most_frequent; total time= 5.5s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:824: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py\", line 813, in _score\n", + " scores = scorer(estimator, X_test, y_test)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 266, in __call__\n", + " return self._score(partial(_cached_call, None), estimator, X, y_true, **_kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 353, in _score\n", + " y_pred = method_caller(estimator, \"predict\", X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 86, in _cached_call\n", + " result, _ = _get_response_values(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_response.py\", line 109, in _get_response_values\n", + " y_pred, pos_label = estimator.predict(X), None\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 507, in predict\n", + " Xt = transform.transform(Xt)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 816, in transform\n", + " Xs = self._fit_transform(\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 670, in _fit_transform\n", + " return Parallel(n_jobs=self.n_jobs)(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 65, in __call__\n", + " return super().__call__(iterable_with_config)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 1088, in __call__\n", + " while self.dispatch_one_batch(iterator):\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 901, in dispatch_one_batch\n", + " self._dispatch(tasks)\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 819, in _dispatch\n", + " job = self._backend.apply_async(batch, callback=cb)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 208, in apply_async\n", + " result = ImmediateResult(func)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 597, in __init__\n", + " self.results = batch()\n", + " ^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in __call__\n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in \n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 127, in __call__\n", + " return self.function(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 933, in _transform_one\n", + " res = transformer.transform(X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 1016, in transform\n", + " X_int, X_mask = self._transform(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 199, in _transform\n", + " raise ValueError(msg)\n", + "ValueError: Found unknown categories ['ISLAND'] in column 0 during transform\n", + "\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV] END feature_selection__k=11, preparation__num__imputer__strategy=mean; total time= 5.4s\n", + "[CV] END feature_selection__k=11, preparation__num__imputer__strategy=mean; total time= 7.2s\n", + "[CV] END feature_selection__k=11, preparation__num__imputer__strategy=mean; total time= 6.6s\n", + "[CV] END feature_selection__k=11, preparation__num__imputer__strategy=mean; total time= 7.0s\n", + "[CV] END feature_selection__k=11, preparation__num__imputer__strategy=mean; total time= 6.8s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:824: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py\", line 813, in _score\n", + " scores = scorer(estimator, X_test, y_test)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 266, in __call__\n", + " return self._score(partial(_cached_call, None), estimator, X, y_true, **_kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 353, in _score\n", + " y_pred = method_caller(estimator, \"predict\", X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 86, in _cached_call\n", + " result, _ = _get_response_values(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_response.py\", line 109, in _get_response_values\n", + " y_pred, pos_label = estimator.predict(X), None\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 507, in predict\n", + " Xt = transform.transform(Xt)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 816, in transform\n", + " Xs = self._fit_transform(\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 670, in _fit_transform\n", + " return Parallel(n_jobs=self.n_jobs)(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 65, in __call__\n", + " return super().__call__(iterable_with_config)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 1088, in __call__\n", + " while self.dispatch_one_batch(iterator):\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 901, in dispatch_one_batch\n", + " self._dispatch(tasks)\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 819, in _dispatch\n", + " job = self._backend.apply_async(batch, callback=cb)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 208, in apply_async\n", + " result = ImmediateResult(func)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 597, in __init__\n", + " self.results = batch()\n", + " ^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in __call__\n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in \n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 127, in __call__\n", + " return self.function(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 933, in _transform_one\n", + " res = transformer.transform(X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 1016, in transform\n", + " X_int, X_mask = self._transform(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 199, in _transform\n", + " raise ValueError(msg)\n", + "ValueError: Found unknown categories ['ISLAND'] in column 0 during transform\n", + "\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV] END feature_selection__k=11, preparation__num__imputer__strategy=median; total time= 6.2s\n", + "[CV] END feature_selection__k=11, preparation__num__imputer__strategy=median; total time= 6.6s\n", + "[CV] END feature_selection__k=11, preparation__num__imputer__strategy=median; total time= 6.3s\n", + "[CV] END feature_selection__k=11, preparation__num__imputer__strategy=median; total time= 7.3s\n", + "[CV] END feature_selection__k=11, preparation__num__imputer__strategy=median; total time= 6.5s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:824: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py\", line 813, in _score\n", + " scores = scorer(estimator, X_test, y_test)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 266, in __call__\n", + " return self._score(partial(_cached_call, None), estimator, X, y_true, **_kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 353, in _score\n", + " y_pred = method_caller(estimator, \"predict\", X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 86, in _cached_call\n", + " result, _ = _get_response_values(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_response.py\", line 109, in _get_response_values\n", + " y_pred, pos_label = estimator.predict(X), None\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 507, in predict\n", + " Xt = transform.transform(Xt)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 816, in transform\n", + " Xs = self._fit_transform(\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 670, in _fit_transform\n", + " return Parallel(n_jobs=self.n_jobs)(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 65, in __call__\n", + " return super().__call__(iterable_with_config)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 1088, in __call__\n", + " while self.dispatch_one_batch(iterator):\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 901, in dispatch_one_batch\n", + " self._dispatch(tasks)\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 819, in _dispatch\n", + " job = self._backend.apply_async(batch, callback=cb)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 208, in apply_async\n", + " result = ImmediateResult(func)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 597, in __init__\n", + " self.results = batch()\n", + " ^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in __call__\n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in \n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 127, in __call__\n", + " return self.function(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 933, in _transform_one\n", + " res = transformer.transform(X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 1016, in transform\n", + " X_int, X_mask = self._transform(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 199, in _transform\n", + " raise ValueError(msg)\n", + "ValueError: Found unknown categories ['ISLAND'] in column 0 during transform\n", + "\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV] END feature_selection__k=11, preparation__num__imputer__strategy=most_frequent; total time= 6.0s\n", + "[CV] END feature_selection__k=11, preparation__num__imputer__strategy=most_frequent; total time= 6.6s\n", + "[CV] END feature_selection__k=11, preparation__num__imputer__strategy=most_frequent; total time= 6.8s\n", + "[CV] END feature_selection__k=11, preparation__num__imputer__strategy=most_frequent; total time= 6.7s\n", + "[CV] END feature_selection__k=11, preparation__num__imputer__strategy=most_frequent; total time= 6.8s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:824: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py\", line 813, in _score\n", + " scores = scorer(estimator, X_test, y_test)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 266, in __call__\n", + " return self._score(partial(_cached_call, None), estimator, X, y_true, **_kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 353, in _score\n", + " y_pred = method_caller(estimator, \"predict\", X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 86, in _cached_call\n", + " result, _ = _get_response_values(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_response.py\", line 109, in _get_response_values\n", + " y_pred, pos_label = estimator.predict(X), None\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 507, in predict\n", + " Xt = transform.transform(Xt)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 816, in transform\n", + " Xs = self._fit_transform(\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 670, in _fit_transform\n", + " return Parallel(n_jobs=self.n_jobs)(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 65, in __call__\n", + " return super().__call__(iterable_with_config)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 1088, in __call__\n", + " while self.dispatch_one_batch(iterator):\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 901, in dispatch_one_batch\n", + " self._dispatch(tasks)\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 819, in _dispatch\n", + " job = self._backend.apply_async(batch, callback=cb)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 208, in apply_async\n", + " result = ImmediateResult(func)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 597, in __init__\n", + " self.results = batch()\n", + " ^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in __call__\n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in \n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 127, in __call__\n", + " return self.function(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 933, in _transform_one\n", + " res = transformer.transform(X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 1016, in transform\n", + " X_int, X_mask = self._transform(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 199, in _transform\n", + " raise ValueError(msg)\n", + "ValueError: Found unknown categories ['ISLAND'] in column 0 during transform\n", + "\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV] END feature_selection__k=12, preparation__num__imputer__strategy=mean; total time= 5.0s\n", + "[CV] END feature_selection__k=12, preparation__num__imputer__strategy=mean; total time= 7.1s\n", + "[CV] END feature_selection__k=12, preparation__num__imputer__strategy=mean; total time= 5.7s\n", + "[CV] END feature_selection__k=12, preparation__num__imputer__strategy=mean; total time= 6.8s\n", + "[CV] END feature_selection__k=12, preparation__num__imputer__strategy=mean; total time= 6.5s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:824: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py\", line 813, in _score\n", + " scores = scorer(estimator, X_test, y_test)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 266, in __call__\n", + " return self._score(partial(_cached_call, None), estimator, X, y_true, **_kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 353, in _score\n", + " y_pred = method_caller(estimator, \"predict\", X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 86, in _cached_call\n", + " result, _ = _get_response_values(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_response.py\", line 109, in _get_response_values\n", + " y_pred, pos_label = estimator.predict(X), None\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 507, in predict\n", + " Xt = transform.transform(Xt)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 816, in transform\n", + " Xs = self._fit_transform(\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 670, in _fit_transform\n", + " return Parallel(n_jobs=self.n_jobs)(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 65, in __call__\n", + " return super().__call__(iterable_with_config)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 1088, in __call__\n", + " while self.dispatch_one_batch(iterator):\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 901, in dispatch_one_batch\n", + " self._dispatch(tasks)\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 819, in _dispatch\n", + " job = self._backend.apply_async(batch, callback=cb)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 208, in apply_async\n", + " result = ImmediateResult(func)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 597, in __init__\n", + " self.results = batch()\n", + " ^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in __call__\n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in \n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 127, in __call__\n", + " return self.function(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 933, in _transform_one\n", + " res = transformer.transform(X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 1016, in transform\n", + " X_int, X_mask = self._transform(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 199, in _transform\n", + " raise ValueError(msg)\n", + "ValueError: Found unknown categories ['ISLAND'] in column 0 during transform\n", + "\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV] END feature_selection__k=12, preparation__num__imputer__strategy=median; total time= 5.9s\n", + "[CV] END feature_selection__k=12, preparation__num__imputer__strategy=median; total time= 6.9s\n", + "[CV] END feature_selection__k=12, preparation__num__imputer__strategy=median; total time= 5.6s\n", + "[CV] END feature_selection__k=12, preparation__num__imputer__strategy=median; total time= 5.7s\n", + "[CV] END feature_selection__k=12, preparation__num__imputer__strategy=median; total time= 6.9s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:824: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py\", line 813, in _score\n", + " scores = scorer(estimator, X_test, y_test)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 266, in __call__\n", + " return self._score(partial(_cached_call, None), estimator, X, y_true, **_kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 353, in _score\n", + " y_pred = method_caller(estimator, \"predict\", X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 86, in _cached_call\n", + " result, _ = _get_response_values(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_response.py\", line 109, in _get_response_values\n", + " y_pred, pos_label = estimator.predict(X), None\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 507, in predict\n", + " Xt = transform.transform(Xt)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 816, in transform\n", + " Xs = self._fit_transform(\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 670, in _fit_transform\n", + " return Parallel(n_jobs=self.n_jobs)(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 65, in __call__\n", + " return super().__call__(iterable_with_config)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 1088, in __call__\n", + " while self.dispatch_one_batch(iterator):\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 901, in dispatch_one_batch\n", + " self._dispatch(tasks)\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 819, in _dispatch\n", + " job = self._backend.apply_async(batch, callback=cb)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 208, in apply_async\n", + " result = ImmediateResult(func)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 597, in __init__\n", + " self.results = batch()\n", + " ^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in __call__\n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in \n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 127, in __call__\n", + " return self.function(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 933, in _transform_one\n", + " res = transformer.transform(X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 1016, in transform\n", + " X_int, X_mask = self._transform(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 199, in _transform\n", + " raise ValueError(msg)\n", + "ValueError: Found unknown categories ['ISLAND'] in column 0 during transform\n", + "\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV] END feature_selection__k=12, preparation__num__imputer__strategy=most_frequent; total time= 6.2s\n", + "[CV] END feature_selection__k=12, preparation__num__imputer__strategy=most_frequent; total time= 7.0s\n", + "[CV] END feature_selection__k=12, preparation__num__imputer__strategy=most_frequent; total time= 7.6s\n", + "[CV] END feature_selection__k=12, preparation__num__imputer__strategy=most_frequent; total time= 6.3s\n", + "[CV] END feature_selection__k=12, preparation__num__imputer__strategy=most_frequent; total time= 7.2s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:824: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py\", line 813, in _score\n", + " scores = scorer(estimator, X_test, y_test)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 266, in __call__\n", + " return self._score(partial(_cached_call, None), estimator, X, y_true, **_kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 353, in _score\n", + " y_pred = method_caller(estimator, \"predict\", X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 86, in _cached_call\n", + " result, _ = _get_response_values(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_response.py\", line 109, in _get_response_values\n", + " y_pred, pos_label = estimator.predict(X), None\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 507, in predict\n", + " Xt = transform.transform(Xt)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 816, in transform\n", + " Xs = self._fit_transform(\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 670, in _fit_transform\n", + " return Parallel(n_jobs=self.n_jobs)(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 65, in __call__\n", + " return super().__call__(iterable_with_config)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 1088, in __call__\n", + " while self.dispatch_one_batch(iterator):\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 901, in dispatch_one_batch\n", + " self._dispatch(tasks)\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 819, in _dispatch\n", + " job = self._backend.apply_async(batch, callback=cb)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 208, in apply_async\n", + " result = ImmediateResult(func)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 597, in __init__\n", + " self.results = batch()\n", + " ^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in __call__\n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in \n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 127, in __call__\n", + " return self.function(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 933, in _transform_one\n", + " res = transformer.transform(X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 1016, in transform\n", + " X_int, X_mask = self._transform(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 199, in _transform\n", + " raise ValueError(msg)\n", + "ValueError: Found unknown categories ['ISLAND'] in column 0 during transform\n", + "\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV] END feature_selection__k=13, preparation__num__imputer__strategy=mean; total time= 6.4s\n", + "[CV] END feature_selection__k=13, preparation__num__imputer__strategy=mean; total time= 6.2s\n", + "[CV] END feature_selection__k=13, preparation__num__imputer__strategy=mean; total time= 7.1s\n", + "[CV] END feature_selection__k=13, preparation__num__imputer__strategy=mean; total time= 7.9s\n", + "[CV] END feature_selection__k=13, preparation__num__imputer__strategy=mean; total time= 6.3s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:824: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py\", line 813, in _score\n", + " scores = scorer(estimator, X_test, y_test)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 266, in __call__\n", + " return self._score(partial(_cached_call, None), estimator, X, y_true, **_kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 353, in _score\n", + " y_pred = method_caller(estimator, \"predict\", X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 86, in _cached_call\n", + " result, _ = _get_response_values(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_response.py\", line 109, in _get_response_values\n", + " y_pred, pos_label = estimator.predict(X), None\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 507, in predict\n", + " Xt = transform.transform(Xt)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 816, in transform\n", + " Xs = self._fit_transform(\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 670, in _fit_transform\n", + " return Parallel(n_jobs=self.n_jobs)(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 65, in __call__\n", + " return super().__call__(iterable_with_config)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 1088, in __call__\n", + " while self.dispatch_one_batch(iterator):\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 901, in dispatch_one_batch\n", + " self._dispatch(tasks)\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 819, in _dispatch\n", + " job = self._backend.apply_async(batch, callback=cb)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 208, in apply_async\n", + " result = ImmediateResult(func)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 597, in __init__\n", + " self.results = batch()\n", + " ^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in __call__\n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in \n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 127, in __call__\n", + " return self.function(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 933, in _transform_one\n", + " res = transformer.transform(X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 1016, in transform\n", + " X_int, X_mask = self._transform(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 199, in _transform\n", + " raise ValueError(msg)\n", + "ValueError: Found unknown categories ['ISLAND'] in column 0 during transform\n", + "\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV] END feature_selection__k=13, preparation__num__imputer__strategy=median; total time= 6.6s\n", + "[CV] END feature_selection__k=13, preparation__num__imputer__strategy=median; total time= 7.8s\n", + "[CV] END feature_selection__k=13, preparation__num__imputer__strategy=median; total time= 6.4s\n", + "[CV] END feature_selection__k=13, preparation__num__imputer__strategy=median; total time= 7.6s\n", + "[CV] END feature_selection__k=13, preparation__num__imputer__strategy=median; total time= 7.7s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:824: UserWarning: Scoring failed. The score on this train-test partition for these parameters will be set to nan. Details: \n", + "Traceback (most recent call last):\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py\", line 813, in _score\n", + " scores = scorer(estimator, X_test, y_test)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 266, in __call__\n", + " return self._score(partial(_cached_call, None), estimator, X, y_true, **_kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 353, in _score\n", + " y_pred = method_caller(estimator, \"predict\", X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/metrics/_scorer.py\", line 86, in _cached_call\n", + " result, _ = _get_response_values(\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_response.py\", line 109, in _get_response_values\n", + " y_pred, pos_label = estimator.predict(X), None\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 507, in predict\n", + " Xt = transform.transform(Xt)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 816, in transform\n", + " Xs = self._fit_transform(\n", + " ^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/compose/_column_transformer.py\", line 670, in _fit_transform\n", + " return Parallel(n_jobs=self.n_jobs)(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 65, in __call__\n", + " return super().__call__(iterable_with_config)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 1088, in __call__\n", + " while self.dispatch_one_batch(iterator):\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 901, in dispatch_one_batch\n", + " self._dispatch(tasks)\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 819, in _dispatch\n", + " job = self._backend.apply_async(batch, callback=cb)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 208, in apply_async\n", + " result = ImmediateResult(func)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/_parallel_backends.py\", line 597, in __init__\n", + " self.results = batch()\n", + " ^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in __call__\n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/parallel.py\", line 288, in \n", + " return [func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/parallel.py\", line 127, in __call__\n", + " return self.function(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 933, in _transform_one\n", + " res = transformer.transform(X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 1016, in transform\n", + " X_int, X_mask = self._transform(\n", + " ^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/preprocessing/_encoders.py\", line 199, in _transform\n", + " raise ValueError(msg)\n", + "ValueError: Found unknown categories ['ISLAND'] in column 0 during transform\n", + "\n", + " warnings.warn(\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[CV] END feature_selection__k=13, preparation__num__imputer__strategy=most_frequent; total time= 6.4s\n", + "[CV] END feature_selection__k=13, preparation__num__imputer__strategy=most_frequent; total time= 6.1s\n", + "[CV] END feature_selection__k=13, preparation__num__imputer__strategy=most_frequent; total time= 7.3s\n", + "[CV] END feature_selection__k=13, preparation__num__imputer__strategy=most_frequent; total time= 6.6s\n", + "[CV] END feature_selection__k=13, preparation__num__imputer__strategy=most_frequent; total time= 6.6s\n", + "[CV] END feature_selection__k=14, preparation__num__imputer__strategy=mean; total time= 0.0s\n", + "[CV] END feature_selection__k=14, preparation__num__imputer__strategy=mean; total time= 6.9s\n", + "[CV] END feature_selection__k=14, preparation__num__imputer__strategy=mean; total time= 7.6s\n", + "[CV] END feature_selection__k=14, preparation__num__imputer__strategy=mean; total time= 7.6s\n", + "[CV] END feature_selection__k=14, preparation__num__imputer__strategy=mean; total time= 7.7s\n", + "[CV] END feature_selection__k=14, preparation__num__imputer__strategy=median; total time= 0.0s\n", + "[CV] END feature_selection__k=14, preparation__num__imputer__strategy=median; total time= 7.1s\n", + "[CV] END feature_selection__k=14, preparation__num__imputer__strategy=median; total time= 6.6s\n", + "[CV] END feature_selection__k=14, preparation__num__imputer__strategy=median; total time= 7.9s\n", + "[CV] END feature_selection__k=14, preparation__num__imputer__strategy=median; total time= 6.7s\n", + "[CV] END feature_selection__k=14, preparation__num__imputer__strategy=most_frequent; total time= 0.0s\n", + "[CV] END feature_selection__k=14, preparation__num__imputer__strategy=most_frequent; total time= 7.9s\n", + "[CV] END feature_selection__k=14, preparation__num__imputer__strategy=most_frequent; total time= 7.9s\n", + "[CV] END feature_selection__k=14, preparation__num__imputer__strategy=most_frequent; total time= 7.3s\n", + "[CV] END feature_selection__k=14, preparation__num__imputer__strategy=most_frequent; total time= 7.5s\n", + "[CV] END feature_selection__k=15, preparation__num__imputer__strategy=mean; total time= 0.0s\n", + "[CV] END feature_selection__k=15, preparation__num__imputer__strategy=mean; total time= 7.1s\n", + "[CV] END feature_selection__k=15, preparation__num__imputer__strategy=mean; total time= 7.4s\n", + "[CV] END feature_selection__k=15, preparation__num__imputer__strategy=mean; total time= 7.6s\n", + "[CV] END feature_selection__k=15, preparation__num__imputer__strategy=mean; total time= 7.4s\n", + "[CV] END feature_selection__k=15, preparation__num__imputer__strategy=median; total time= 0.0s\n", + "[CV] END feature_selection__k=15, preparation__num__imputer__strategy=median; total time= 7.6s\n", + "[CV] END feature_selection__k=15, preparation__num__imputer__strategy=median; total time= 7.8s\n", + "[CV] END feature_selection__k=15, preparation__num__imputer__strategy=median; total time= 7.9s\n", + "[CV] END feature_selection__k=15, preparation__num__imputer__strategy=median; total time= 7.5s\n", + "[CV] END feature_selection__k=15, preparation__num__imputer__strategy=most_frequent; total time= 0.0s\n", + "[CV] END feature_selection__k=15, preparation__num__imputer__strategy=most_frequent; total time= 8.0s\n", + "[CV] END feature_selection__k=15, preparation__num__imputer__strategy=most_frequent; total time= 7.9s\n", + "[CV] END feature_selection__k=15, preparation__num__imputer__strategy=most_frequent; total time= 7.7s\n", + "[CV] END feature_selection__k=15, preparation__num__imputer__strategy=most_frequent; total time= 7.7s\n", + "[CV] END feature_selection__k=16, preparation__num__imputer__strategy=mean; total time= 0.0s\n", + "[CV] END feature_selection__k=16, preparation__num__imputer__strategy=mean; total time= 7.7s\n", + "[CV] END feature_selection__k=16, preparation__num__imputer__strategy=mean; total time= 7.1s\n", + "[CV] END feature_selection__k=16, preparation__num__imputer__strategy=mean; total time= 7.8s\n", + "[CV] END feature_selection__k=16, preparation__num__imputer__strategy=mean; total time= 7.6s\n", + "[CV] END feature_selection__k=16, preparation__num__imputer__strategy=median; total time= 0.0s\n", + "[CV] END feature_selection__k=16, preparation__num__imputer__strategy=median; total time= 7.8s\n", + "[CV] END feature_selection__k=16, preparation__num__imputer__strategy=median; total time= 6.6s\n", + "[CV] END feature_selection__k=16, preparation__num__imputer__strategy=median; total time= 7.7s\n", + "[CV] END feature_selection__k=16, preparation__num__imputer__strategy=median; total time= 6.7s\n", + "[CV] END feature_selection__k=16, preparation__num__imputer__strategy=most_frequent; total time= 0.0s\n", + "[CV] END feature_selection__k=16, preparation__num__imputer__strategy=most_frequent; total time= 7.4s\n", + "[CV] END feature_selection__k=16, preparation__num__imputer__strategy=most_frequent; total time= 7.7s\n", + "[CV] END feature_selection__k=16, preparation__num__imputer__strategy=most_frequent; total time= 7.9s\n", + "[CV] END feature_selection__k=16, preparation__num__imputer__strategy=most_frequent; total time= 7.1s\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py:425: FitFailedWarning: \n", + "9 fits failed out of a total of 240.\n", + "The score on these train-test partitions for these parameters will be set to nan.\n", + "If these failures are not expected, you can try to debug them by setting error_score='raise'.\n", + "\n", + "Below are more details about the failures:\n", + "--------------------------------------------------------------------------------\n", + "9 fits failed with the following error:\n", + "Traceback (most recent call last):\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_validation.py\", line 732, in _fit_and_score\n", + " estimator.fit(X_train, y_train, **fit_params)\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/base.py\", line 1151, in wrapper\n", + " return fit_method(estimator, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 416, in fit\n", + " Xt = self._fit(X, y, **fit_params_steps)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 370, in _fit\n", + " X, fitted_transformer = fit_transform_one_cached(\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/joblib/memory.py\", line 349, in __call__\n", + " return self.func(*args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/pipeline.py\", line 950, in _fit_transform_one\n", + " res = transformer.fit_transform(X, y, **fit_params)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/base.py\", line 918, in fit_transform\n", + " return self.fit(X, y, **fit_params).transform(X)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/opt/anaconda3/lib/python3.11/site-packages/sklearn/utils/_set_output.py\", line 140, in wrapped\n", + " data_to_wrap = f(self, X, *args, **kwargs)\n", + " ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + " File \"/var/folders/3f/31wd061j4kvc_mzd3wfvw8c00000gn/T/ipykernel_73506/1937056210.py\", line 14, in transform\n", + " return X[:, self.feature_indices_]\n", + " ~^^^^^^^^^^^^^^^^^^^^^^^^^^\n", + "IndexError: index 15 is out of bounds for axis 1 with size 15\n", + "\n", + " warnings.warn(some_fits_failed_message, FitFailedWarning)\n", + "/opt/anaconda3/lib/python3.11/site-packages/sklearn/model_selection/_search.py:976: UserWarning: One or more of the test scores are non-finite: [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan\n", + " nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan\n", + " nan nan nan nan nan nan nan nan nan nan nan nan]\n", + " warnings.warn(\n" + ] + }, + { + "data": { + "text/plain": [ + "GridSearchCV(cv=5,\n", + " estimator=Pipeline(steps=[('preparation',\n", + " ColumnTransformer(transformers=[('num',\n", + " Pipeline(steps=[('imputer',\n", + " SimpleImputer(strategy='median')),\n", + " ('attribs_adder',\n", + " CombinedAttributesAdder()),\n", + " ('std_scaler',\n", + " StandardScaler())]),\n", + " ['longitude',\n", + " 'latitude',\n", + " 'housing_median_age',\n", + " 'total_rooms',\n", + " 'total_bedrooms',\n", + " 'population',\n", + " 'households',\n", + " 'median_inc...\n", + " 5.47789150e-02, 1.07031322e-01, 4.82031213e-02, 6.79266007e-03,\n", + " 1.65706303e-01, 7.83480660e-05, 1.52473276e-03, 3.02816106e-03]),\n", + " k=5)),\n", + " ('svm_reg',\n", + " SVR(C=157055.10989448498,\n", + " gamma=0.26497040005002437))]),\n", + " param_grid=[{'feature_selection__k': [1, 2, 3, 4, 5, 6, 7, 8, 9,\n", + " 10, 11, 12, 13, 14, 15, 16],\n", + " 'preparation__num__imputer__strategy': ['mean',\n", " 'median',\n", " 'most_frequent']}],\n", " scoring='neg_mean_squared_error', verbose=2)" + ], + "text/html": [ + "
GridSearchCV(cv=5,\n",
+       "             estimator=Pipeline(steps=[('preparation',\n",
+       "                                        ColumnTransformer(transformers=[('num',\n",
+       "                                                                         Pipeline(steps=[('imputer',\n",
+       "                                                                                          SimpleImputer(strategy='median')),\n",
+       "                                                                                         ('attribs_adder',\n",
+       "                                                                                          CombinedAttributesAdder()),\n",
+       "                                                                                         ('std_scaler',\n",
+       "                                                                                          StandardScaler())]),\n",
+       "                                                                         ['longitude',\n",
+       "                                                                          'latitude',\n",
+       "                                                                          'housing_median_age',\n",
+       "                                                                          'total_rooms',\n",
+       "                                                                          'total_bedrooms',\n",
+       "                                                                          'population',\n",
+       "                                                                          'households',\n",
+       "                                                                          'median_inc...\n",
+       "       5.47789150e-02, 1.07031322e-01, 4.82031213e-02, 6.79266007e-03,\n",
+       "       1.65706303e-01, 7.83480660e-05, 1.52473276e-03, 3.02816106e-03]),\n",
+       "                                                           k=5)),\n",
+       "                                       ('svm_reg',\n",
+       "                                        SVR(C=157055.10989448498,\n",
+       "                                            gamma=0.26497040005002437))]),\n",
+       "             param_grid=[{'feature_selection__k': [1, 2, 3, 4, 5, 6, 7, 8, 9,\n",
+       "                                                   10, 11, 12, 13, 14, 15, 16],\n",
+       "                          'preparation__num__imputer__strategy': ['mean',\n",
+       "                                                                  'median',\n",
+       "                                                                  'most_frequent']}],\n",
+       "             scoring='neg_mean_squared_error', verbose=2)
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.
" ] }, "execution_count": 137, @@ -6193,29 +10759,24 @@ "output_type": "execute_result" } ], - "source": [ - "full_pipeline.named_transformers_[\"cat\"].handle_unknown = 'ignore'\n", - "\n", - "param_grid = [{\n", - " 'preparation__num__imputer__strategy': ['mean', 'median', 'most_frequent'],\n", - " 'feature_selection__k': list(range(1, len(feature_importances) + 1))\n", - "}]\n", - "\n", - "grid_search_prep = GridSearchCV(prepare_select_and_predict_pipeline, param_grid, cv=5,\n", - " scoring='neg_mean_squared_error', verbose=2)\n", - "grid_search_prep.fit(housing, housing_labels)" - ] + "execution_count": 137 }, { "cell_type": "code", - "execution_count": 138, - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-08T22:17:01.582264Z", + "start_time": "2024-06-08T22:17:01.580329Z" + } + }, + "source": [ + "grid_search_prep.best_params_" + ], "outputs": [ { "data": { "text/plain": [ - "{'feature_selection__k': 15,\n", - " 'preparation__num__imputer__strategy': 'most_frequent'}" + "{'feature_selection__k': 1, 'preparation__num__imputer__strategy': 'mean'}" ] }, "execution_count": 138, @@ -6223,9 +10784,7 @@ "output_type": "execute_result" } ], - "source": [ - "grid_search_prep.best_params_" - ] + "execution_count": 138 }, { "cell_type": "markdown",