{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.13","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":7722356,"sourceType":"datasetVersion","datasetId":4511074}],"dockerImageVersionId":30664,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"## Feature selection  \nFeature selection methods are intended to **reduce the number of input** variables to those that are\nbelieved to be **most useful** to a model in order to **predict the target** variable. Some predictive\nmodeling problems have a large number of variables that can **slow** the development and training\nof models and require a large amount of system memory. Additionally, the **performance** of some\nmodels can degrade when including input variables that are not relevant to the target variable.  \n\nSupervised feature selection methods may further be classified into three groups, including\nintrinsic, wrapper, filter methods.\n1. **Filter:** Select subsets of features based on their relationship with the target.\n2. **Wrapper:** Search subsets of features that perform according to a predictive model.\n3. **Intrinsic (Embedded Method):** Algorithms that perform automatic feature selection during training.  ","metadata":{}},{"cell_type":"code","source":"import pandas as pd\ndata_prepared = pd.read_csv('/kaggle/input/house-price-prepared/data_prepared.csv')\n\ndata_prepared.set_index('Id', inplace=True)","metadata":{"execution":{"iopub.status.busy":"2024-03-03T17:56:37.081682Z","iopub.execute_input":"2024-03-03T17:56:37.082209Z","iopub.status.idle":"2024-03-03T17:56:37.728268Z","shell.execute_reply.started":"2024-03-03T17:56:37.082137Z","shell.execute_reply":"2024-03-03T17:56:37.726997Z"},"trusted":true},"execution_count":1,"outputs":[]},{"cell_type":"code","source":"y_train = data_prepared.SalePrice\nX_train = data_prepared.drop('SalePrice', axis=1)\nX_train.info()","metadata":{"execution":{"iopub.status.busy":"2024-03-03T17:56:41.176728Z","iopub.execute_input":"2024-03-03T17:56:41.177191Z","iopub.status.idle":"2024-03-03T17:56:41.220553Z","shell.execute_reply.started":"2024-03-03T17:56:41.177154Z","shell.execute_reply":"2024-03-03T17:56:41.219332Z"},"trusted":true},"execution_count":2,"outputs":[{"name":"stdout","text":"<class 'pandas.core.frame.DataFrame'>\nIndex: 1001 entries, 708 to 132\nData columns (total 65 columns):\n #   Column                    Non-Null Count  Dtype  \n---  ------                    --------------  -----  \n 0   MSSubClass                1001 non-null   int64  \n 1   MSZoning                  1001 non-null   object \n 2   Alley                     1001 non-null   object \n 3   LotShape                  1001 non-null   object \n 4   LandContour               1001 non-null   object \n 5   LotConfig                 1001 non-null   object \n 6   LandSlope                 1001 non-null   object \n 7   Neighborhood              1001 non-null   object \n 8   Condition1                1001 non-null   object \n 9   BldgType                  1001 non-null   object \n 10  HouseStyle                1001 non-null   object \n 11  OverallQual               1001 non-null   int64  \n 12  OverallCond               1001 non-null   int64  \n 13  RoofStyle                 1001 non-null   object \n 14  Exterior1st               1001 non-null   object \n 15  Exterior2nd               1001 non-null   object \n 16  MasVnrType                1001 non-null   object \n 17  ExterQual                 1001 non-null   int64  \n 18  ExterCond                 1001 non-null   int64  \n 19  Foundation                1001 non-null   object \n 20  BsmtQual                  1001 non-null   int64  \n 21  BsmtCond                  1001 non-null   int64  \n 22  BsmtExposure              1001 non-null   int64  \n 23  BsmtFinType1              1001 non-null   int64  \n 24  BsmtFinType2              1001 non-null   int64  \n 25  HeatingQC                 1001 non-null   int64  \n 26  CentralAir                1001 non-null   object \n 27  Electrical                1001 non-null   object \n 28  BsmtFullBath              1001 non-null   int64  \n 29  BsmtHalfBath              1001 non-null   int64  \n 30  FullBath                  1001 non-null   int64  \n 31  HalfBath                  1001 non-null   int64  \n 32  BedroomAbvGr              1001 non-null   int64  \n 33  KitchenAbvGr              1001 non-null   int64  \n 34  KitchenQual               1001 non-null   int64  \n 35  TotRmsAbvGrd              1001 non-null   int64  \n 36  Functional                1001 non-null   object \n 37  Fireplaces                1001 non-null   int64  \n 38  FireplaceQu               1001 non-null   int64  \n 39  GarageType                1001 non-null   object \n 40  GarageFinish              1001 non-null   object \n 41  GarageCars                1001 non-null   int64  \n 42  GarageQual                1001 non-null   int64  \n 43  GarageCond                1001 non-null   int64  \n 44  PavedDrive                1001 non-null   object \n 45  Fence                     1001 non-null   object \n 46  MoSold                    1001 non-null   int64  \n 47  SaleType                  1001 non-null   object \n 48  SaleCondition             1001 non-null   object \n 49  AgeSold                   1001 non-null   int64  \n 50  MasVnrArea_cat            1001 non-null   float64\n 51  BsmtFinSF1_cat            1001 non-null   float64\n 52  2ndFlrSF_cat              1001 non-null   float64\n 53  GarageArea_cat            1001 non-null   float64\n 54  WoodDeckSF_cat            1001 non-null   float64\n 55  OpenPorchSF_cat           1001 non-null   float64\n 56  LotFrontage_transformed   1001 non-null   float64\n 57  LotArea_transformed       1001 non-null   float64\n 58  BsmtUnfSF_transformed     1001 non-null   float64\n 59  TotalBsmtSF_transformed   1001 non-null   float64\n 60  1stFlrSF_transformed      1001 non-null   float64\n 61  GrLivArea_transformed     1001 non-null   float64\n 62  AgeBuilt_transformed      1001 non-null   float64\n 63  AgeRemodAdd_transformed   1001 non-null   float64\n 64  AgeGarageBlt_transformed  1001 non-null   float64\ndtypes: float64(15), int64(26), object(24)\nmemory usage: 516.1+ KB\n","output_type":"stream"}]},{"cell_type":"code","source":"categorical = ['MSSubClass', 'MSZoning', 'Alley', 'LotShape', 'LandContour', 'LotConfig', 'LandSlope', 'Neighborhood', \n               'Condition1', 'BldgType', 'HouseStyle', 'RoofStyle', 'Exterior1st', 'Exterior2nd', 'MasVnrType', \n               'ExterQual', 'ExterCond', 'Foundation', 'BsmtQual', 'BsmtCond', 'BsmtExposure', 'BsmtFinType1', \n               'BsmtFinType2', 'HeatingQC', 'CentralAir', 'Electrical', 'KitchenQual', 'Functional', 'FireplaceQu', \n               'GarageType', 'GarageFinish', 'GarageQual', 'GarageCond', 'PavedDrive', 'Fence', 'SaleType', \n               'SaleCondition', 'MasVnrArea_cat', 'BsmtFinSF1_cat', '2ndFlrSF_cat', 'GarageArea_cat', 'WoodDeckSF_cat', \n               'OpenPorchSF_cat']\nX_train[categorical] = X_train[categorical].astype('category')\n\ncontinuous = X_train.drop(categorical, axis=1).columns.tolist()\n\ninputs_cat = X_train[categorical]\ninputs_con = X_train[continuous]\n\nlen(categorical), len(continuous)","metadata":{"execution":{"iopub.status.busy":"2024-03-03T17:56:46.230884Z","iopub.execute_input":"2024-03-03T17:56:46.232240Z","iopub.status.idle":"2024-03-03T17:56:46.282330Z","shell.execute_reply.started":"2024-03-03T17:56:46.232196Z","shell.execute_reply":"2024-03-03T17:56:46.281196Z"},"trusted":true},"execution_count":3,"outputs":[{"execution_count":3,"output_type":"execute_result","data":{"text/plain":"(43, 22)"},"metadata":{}}]},{"cell_type":"markdown","source":"### 1- Filter Method  \nFilter feature selection methods use statistical techniques to evaluate the relationship between\neach input variable and the target variable, and these scores are used as the basis to rank and\nchoose those input variables that will be used in the model.    \n\nFilter feature selection methods may further be classified into two groups:\n* **Based on statistical hypothesis testing**\n* **Based on mutual information**\n* **Based on Model Scores**","metadata":{}},{"cell_type":"markdown","source":"#### 1-1 Feature Selection Based on Statistical Hypothesis Testing   \nThe statistical measures used in filter-based feature selection are generally calculated one\ninput variable at a time with the target variable. As such, they are referred to as **univariate\nstatistical measures**. This may mean that any **interaction** between input variables is **not\nconsidered** in the filtering process.  \nIt is common to use correlation type statistical measures between input and output variables\nas the basis for filter feature selection. As such, the choice of statistical measures is highly\n**dependent upon the variable data types**. Common data types include **numerical** (such as\nheight) and **categorical** (such as a label). **Input variables** are those that are provided as input to a model. In feature selection,it is this group of variables that we wish to reduce in size. **Output variables** are those for\nwhich a model is intended to predict, often called the response variable.  \nThere is a tree of input and output variable types and select statistical measures of\nrelationship or correlation designed to work with these data types. The figure below summarizes\nthis tree and some commonly suggested statistics to use at the leaves of the tree.  \n![image.png](attachment:000a4e22-0d56-4fff-a2da-067e915a15a3.png)","metadata":{},"attachments":{"000a4e22-0d56-4fff-a2da-067e915a15a3.png":{"image/png":"iVBORw0KGgoAAAANSUhEUgAAA3kAAAGoCAYAAAD7DSx2AAAgAElEQVR4AeydB3hVRfr/dVd397euZe2667p2Xcvae1/Lirr23rE3RCyAAopKEQTpvXdIKKEmJKRX0kMKHQKEXqQXle///31vJlxiAgGScO/JN89znnPvPXPmzHxmJs98z/vOO0dAfyIgAiIgAiIgAiIgAiIgAiIgAp4hcIRnaqKKiIAIiIAIiIAIiIAIiIAIiIAIQCJPnUAEREAEREAEREAEREAEREAEPERAIs9DjamqiIAIiIAIiIAIiIAIiIAIiIBEnvqACIiACIiACIiACIiACIiACHiIgESehxpTVREBERABERABERABERABERABiTz1AREQAREQAREQAREQAREQARHwEAGJPA81pqoiAiIgAiIgAiIgAiIgAiIgAhJ56gMiIAIiIAIiIAIiIAIiIAIi4CECEnkeakxVRQREQAREQAREQAREQAREQAQk8tQHREAEREAEREAEREAEREAERMBDBCTyPNSYqooIiIAIiIAIiIAIiIAIiIAISOSpD4iACIiACIiACIiACIiACIiAhwhI5HmoMVUVERABERABERABERABERABEZDIUx8QAREQAREQAREQAREQAREQAQ8RkMjzUGOqKiIgAiIgAiIgAiIgAiIgAiIgkac+IAIiIAJBRmD37t3Q4T0GQdYNVVwREAEREIEAJiCRF8CNo6KJgAiIgAiIgAiIgAiIgAiIwIESkMg7UGJKLwIiIAKHkcCvv/6KNWvWYPmKFShZvhwrVqzE8tKDnwPxONTyHer91cHElYHn6sjP5cF25LFixQps3rwZbF/9iYAIiIAIiMChEpDIO1SCul8EREAEapHAzp07MWnSJAwaPBR9+w/C4KHDMXDIMAwK4KM6ylcdeRwqo5ooA/McMHgoBg8ZiuzsHGzfvt16k3PHrcWupUeJgAiIgAh4iIBEnocaU1URARHwOoHd2Lp1C9p36oZR0xIxLW0uZmQvRGTmfERmLqjC4Z+On/f1nfm5NO7s/wz3mztXdM3/N//83O/u3vJnd93/nvJp3HeX1n0vf97fdaYvn6b8d/88/a/xs/8197l8morSLUBkxnxEZS1E7Kyl+KZTX0TEJGD9+nXWiSXyvD6WVT8REAERqFkCEnk1y1e5i4AIiED1EdhNkbcVHbv1xqSEPCTP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"}}},{"cell_type":"markdown","source":"#### 1-2 Feature Selection Based on Mutual Information  \nMutual information from the field of information theory is the application of **information gain**\n(typically used in the construction of decision trees) to feature selection. Mutual information is\ncalculated between two variables and measures the **reduction in uncertainty** for one variable\ngiven a known value of the other variable.","metadata":{}},{"cell_type":"markdown","source":"#### 1-3 Feature Selection Based on Model Scores:  \nA data type agnostic method is to **score input features using a model** and use a **filter-based** feature selection method. Many models will automatically select features or score features as part of fitting the model and these scores can be used just like the statistical methods described above. Decision tree algorithms and ensembles of decision tree algorithms provide a input variable data type agnostic method of scoring input variables, including algorithms such as:\n* Classification and Regression Trees (CART).\n* Random Forest\n* Bagged Decision Trees\n* Gradient Boosting","metadata":{}},{"cell_type":"markdown","source":"### Input: Numerical | Output: Numerical     \nThis is a regression predictive modeling problem with numerical input variables. The most\ncommon techniques are to use a correlation coeficient, such as Pearson's for a linear correlation,\nor rank-based methods for a nonlinear correlation.\n* Pearson's correlation coeficient (linear)\n* Spearman's rank coeficient (nonlinear)\n* Mutual Information","metadata":{}},{"cell_type":"markdown","source":"#### Method 1-1: Correlation Score","metadata":{}},{"cell_type":"code","source":"from sklearn.feature_selection import SelectKBest\nfrom sklearn.feature_selection import f_regression\n\n# configure to select all features\nfs_num = SelectKBest(score_func=f_regression, k='all')\n\n# score_func=f_regression: For relationship between Numerical and Numerical.\n# score_func=mutual_info_regression: For relationship between Numerical and Numerical.\n\n# score_func=f_classif(Is default): For relationship between Numerical and Categorical.\n# score_func=chi2: For relationship between Categorical and Categorical. \n\n# score_func=mutual_info_classif: For relationship between (Numerical and Categorical) or (Categorical and Categorical).\n\n# learn relationship from training data\nfs_num.fit(inputs_con, y_train)\n\nfs_num.get_feature_names_out()\nfs_num.scores_","metadata":{"execution":{"iopub.status.busy":"2024-03-03T17:57:23.036911Z","iopub.execute_input":"2024-03-03T17:57:23.037385Z","iopub.status.idle":"2024-03-03T17:57:24.142302Z","shell.execute_reply.started":"2024-03-03T17:57:23.037349Z","shell.execute_reply":"2024-03-03T17:57:24.141055Z"},"trusted":true},"execution_count":4,"outputs":[{"execution_count":4,"output_type":"execute_result","data":{"text/plain":"array([1.74978771e+03, 1.03020370e+01, 4.70714271e+01, 4.43407214e-01,\n       4.85744731e+02, 8.18959568e+01, 2.90595579e+01, 1.83343378e+01,\n       3.72611070e+02, 2.86617721e+02, 6.78419099e+02, 2.22659575e+00,\n       1.73681307e+00, 1.44259492e+02, 1.64954173e+02, 4.53539020e+01,\n       6.28402036e+02, 5.01742495e+02, 1.00226211e+03, 5.51676312e+02,\n       3.50641204e+02, 4.26851784e+02])"},"metadata":{}}]},{"cell_type":"code","source":"feature_importance = pd.DataFrame({'Feature': fs_num.get_feature_names_out().tolist(),\n                      'Score': fs_num.scores_.tolist()})\n\nfeature_importance = feature_importance.sort_values(by='Score', ascending=False)\n\nprint(feature_importance)\n\n\nimport matplotlib.pyplot as plt\n\n# plot the scores\nplt.bar([i for i in range(len(feature_importance.Score))], feature_importance.Score)\nplt.show()\n","metadata":{"execution":{"iopub.status.busy":"2024-03-03T17:57:30.191681Z","iopub.execute_input":"2024-03-03T17:57:30.192284Z","iopub.status.idle":"2024-03-03T17:57:30.508350Z","shell.execute_reply.started":"2024-03-03T17:57:30.192233Z","shell.execute_reply":"2024-03-03T17:57:30.507209Z"},"trusted":true},"execution_count":5,"outputs":[{"name":"stdout","text":"                     Feature        Score\n0                OverallQual  1749.787709\n18     GrLivArea_transformed  1002.262108\n10                GarageCars   678.419099\n16   TotalBsmtSF_transformed   628.402036\n19      AgeBuilt_transformed   551.676312\n17      1stFlrSF_transformed   501.742495\n4                   FullBath   485.744731\n21  AgeGarageBlt_transformed   426.851784\n8               TotRmsAbvGrd   372.611070\n20   AgeRemodAdd_transformed   350.641204\n9                 Fireplaces   286.617721\n14       LotArea_transformed   164.954173\n13   LotFrontage_transformed   144.259492\n5                   HalfBath    81.895957\n2               BsmtFullBath    47.071427\n15     BsmtUnfSF_transformed    45.353902\n6               BedroomAbvGr    29.059558\n7               KitchenAbvGr    18.334338\n1                OverallCond    10.302037\n11                    MoSold     2.226596\n12                   AgeSold     1.736813\n3               BsmtHalfBath     0.443407\n","output_type":"stream"},{"output_type":"display_data","data":{"text/plain":"<Figure size 640x480 with 1 Axes>","image/png":"iVBORw0KGgoAAAANSUhEUgAAAjAAAAGdCAYAAAAMm0nCAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/xnp5ZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAl/klEQVR4nO3df1CUd2LH8c+K7qIeCyKBZRtE4jUajRqPRMJctLFSEBnv0tA2/oiSO6p3HnoTSTzCNVE012Cx45lcqZnMxNhONfEyk5ieZhxBo9xF1ARnS2JyjFo8TGWx1cgGUhHk6R8Zn94GjEF3s3zh/Zp5Ztjn+e6z383eju979tl9HJZlWQIAADDIkEhPAAAAoK8IGAAAYBwCBgAAGIeAAQAAxiFgAACAcQgYAABgHAIGAAAYh4ABAADGGRrpCYRLd3e3zp07p5iYGDkcjkhPBwAAfA2WZemzzz6T1+vVkCHXP84yYAPm3LlzSklJifQ0AADATTh79qxuv/32624fsAETExMj6Yv/AG63O8KzAQAAX0cgEFBKSor97/j1DNiAufaxkdvtJmAAADDMjU7/4CReAABgHAIGAAAYh4ABAADGIWAAAIBxCBgAAGAcAgYAABiHgAEAAMYhYAAAgHEIGAAAYBwCBgAAGKfPAVNTU6N58+bJ6/XK4XBo165dQdsdDkevy8aNG+0xY8eO7bF9w4YNQfupr6/XjBkzFB0drZSUFFVUVNzcMwQAAANOnwOmvb1dU6dOVWVlZa/bm5ubg5atW7fK4XAoPz8/aNz69euDxq1cudLeFggElJ2drdTUVNXV1Wnjxo0qKyvTSy+91NfpAgCAAajPF3PMzc1Vbm7udbd7PJ6g22+99ZZmzZqlO+64I2h9TExMj7HXbN++XVeuXNHWrVvldDo1adIk+Xw+bdq0ScuWLevrlAEAwAAT1nNgWlpatGfPHhUWFvbYtmHDBo0ePVrTpk3Txo0b1dXVZW+rra3VzJkz5XQ67XU5OTlqaGjQp59+2utjdXR0KBAIBC0AAGBg6vMRmL74l3/5F8XExOjhhx8OWv/Tn/5U3/nOdxQfH6/Dhw+rtLRUzc3N2rRpkyTJ7/crLS0t6D5JSUn2tlGjRvV4rPLycq1bty5MzyTY2Kf23PI+zmzIC8FMAAAYnMIaMFu3btWiRYsUHR0dtL64uNj+e8qUKXI6nfrRj36k8vJyuVyum3qs0tLSoP0GAgGlpKTc3MQBAEC/FraA+e1vf6uGhgbt3LnzhmMzMjLU1dWlM2fOaPz48fJ4PGppaQkac+329c6bcblcNx0/AADALGE7B+bll19Wenq6pk6desOxPp9PQ4YMUWJioiQpMzNTNTU16uzstMdUVVVp/PjxvX58BAAABpc+B0xbW5t8Pp98Pp8kqbGxUT6fT01NTfaYQCCg119/XX/7t3/b4/61tbXavHmz/uM//kP/+Z//qe3bt2vVqlV69NFH7ThZuHChnE6nCgsLdeLECe3cuVPPP/980EdEAABg8OrzR0jvv/++Zs2aZd++FhUFBQXatm2bJOm1116TZVlasGBBj/u7XC699tprKisrU0dHh9LS0rRq1aqgOImNjdW+fftUVFSk9PR0JSQkaM2aNXyFGgAASJIclmVZkZ5EOAQCAcXGxqq1tVVutzuk++ZbSAAAhMfX/febayEBAADjEDAAAMA4BAwAADAOAQMAAIxDwAAAAOMQMAAAwDgEDAAAMA4BAwAAjEPAAAAA4xAwAADAOAQMAAAwDgEDAACMQ8AAAADjEDAAAMA4BAwAADAOAQMAAIxDwAAAAOMQMAAAwDgEDAAAMA4BAwAAjEPAAAAA4xAwAADAOAQMAAAwDgEDAACMQ8AAAADjEDAAAMA4BAwAADAOAQMAAIxDwAAAAOMQMAAAwDgEDAAAMA4BAwAAjEPAAAAA4xAwAADAOAQMAAAwDgEDAACMQ8AAAADjEDAAAMA4BAwAADBOnwOmpqZG8+bNk9frlcPh0K5du4K2P/bYY3I4HEHLnDlzgsZcvHhRixYtktvtVlxcnAoLC9XW1hY0pr6+XjNmzFB0dLRSUlJUUVHR92cHAAAGpD4HTHt7u6ZOnarKysrrjpkzZ46am5vt5dVXXw3avmjRIp04cUJVVVXavXu3ampqtGzZMnt7IBBQdna2UlNTVVdXp40bN6qsrEwvvfRSX6cLAAAGoKF9vUNubq5yc3O/cozL5ZLH4+l128cff6y9e/fqvffe07333itJ+tWvfqW5c+fqH//xH+X1erV9+3ZduXJFW7duldPp1KRJk+Tz+bRp06ag0AEAAINTWM6BOXjwoBITEzV+/HgtX75cFy5csLfV1tYqLi7OjhdJysrK0pAhQ3T06FF7zMyZM+V0Ou0xOTk5amho0KeffhqOKQMAAIP0+QjMjcyZM0cPP/yw0tLSdPr0af385z9Xbm6uamtrFRUVJb/fr8TExOBJDB2q+Ph4+f1+SZLf71daWlrQmKSkJHvbqFGjejxuR0eHOjo67NuBQCDUTw0AAPQTIQ+Y+fPn239PnjxZU6ZM0bhx43Tw4EHNnj071A9nKy8v17p168K2fwAA0H+E/WvUd9xxhxISEnTq1ClJksfj0fnz54PGdHV16eLFi/Z5Mx6PRy0tLUFjrt2+3rk1paWlam1ttZezZ8+G+qkAAIB+IuwB88knn+jChQtKTk6WJGVmZurSpUuqq6uzxxw4cEDd3d3KyMiwx9TU1Kizs9MeU1VVpfHjx/f68ZH0xYnDbrc7aAEAAANTnwOmra1NPp9PPp9PktTY2Cifz6empia1tbVp9erVOnLkiM6cOaP9+/fr+9//vr797W8rJydHknTXXXdpzpw5Wrp0qY4dO6Z3331XK1as0Pz58+X1eiVJCxculNPpVGFhoU6cOKGdO3fq+eefV3FxceieOQAAMFafA+b999/XtGnTNG3aNElScXGxpk2bpjVr1igqKkr19fX63ve+pzvvvFOFhYVKT0/Xb3/7W7lcLnsf27dv14QJEzR79mzNnTtXDzzwQNBvvMTGxmrfvn1qbGxUenq6nnjiCa1Zs4avUAMAAEmSw7IsK9KTCIdAIKDY2Fi1traG/OOksU/tueV9nNmQF4KZAAAwsHzdf7+5FhIAADAOAQMAAIxDwAAAAOMQMAAAwDgEDAAAMA4BAwAAjEPAAAAA4xAwAADAOAQMAAAwDgEDAACMQ8AAAADjEDAAAMA4BAwAADAOAQMAAIxDwAAAAOMQMAAAwDgEDAAAMA4BAwAAjEPAAAAA4xAwAADAOAQMAAAwDgEDAACMQ8AAAADjEDAAAMA4BAwAADAOAQMAAIxDwAAAAOMQMAAAwDgEDAAAMA4BAwAAjEPAAAAA4xAwAADAOAQMAAAwDgEDAACMQ8AAAADjEDAAAMA4BAwAADAOAQMAAIxDwAAAAOMQMAAAwDh9DpiamhrNmzdPXq9XDodDu3btsrd1dnaqpKREkydP1siRI+X1erVkyRKdO3cuaB9jx46Vw+EIWjZs2BA0pr6+XjNmzFB0dLRSUlJUUVFxc88QAAAMOH0OmPb2dk2dOlWVlZU9tn3++ec6fvy4nnnmGR0/flxvvPGGGhoa9L3vfa/H2PXr16u5udleVq5caW8LBALKzs5Wamqq6urqtHHjRpWVlemll17q63QBAMAANLSvd8jNzVVubm6v22JjY1VVVRW07p/+6Z80ffp0NTU1acyYMfb6mJgYeTyeXvezfft2XblyRVu3bpXT6dSkSZPk8/m0adMmLVu2rK9TBgAAA0zYz4FpbW2Vw+FQXFxc0PoNGzZo9OjRmjZtmjZu3Kiuri57W21trWbOnCmn02mvy8nJUUNDgz799NNeH6ejo0OBQCBoAQAAA1Ofj8D0xeXLl1VSUqIFCxbI7Xbb63/605/qO9/5juLj43X48GGVlpaqublZmzZtkiT5/X6lpaUF7SspKcneNmrUqB6PVV5ernXr1oXx2QAAgP4ibAHT2dmpv/mbv5FlWdqyZUvQtuLiYvvvKVOmyOl06kc/+pHKy8vlcrlu6vFKS0uD9hsIBJSSknJzkwcAAP1aWALmWrz84Q9/0IEDB4KOvvQmIyNDXV1dOnPmjMaPHy+Px6OWlpagMdduX++8GZfLddPxAwAAzBLyc2CuxcvJkydVXV2t0aNH3/A+Pp9PQ4YMUWJioiQpMzNTNTU16uzstMdUVVVp/PjxvX58BAAABpc+H4Fpa2vTqVOn7NuNjY3y+XyKj49XcnKy/uqv/krHjx/X7t27dfXqVfn9fklSfHy8nE6namtrdfToUc2aNUsxMTGqra3VqlWr9Oijj9pxsnDhQq1bt06FhYUqKSnRhx9+qOeff16//OUvQ/S0AQCAyRyWZVl9ucPBgwc1a9asHusLCgpUVlbW4+Tba9555x09+OCDOn78uH7yk5/o97//vTo6OpSWlqbFixeruLg46COg+vp6FRUV6b333lNCQoJWrlypkpKSrz3PQCCg2NhYtba23vAjrL4a+9SeW97HmQ15IZgJAAADy9f997vPAWMKAgYAAPN83X+/uRYSAAAwDgEDAACMQ8AAAADjEDAAAMA4BAwAADAOAQMAAIxDwAAAAOMQMAAAwDgEDAAAMA4BAwAAjEPAAAAA4xAwAADAOAQMAAAwDgEDAACMQ8AAAADjEDAAAMA4BAwAADAOAQMAAIxDwAAAAOMQMAAAwDgEDAAAMA4BAwAAjEPAAAAA4xAwAADAOAQMAAAwDgEDAACMQ8AAAADjEDAAAMA4BAwAADAOAQMAAIxDwAAAAOMQMAAAwDgEDAAAMA4BAwAAjEPAAAAA4xAwAADAOAQMAAAwDgEDAACMQ8AAAADj9DlgampqNG/ePHm9XjkcDu3atStou2VZWrNmjZKTkzV8+HBlZWXp5MmTQWMuXryoRYsWye12Ky4uToWFhWprawsaU19frxkzZig6OlopKSmqqKjo+7MDAAADUp8Dpr29XVOnTlVlZWWv2ysqKvTCCy/oxRdf1NGjRzVy5Ejl5OTo8uXL9phFixbpxIkTqqqq0u7du1VTU6Nly5bZ2wOBgLKzs5Wamqq6ujpt3LhRZWVleumll27iKQIAgIHGYVmWddN3djj05ptv6qGHHpL0xdEXr9erJ554Qk8++aQkqbW1VUlJSdq2bZvmz5+vjz/+WBMnTtR7772ne++9V5K0d+9ezZ07V5988om8Xq+2bNmiv/u7v5Pf75fT6ZQkPfXUU9q1a5d+//vff625BQIBxcbGqrW1VW63+2afYq/GPrXnlvdxZkNeCGYCAMDA8nX//Q7pOTCNjY3y+/3Kysqy18XGxiojI0O1tbWSpNraWsXFxdnxIklZWVkaMmSIjh49ao+ZOXOmHS+SlJOTo4aGBn366ae9PnZHR4cCgUDQAgAABqahodyZ3++XJCUlJQWtT0pKsrf5/X4lJiYGT2LoUMXHxweNSUtL67GPa9tGjRrV47HLy8u1bt260DyRCOCoDgAAX9+A+RZSaWmpWltb7eXs2bORnhIAAAiTkAaMx+ORJLW0tAStb2lpsbd5PB6dP38+aHtXV5cuXrwYNKa3ffzxY3yZy+WS2+0OWgAAwMAU0oBJS0uTx+PR/v377XWBQEBHjx5VZmamJCkzM1OXLl1SXV2dPebAgQPq7u5WRkaGPaampkadnZ32mKqqKo0fP77Xj48AAMDg0ueAaWtrk8/nk8/nk/TFibs+n09NTU1yOBx6/PHH9Ytf/EL//u//rg8++EBLliyR1+u1v6l01113ac6cOVq6dKmOHTumd999VytWrND8+fPl9XolSQsXLpTT6VRhYaFOnDihnTt36vnnn1dxcXHInjgAADBXn0/iff/99zVr1iz79rWoKCgo0LZt2/Szn/1M7e3tWrZsmS5duqQHHnhAe/fuVXR0tH2f7du3a8WKFZo9e7aGDBmi/Px8vfDCC/b22NhY7du3T0VFRUpPT1dCQoLWrFkT9FsxAABg8Lql34Hpz0z7HRi+hQQAQIR+BwYAAOCbQMAAAADjEDAAAMA4BAwAADAOAQMAAIxDwAAAAOMQMAAAwDgEDAAAMA4BAwAAjEPAAAAA4xAwAADAOAQMAAAwDgEDAACMQ8AAAADjEDAAAMA4BAwAADAOAQMAAIxDwAAAAOMQMAAAwDgEDAAAMA4BAwAAjEPAAAAA4xAwAADAOAQMAAAwDgEDAACMQ8AAAADjEDAAAMA4BAwAADAOAQMAAIxDwAAAAOMQMAAAwDgEDAAAMA4BAwAAjEPAAAAA4xAwAADAOAQMAAAwDgEDAACMQ8AAAADjEDAAAMA4IQ+YsWPHyuFw9FiKiookSQ8++GCPbT/+8Y+D9tHU1KS8vDyNGDFCiYmJWr16tbq6ukI9VQAAYKihod7he++9p6tXr9q3P/zwQ/3FX/yF/vqv/9pet3TpUq1fv96+PWLECPvvq1evKi8vTx6PR4cPH1Zzc7OWLFmiYcOG6bnnngv1dAEAgIFCHjC33XZb0O0NGzZo3Lhx+rM/+zN73YgRI+TxeHq9/759+/TRRx+purpaSUlJuueee/Tss8+qpKREZWVlcjqdoZ4yAAAwTFjPgbly5Yr+7d/+TT/84Q/lcDjs9du3b1dCQoLuvvtulZaW6vPPP7e31dbWavLkyUpKSrLX5eTkKBAI6MSJE9d9rI6ODgUCgaAFAAAMTCE/AvPHdu3apUuXLumxxx6z1y1cuFCpqanyer2qr69XSUmJGhoa9MYbb0iS/H5/ULxIsm/7/f7rPlZ5ebnWrVsX+icBAAD6nbAGzMsvv6zc3Fx5vV573bJly+y/J0+erOTkZM2ePVunT5/WuHHjbvqxSktLVVxcbN8OBAJKSUm56f0BAID+K2wB84c//EHV1dX2kZXrycjIkCSdOnVK48aNk8fj0bFjx4LGtLS0SNJ1z5uRJJfLJZfLdYuzBgAAJgjbOTCvvPKKEhMTlZeX95XjfD6fJCk5OVmSlJmZqQ8++EDnz5+3x1RVVcntdmvixInhmi4AADBIWI7AdHd365VXXlFBQYGGDv3/hzh9+rR27NihuXPnavTo0aqvr9eqVas0c+ZMTZkyRZKUnZ2tiRMnavHixaqoqJDf79fTTz+toqIijrAAAABJYQqY6upqNTU16Yc//GHQeqfTqerqam3evFnt7e1KSUlRfn6+nn76aXtMVFSUdu/ereXLlyszM1MjR45UQUFB0O/GAACAwS0sAZOdnS3LsnqsT0lJ0aFDh254/9TUVL399tvhmBoAABgAuBYSAAAwDgEDAACMQ8AAAADjEDAAAMA4BAwAADAOAQMAAIxDwAAAAOMQMAAAwDhhvRo1ImvsU3tu6f5nNnz1dawAAIgUjsAAAADjEDAAAMA4BAwAADAOAQMAAIxDwAAAAOMQMAAAwDgEDAAAMA4BAwAAjEPAAAAA4/BLvPjabvWXfSV+3RcAEBocgQEAAMYhYAAAgHEIGAAAYBwCBgAAGIeAAQAAxiFgAACAcQgYAABgHAIGAAAYh4ABAADGIWAAAIBxCBgAAGAcAgYAABiHgAEAAMYhYAAAgHGGRnoCGNzGPrXnlvdxZkNeCGYCADAJR2AAAIBxCBgAAGAcAgYAABiHgAEAAMYhYAAAgHEIGAAAYJyQB0xZWZkcDkfQMmHCBHv75cuXVVRUpNGjR+tb3/qW8vPz1dLSErSPpqYm5eXlacSIEUpMTNTq1avV1dUV6qkCAABDheV3YCZNmqTq6ur/f5Ch//8wq1at0p49e/T6668rNjZWK1as0MMPP6x3331XknT16lXl5eXJ4/Ho8OHDam5u1pIlSzRs2DA999xz4ZguAAAwTFgCZujQofJ4PD3Wt7a26uWXX9aOHTv053/+55KkV155RXfddZeOHDmi+++/X/v27dNHH32k6upqJSUl6Z577tGzzz6rkpISlZWVyel0hmPKAADAIGEJmJMnT8rr9So6OlqZmZkqLy/XmDFjVFdXp87OTmVlZdljJ0yYoDFjxqi2tlb333+/amtrNXnyZCUlJdljcnJytHz5cp04cULTpk3r9TE7OjrU0dFh3w4EAuF4ajDArf66L7/sCwD9X8jPgcnIyNC2bdu0d+9ebdmyRY2NjZoxY4Y+++wz+f1+OZ1OxcXFBd0nKSlJfr9fkuT3+4Pi5dr2a9uup7y8XLGxsfaSkpIS2icGAAD6jZAfgcnNzbX/njJlijIyMpSamqpf//rXGj58eKgfzlZaWqri4mL7diAQIGIAABigwv416ri4ON155506deqUPB6Prly5okuXLgWNaWlpsc+Z8Xg8Pb6VdO12b+fVXONyueR2u4MWAAAwMIX9atRtbW06ffq0Fi9erPT0dA0bNkz79+9Xfn6+JKmhoUFNTU3KzMyUJGVmZurv//7vdf78eSUmJkqSqqqq5Ha7NXHixHBPF+iBK2YDQP8T8oB58sknNW/ePKWmpurcuXNau3atoqKitGDBAsXGxqqwsFDFxcWKj4+X2+3WypUrlZmZqfvvv1+SlJ2drYkTJ2rx4sWqqKiQ3+/X008/raKiIrlcrlBPFwAAGCjkAfPJJ59owYIFunDhgm677TY98MADOnLkiG677TZJ0i9/+UsNGTJE+fn56ujoUE5Ojv75n//Zvn9UVJR2796t5cuXKzMzUyNHjlRBQYHWr18f6qkCAABDhTxgXnvtta/cHh0drcrKSlVWVl53TGpqqt5+++1QTw0AAAwQXAsJAAAYh4ABAADGIWAAAIBxCBgAAGAcAgYAABiHgAEAAMYhYAAAgHHCfikBAD1xeQIAuDUcgQEAAMYhYAAAgHEIGAAAYBwCBgAAGIeAAQAAxiFgAACAcQgYAABgHAIGAAAYh4ABAADGIWAAAIBxuJQAMEDc6uUJuDQBAJNwBAYAABiHgAEAAMYhYAAAgHEIGAAAYBxO4gVwXZwYDKC/4ggMAAAwDgEDAACMQ8AAAADjEDAAAMA4BAwAADAOAQMAAIxDwAAAAOMQMAAAwDgEDAAAMA4BAwAAjEPAAAAA4xAwAADAOFzMEcA35lYvDilxgUgAX+AIDAAAMA4BAwAAjBPygCkvL9d9992nmJgYJSYm6qGHHlJDQ0PQmAcffFAOhyNo+fGPfxw0pqmpSXl5eRoxYoQSExO1evVqdXV1hXq6AADAQCE/B+bQoUMqKirSfffdp66uLv385z9Xdna2PvroI40cOdIet3TpUq1fv96+PWLECPvvq1evKi8vTx6PR4cPH1Zzc7OWLFmiYcOG6bnnngv1lAEAgGFCHjB79+4Nur1t2zYlJiaqrq5OM2fOtNePGDFCHo+n133s27dPH330kaqrq5WUlKR77rlHzz77rEpKSlRWVian0xnqaQMAAIOE/RyY1tZWSVJ8fHzQ+u3btyshIUF33323SktL9fnnn9vbamtrNXnyZCUlJdnrcnJyFAgEdOLEiV4fp6OjQ4FAIGgBAAADU1i/Rt3d3a3HH39c3/3ud3X33Xfb6xcuXKjU1FR5vV7V19erpKREDQ0NeuONNyRJfr8/KF4k2bf9fn+vj1VeXq5169aF6ZkAAID+JKwBU1RUpA8//FC/+93vgtYvW7bM/nvy5MlKTk7W7Nmzdfr0aY0bN+6mHqu0tFTFxcX27UAgoJSUlJubOAAA6NfC9hHSihUrtHv3br3zzju6/fbbv3JsRkaGJOnUqVOSJI/Ho5aWlqAx125f77wZl8slt9sdtAAAgIEp5AFjWZZWrFihN998UwcOHFBaWtoN7+Pz+SRJycnJkqTMzEx98MEHOn/+vD2mqqpKbrdbEydODPWUAQCAYUL+EVJRUZF27Niht956SzExMfY5K7GxsRo+fLhOnz6tHTt2aO7cuRo9erTq6+u1atUqzZw5U1OmTJEkZWdna+LEiVq8eLEqKirk9/v19NNPq6ioSC6XK9RTBgAAhgn5EZgtW7aotbVVDz74oJKTk+1l586dkiSn06nq6mplZ2drwoQJeuKJJ5Sfn6/f/OY39j6ioqK0e/duRUVFKTMzU48++qiWLFkS9LsxAABg8Ar5ERjLsr5ye0pKig4dOnTD/aSmpurtt98O1bQAAMAAwrWQAACAcQgYAABgHAIGAAAYh4ABAADGIWAAAIBxCBgAAGAcAgYAABiHgAEAAMYhYAAAgHEIGAAAYJyQX0oAAL5JY5/ac0v3P7MhL0QzAfBN4ggMAAAwDgEDAACMQ8AAAADjcA4MAHwJ59UA/R9HYAAAgHEIGAAAYBwCBgAAGIeAAQAAxiFgAACAcQgYAABgHAIGAAAYh4ABAADGIWAAAIBxCBgAAGAcAgYAABiHgAEAAMbhYo4AEGa3enFIiQtEAl/GERgAAGAcAgYAABiHgAEAAMYhYAAAgHEIGAAAYBwCBgAAGIevUQOAgcLx1exb3Sdf9cY3iSMwAADAOAQMAAAwDh8hAQDCgl8gRjhxBAYAABinXwdMZWWlxo4dq+joaGVkZOjYsWORnhIAAOgH+u1HSDt37lRxcbFefPFFZWRkaPPmzcrJyVFDQ4MSExMjPT0AQATwsRSu6bcBs2nTJi1dulQ/+MEPJEkvvvii9uzZo61bt+qpp56K8OwAAAMFXx83U78MmCtXrqiurk6lpaX2uiFDhigrK0u1tbW93qejo0MdHR327dbWVklSIBAI+fy6Oz6/5X18eV79cZ8mzDEc+zRhjuHYZ2/vlcHw33KwPu9w7NOEOYZjn+H4d2Ywu/bf07Ksrx5o9UP/9V//ZUmyDh8+HLR+9erV1vTp03u9z9q1ay1JLCwsLCwsLANgOXv27Fe2Qr88AnMzSktLVVxcbN/u7u7WxYsXNXr0aDkcjm90LoFAQCkpKTp79qzcbvc3+tj4arw2/RuvT//Fa9N/DbTXxrIsffbZZ/J6vV85rl8GTEJCgqKiotTS0hK0vqWlRR6Pp9f7uFwuuVyuoHVxcXHhmuLX4na7B8T/mAYiXpv+jden/+K16b8G0msTGxt7wzH98mvUTqdT6enp2r9/v72uu7tb+/fvV2ZmZgRnBgAA+oN+eQRGkoqLi1VQUKB7771X06dP1+bNm9Xe3m5/KwkAAAxe/TZgHnnkEf33f/+31qxZI7/fr3vuuUd79+5VUlJSpKd2Qy6XS2vXru3xkRYij9emf+P16b94bfqvwfraOCzrRt9TAgAA6F/65TkwAAAAX4WAAQAAxiFgAACAcQgYAABgHAImxCorKzV27FhFR0crIyNDx44di/SUIKmsrEwOhyNomTBhQqSnNSjV1NRo3rx58nq9cjgc2rVrV9B2y7K0Zs0aJScna/jw4crKytLJkycjM9lB6Eavz2OPPdbjvTRnzpzITHaQKS8v13333aeYmBglJibqoYceUkNDQ9CYy5cvq6ioSKNHj9a3vvUt5efn9/hR2IGCgAmhnTt3qri4WGvXrtXx48c1depU5eTk6Pz585GeGiRNmjRJzc3N9vK73/0u0lMalNrb2zV16lRVVlb2ur2iokIvvPCCXnzxRR09elQjR45UTk6OLl++/A3PdHC60esjSXPmzAl6L7366qvf4AwHr0OHDqmoqEhHjhxRVVWVOjs7lZ2drfb2dnvMqlWr9Jvf/Eavv/66Dh06pHPnzunhhx+O4KzDKCRXX4RlWZY1ffp0q6ioyL599epVy+v1WuXl5RGcFSzri4t9Tp06NdLTwJdIst588037dnd3t+XxeKyNGzfa6y5dumS5XC7r1VdfjcAMB7cvvz6WZVkFBQXW97///YjMB8HOnz9vSbIOHTpkWdYX75Vhw4ZZr7/+uj3m448/tiRZtbW1kZpm2HAEJkSuXLmiuro6ZWVl2euGDBmirKws1dbWRnBmuObkyZPyer264447tGjRIjU1NUV6SviSxsZG+f3+oPdRbGysMjIyeB/1IwcPHlRiYqLGjx+v5cuX68KFC5Ge0qDU2toqSYqPj5ck1dXVqbOzM+j9M2HCBI0ZM2ZAvn8ImBD5n//5H129erXHLwUnJSXJ7/dHaFa4JiMjQ9u2bdPevXu1ZcsWNTY2asaMGfrss88iPTX8kWvvFd5H/decOXP0r//6r9q/f7/+4R/+QYcOHVJubq6uXr0a6akNKt3d3Xr88cf13e9+V3fffbekL94/Tqezx4WMB+r7p99eSgAIpdzcXPvvKVOmKCMjQ6mpqfr1r3+twsLCCM4MMMv8+fPtvydPnqwpU6Zo3LhxOnjwoGbPnh3BmQ0uRUVF+vDDDwf1uXwcgQmRhIQERUVF9Tjbu6WlRR6PJ0KzwvXExcXpzjvv1KlTpyI9FfyRa+8V3kfmuOOOO5SQkMB76Ru0YsUK7d69W++8845uv/12e73H49GVK1d06dKloPED9f1DwISI0+lUenq69u/fb6/r7u7W/v37lZmZGcGZoTdtbW06ffq0kpOTIz0V/JG0tDR5PJ6g91EgENDRo0d5H/VTn3zyiS5cuMB76RtgWZZWrFihN998UwcOHFBaWlrQ9vT0dA0bNizo/dPQ0KCmpqYB+f7hI6QQKi4uVkFBge69915Nnz5dmzdvVnt7u37wgx9EemqD3pNPPql58+YpNTVV586d09q1axUVFaUFCxZEemqDTltbW9D/W29sbJTP51N8fLzGjBmjxx9/XL/4xS/0p3/6p0pLS9Mzzzwjr9erhx56KHKTHkS+6vWJj4/XunXrlJ+fL4/Ho9OnT+tnP/uZvv3tbysnJyeCsx4cioqKtGPHDr311luKiYmxz2uJjY3V8OHDFRsbq8LCQhUXFys+Pl5ut1srV65UZmam7r///gjPPgwi/TWogeZXv/qVNWbMGMvpdFrTp0+3jhw5EukpwbKsRx55xEpOTracTqf1J3/yJ9YjjzxinTp1KtLTGpTeeecdS1KPpaCgwLKsL75K/cwzz1hJSUmWy+WyZs+ebTU0NER20oPIV70+n3/+uZWdnW3ddttt1rBhw6zU1FRr6dKllt/vj/S0B4XeXhdJ1iuvvGKP+d///V/rJz/5iTVq1ChrxIgR1l/+5V9azc3NkZt0GDksy7K++WwCAAC4eZwDAwAAjEPAAAAA4xAwAADAOAQMAAAwDgEDAACMQ8AAAADjEDAAAMA4BAwAADAOAQMAAIxDwAAAAOMQMAAAwDgEDAAAMM7/AQ/zG+Ag6v6eAAAAAElFTkSuQmCC"},"metadata":{}}]},{"cell_type":"code","source":"fs_f_regressor = feature_importance.Feature[:10].tolist()\nselected_f_regressor = X_train[fs_f_regressor]\n\n# Or:\n\n# fs_num = SelectKBest(score_func=f_regression, k=10)\n# X_train_fs_regressor = fs_num.fit_transform(inputs_con, y_train)\n# selected_f_regressor = pd.DataFrame(X_train_fs_regressor, columns=fs_num.get_feature_names_out())\n","metadata":{"trusted":true},"execution_count":7,"outputs":[{"execution_count":7,"output_type":"execute_result","data":{"text/plain":"      OverallQual  GrLivArea_transformed  GarageCars  TotalBsmtSF_transformed  \\\nId                                                                              \n708             8               9.591389           2               371.555862   \n1237            7               9.950876           2               240.172016   \n962             6              10.976291           2               372.890632   \n255             5               9.578232           1               369.328432   \n1004            5              10.008561           2               448.775370   \n...           ...                    ...         ...                      ...   \n348             6               9.783199           2               405.433202   \n1101            2               7.750408           1               111.135471   \n14              7               9.802055           3               408.909454   \n1426            6               9.494535           2               355.437995   \n132             6              10.366650           2               295.501167   \n\n      AgeBuilt_transformed  1stFlrSF_transformed  FullBath  \\\nId                                                           \n708               2.158885              6.559122         2   \n1237              3.054081              6.099387         2   \n962               6.940288              6.685411         2   \n255               8.657319              6.552827         1   \n1004              7.039933              6.756209         2   \n...                    ...                   ...       ...   \n348               8.429877              6.650338         2   \n1101             10.957671              5.627505         1   \n14                2.158885              6.659250         2   \n1426              8.506637              6.512668         1   \n132               3.749592              6.343469         2   \n\n      AgeGarageBlt_transformed  TotRmsAbvGrd  AgeRemodAdd_transformed  \nId                                                                     \n708                   2.125587             6                 1.868684  \n1237                  2.991917             6                 2.525392  \n962                   6.686061            11                 3.601895  \n255                   8.292375             5                 5.850896  \n1004                  6.779650             8                 4.991742  \n...                        ...           ...                      ...  \n348                   8.080339             6                 5.733749  \n1101                  9.917374             3                 6.104798  \n14                    2.125587             7                 1.575944  \n1426                  8.080339             7                 5.773411  \n132                   3.660359             7                 3.003217  \n\n[1001 rows x 10 columns]","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>OverallQual</th>\n      <th>GrLivArea_transformed</th>\n      <th>GarageCars</th>\n      <th>TotalBsmtSF_transformed</th>\n      <th>AgeBuilt_transformed</th>\n      <th>1stFlrSF_transformed</th>\n      <th>FullBath</th>\n      <th>AgeGarageBlt_transformed</th>\n      <th>TotRmsAbvGrd</th>\n      <th>AgeRemodAdd_transformed</th>\n    </tr>\n    <tr>\n      <th>Id</th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>708</th>\n      <td>8</td>\n      <td>9.591389</td>\n      <td>2</td>\n      <td>371.555862</td>\n      <td>2.158885</td>\n      <td>6.559122</td>\n      <td>2</td>\n      <td>2.125587</td>\n      <td>6</td>\n      <td>1.868684</td>\n    </tr>\n    <tr>\n      <th>1237</th>\n      <td>7</td>\n      <td>9.950876</td>\n      <td>2</td>\n      <td>240.172016</td>\n      <td>3.054081</td>\n      <td>6.099387</td>\n      <td>2</td>\n      <td>2.991917</td>\n      <td>6</td>\n      <td>2.525392</td>\n    </tr>\n    <tr>\n      <th>962</th>\n      <td>6</td>\n      <td>10.976291</td>\n      <td>2</td>\n      <td>372.890632</td>\n      <td>6.940288</td>\n      <td>6.685411</td>\n      <td>2</td>\n      <td>6.686061</td>\n      <td>11</td>\n      <td>3.601895</td>\n    </tr>\n    <tr>\n      <th>255</th>\n      <td>5</td>\n      <td>9.578232</td>\n      <td>1</td>\n      <td>369.328432</td>\n      <td>8.657319</td>\n      <td>6.552827</td>\n      <td>1</td>\n      <td>8.292375</td>\n      <td>5</td>\n      <td>5.850896</td>\n    </tr>\n    <tr>\n      <th>1004</th>\n      <td>5</td>\n      <td>10.008561</td>\n      <td>2</td>\n      <td>448.775370</td>\n      <td>7.039933</td>\n      <td>6.756209</td>\n      <td>2</td>\n      <td>6.779650</td>\n      <td>8</td>\n      <td>4.991742</td>\n    </tr>\n    <tr>\n      <th>...</th>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n    </tr>\n    <tr>\n      <th>348</th>\n      <td>6</td>\n      <td>9.783199</td>\n      <td>2</td>\n      <td>405.433202</td>\n      <td>8.429877</td>\n      <td>6.650338</td>\n      <td>2</td>\n      <td>8.080339</td>\n      <td>6</td>\n      <td>5.733749</td>\n    </tr>\n    <tr>\n      <th>1101</th>\n      <td>2</td>\n      <td>7.750408</td>\n      <td>1</td>\n      <td>111.135471</td>\n      <td>10.957671</td>\n      <td>5.627505</td>\n      <td>1</td>\n      <td>9.917374</td>\n      <td>3</td>\n      <td>6.104798</td>\n    </tr>\n    <tr>\n      <th>14</th>\n      <td>7</td>\n      <td>9.802055</td>\n      <td>3</td>\n      <td>408.909454</td>\n      <td>2.158885</td>\n      <td>6.659250</td>\n      <td>2</td>\n      <td>2.125587</td>\n      <td>7</td>\n      <td>1.575944</td>\n    </tr>\n    <tr>\n      <th>1426</th>\n      <td>6</td>\n      <td>9.494535</td>\n      <td>2</td>\n      <td>355.437995</td>\n      <td>8.506637</td>\n      <td>6.512668</td>\n      <td>1</td>\n      <td>8.080339</td>\n      <td>7</td>\n      <td>5.773411</td>\n    </tr>\n    <tr>\n      <th>132</th>\n      <td>6</td>\n      <td>10.366650</td>\n      <td>2</td>\n      <td>295.501167</td>\n      <td>3.749592</td>\n      <td>6.343469</td>\n      <td>2</td>\n      <td>3.660359</td>\n      <td>7</td>\n      <td>3.003217</td>\n    </tr>\n  </tbody>\n</table>\n<p>1001 rows × 10 columns</p>\n</div>"},"metadata":{}}]},{"cell_type":"markdown","source":"### Input: Numerical | Output: Numerical   \n#### Method 1-2: Mutual Information Score","metadata":{}},{"cell_type":"code","source":"from sklearn.feature_selection import mutual_info_regression\n\n# configure to select all features\nfs_num = SelectKBest(score_func=mutual_info_regression, k='all')\n\n# learn relationship from training data\nfs_num.fit(inputs_con, y_train)\n\nfs_num.get_feature_names_out()\nfs_num.scores_","metadata":{"trusted":true},"execution_count":8,"outputs":[{"execution_count":8,"output_type":"execute_result","data":{"text/plain":"array([0.52597378, 0.14329651, 0.02597268, 0.00654189, 0.26754539,\n       0.0579934 , 0.07593372, 0.03376787, 0.20996109, 0.16171477,\n       0.34290214, 0.        , 0.01293628, 0.18799623, 0.17212605,\n       0.11152316, 0.33947203, 0.24977399, 0.47331057, 0.36345302,\n       0.26131449, 0.27465062])"},"metadata":{}}]},{"cell_type":"code","source":"feature_importance = pd.DataFrame({'Feature': fs_num.get_feature_names_out().tolist(),\n                      'Score': fs_num.scores_.tolist()})\n\nfeature_importance = feature_importance.sort_values(by='Score', ascending=False).reset_index(drop=True)\n\nprint(feature_importance)\n\n\nimport matplotlib.pyplot as plt\n\n# plot the scores\nplt.bar([i for i in range(len(feature_importance.Score))], feature_importance.Score)\nplt.show()\n","metadata":{"execution":{"iopub.status.busy":"2024-03-03T18:11:38.432865Z","iopub.execute_input":"2024-03-03T18:11:38.433337Z","iopub.status.idle":"2024-03-03T18:11:38.724555Z","shell.execute_reply.started":"2024-03-03T18:11:38.433301Z","shell.execute_reply":"2024-03-03T18:11:38.723232Z"},"trusted":true},"execution_count":14,"outputs":[{"name":"stdout","text":"                     Feature     Score\n0                OverallQual  0.525974\n1      GrLivArea_transformed  0.473311\n2       AgeBuilt_transformed  0.363453\n3                 GarageCars  0.342902\n4    TotalBsmtSF_transformed  0.339472\n5   AgeGarageBlt_transformed  0.274651\n6                   FullBath  0.267545\n7    AgeRemodAdd_transformed  0.261314\n8       1stFlrSF_transformed  0.249774\n9               TotRmsAbvGrd  0.209961\n10   LotFrontage_transformed  0.187996\n11       LotArea_transformed  0.172126\n12                Fireplaces  0.161715\n13               OverallCond  0.143297\n14     BsmtUnfSF_transformed  0.111523\n15              BedroomAbvGr  0.075934\n16                  HalfBath  0.057993\n17              KitchenAbvGr  0.033768\n18              BsmtFullBath  0.025973\n19                   AgeSold  0.012936\n20              BsmtHalfBath  0.006542\n21                    MoSold  0.000000\n","output_type":"stream"},{"output_type":"display_data","data":{"text/plain":"<Figure size 640x480 with 1 Axes>","image/png":"iVBORw0KGgoAAAANSUhEUgAAAiMAAAGdCAYAAADAAnMpAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/xnp5ZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAb/ElEQVR4nO3dfWxddf3A8U9b1pbJVpiVls1CGSBzKq22tlbDDxMrRQlxikkhxtUG94esRr3xgamsoiQdgstQK/NpEh+QSSISxcxgZRhCdXGT+LwIYW4w2m0q6yjakvb8/iAUy1rYbTu+a/t6JSehp+ec+7m5Xnh7eu49BVmWZQEAkEhh6gEAgPlNjAAASYkRACApMQIAJCVGAICkxAgAkJQYAQCSEiMAQFInpR7gWIyOjsb+/ftj0aJFUVBQkHocAOAYZFkWR44ciaVLl0Zh4eTnP2ZFjOzfvz+qqqpSjwEATMG+ffvila985aS/nxUxsmjRooh45sksXrw48TQAwLEYGBiIqqqqsf+OT2ZWxMizf5pZvHixGAGAWebFLrFwASsAkJQYAQCSEiMAQFJiBABISowAAEmJEQAgKTECACQlRgCApMQIAJCUGAEAkhIjAEBSYgQASEqMAABJiREAIKmTUg+QWvU1d0/7GHs2XDoDkwDA/OTMCACQlBgBAJISIwBAUmIEAEhKjAAASYkRACApMQIAJCVGAICkxAgAkJQYAQCSEiMAQFJiBABIakox0t3dHdXV1VFaWhqNjY2xY8eOSbe99dZbo6CgYNxSWlo65YEBgLkl7xjZunVr5HK56OzsjF27dkVNTU20tLTEgQMHJt1n8eLF8fjjj48t//jHP6Y1NAAwd+QdIxs3bow1a9ZEe3t7rFy5MjZv3hwLFy6MLVu2TLpPQUFBVFZWji0VFRXTGhoAmDvyipHh4eHYuXNnNDc3P3eAwsJobm6O3t7eSfd78skn46yzzoqqqqp417veFX/+85+nPjEAMKfkFSOHDh2KkZGRo85sVFRURF9f34T7nH/++bFly5a466674vvf/36Mjo7Gm9/85nj00UcnfZyhoaEYGBgYtwAAc9Nx/zRNU1NTrF69Ompra+Oiiy6KH//4x/GKV7wivv71r0+6T1dXV5SVlY0tVVVVx3tMACCRvGKkvLw8ioqKor+/f9z6/v7+qKysPKZjLFiwIF7/+tfHQw89NOk269ati8OHD48t+/bty2dMAGAWyStGiouLo66uLnp6esbWjY6ORk9PTzQ1NR3TMUZGRuKPf/xjnHHGGZNuU1JSEosXLx63AABz00n57pDL5aKtrS3q6+ujoaEhNm3aFIODg9He3h4REatXr45ly5ZFV1dXRER8/vOfjze96U1x7rnnxhNPPBE33nhj/OMf/4gPfvCDM/tMAIBZKe8YaW1tjYMHD8b69eujr68vamtrY9u2bWMXte7duzcKC5874fLvf/871qxZE319fXHaaadFXV1dPPDAA7Fy5cqZexYAwKxVkGVZlnqIFzMwMBBlZWVx+PDhGf+TTfU1d0/7GHs2XDoDkwDA3HKs//12bxoAICkxAgAkJUYAgKTECACQlBgBAJISIwBAUmIEAEhKjAAASYkRACApMQIAJCVGAICkxAgAkFTed+3lxU335ntuvAfAfOLMCACQlBgBAJISIwBAUmIEAEhKjAAASYkRACApMQIAJCVGAICkxAgAkJQYAQCSEiMAQFJiBABISowAAEmJEQAgKTECACQlRgCApMQIAJCUGAEAkhIjAEBSYgQASEqMAABJiREAICkxAgAkJUYAgKTECACQlBgBAJISIwBAUmIEAEhKjAAASYkRACApMQIAJCVGAICkxAgAkJQYAQCSEiMAQFJiBABISowAAEmJEQAgKTECACQlRgCApMQIAJCUGAEAkhIjAEBSU4qR7u7uqK6ujtLS0mhsbIwdO3Yc03633357FBQUxKpVq6bysADAHJR3jGzdujVyuVx0dnbGrl27oqamJlpaWuLAgQMvuN+ePXvi4x//eFx44YVTHhYAmHvyjpGNGzfGmjVror29PVauXBmbN2+OhQsXxpYtWybdZ2RkJN73vvfFddddF8uXL5/WwADA3JJXjAwPD8fOnTujubn5uQMUFkZzc3P09vZOut/nP//5OP300+Oqq66a+qQAwJx0Uj4bHzp0KEZGRqKiomLc+oqKivjb3/424T73339/fPvb344HH3zwmB9naGgohoaGxn4eGBjIZ0wAYBY5rp+mOXLkSLz//e+Pb37zm1FeXn7M+3V1dUVZWdnYUlVVdRynBABSyuvMSHl5eRQVFUV/f/+49f39/VFZWXnU9g8//HDs2bMnLrvssrF1o6OjzzzwSSfF7t2745xzzjlqv3Xr1kUulxv7eWBgQJAAwByVV4wUFxdHXV1d9PT0jH08d3R0NHp6eqKjo+Oo7VesWBF//OMfx6377Gc/G0eOHImbb7550sAoKSmJkpKSfEYDAGapvGIkIiKXy0VbW1vU19dHQ0NDbNq0KQYHB6O9vT0iIlavXh3Lli2Lrq6uKC0tjde+9rXj9j/11FMjIo5aDwDMT3nHSGtraxw8eDDWr18ffX19UVtbG9u2bRu7qHXv3r1RWOiLXQGAY5N3jEREdHR0TPhnmYiI7du3v+C+t95661QeEgCYo5zCAACSEiMAQFJiBABISowAAEmJEQAgKTECACQlRgCApMQIAJCUGAEAkhIjAEBSYgQASEqMAABJiREAICkxAgAkJUYAgKTECACQlBgBAJISIwBAUielHoBjU33N3dPaf8+GS2doEgCYWc6MAABJiREAICkxAgAkJUYAgKTECACQlBgBAJISIwBAUmIEAEhKjAAASYkRACApMQIAJCVGAICkxAgAkJS79s5T070LcIQ7AQMwM5wZAQCScmaEGeNsCwBT4cwIAJCUGAEAkhIjAEBSYgQASEqMAABJiREAICkxAgAkJUYAgKTECACQlBgBAJISIwBAUmIEAEhKjAAASYkRACApMQIAJCVGAICkxAgAkJQYAQCSEiMAQFJiBABISowAAElNKUa6u7ujuro6SktLo7GxMXbs2DHptj/+8Y+jvr4+Tj311HjZy14WtbW18b3vfW/KAwMAc0veMbJ169bI5XLR2dkZu3btipqammhpaYkDBw5MuP2SJUviM5/5TPT29sYf/vCHaG9vj/b29vjFL34x7eEBgNkv7xjZuHFjrFmzJtrb22PlypWxefPmWLhwYWzZsmXC7d/61rfGu9/97nj1q18d55xzTnzkIx+JCy64IO6///5pDw8AzH55xcjw8HDs3LkzmpubnztAYWE0NzdHb2/vi+6fZVn09PTE7t274//+7//ynxYAmHNOymfjQ4cOxcjISFRUVIxbX1FREX/7298m3e/w4cOxbNmyGBoaiqKiovja174Wb3/72yfdfmhoKIaGhsZ+HhgYyGdMAGAWyStGpmrRokXx4IMPxpNPPhk9PT2Ry+Vi+fLl8da3vnXC7bu6uuK66657KUYDABLLK0bKy8ujqKgo+vv7x63v7++PysrKSfcrLCyMc889NyIiamtr469//Wt0dXVNGiPr1q2L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unRpLF++PN73vvfF3r17U4/E8zzyyCPR19c37n1UVlYWjY2N3kcnkO3bt8fpp58e559/fnzoQx+Kf/7zn6lHmncOHz4cERFLliyJiIidO3fG008/Pe69s2LFijjzzDPn7HtHjEzg0KFDMTIyMvatss+qqKiIvr6+RFPxrMbGxrj11ltj27Ztccstt8QjjzwSF154YRw5ciT1aPyPZ98r3kcnrksuuSS++93vRk9PT9xwww1x3333xTve8Y4YGRlJPdq8MTo6Gh/96EfjLW95y9g3k/f19UVxcfFRN4idy++dvL8OHlJ7xzveMfbPF1xwQTQ2NsZZZ50VP/rRj+Kqq65KOBnMLldcccXYP7/uda+LCy64IM4555zYvn17vO1tb0s42fyxdu3a+NOf/jTvr3tzZmQC5eXlUVRUdNSVy/39/VFZWZloKiZz6qmnxqte9ap46KGHUo/C/3j2veJ9NHssX748ysvLvZdeIh0dHfGzn/0s7r333njlK185tr6ysjKGh4fjiSeeGLf9XH7viJEJFBcXR11dXfT09IytGx0djZ6enmhqako4GRN58skn4+GHH44zzjgj9Sj8j7PPPjsqKyvHvY8GBgbit7/9rffRCerRRx+Nf/7zn95Lx1mWZdHR0RF33nln/OpXv4qzzz573O/r6upiwYIF4947u3fvjr17987Z944/00wil8tFW1tb1NfXR0NDQ2zatCkGBwejvb099Wjz3sc//vG47LLL4qyzzor9+/dHZ2dnFBUVxZVXXpl6tHnnySefHPf/oh955JF48MEHY8mSJXHmmWfGRz/60bj++uvjvPPOi7PPPjuuvfbaWLp0aaxatSrd0PPIC70+S5Ysieuuuy4uv/zyqKysjIcffjg++clPxrnnnhstLS0Jp5771q5dG7fddlvcddddsWjRorHrQMrKyuLkk0+OsrKyuOqqqyKXy8WSJUti8eLF8eEPfziampriTW96U+Lpj5PUH+c5kX3lK1/JzjzzzKy4uDhraGjIfvOb36QeiSzLWltbszPOOCMrLi7Oli1blrW2tmYPPfRQ6rHmpXvvvTeLiKOWtra2LMue+Xjvtddem1VUVGQlJSXZ2972tmz37t1ph55HXuj1eeqpp7KLL744e8UrXpEtWLAgO+uss7I1a9ZkfX19qcee8yZ6TSIi+853vjO2zX/+85/s6quvzk477bRs4cKF2bvf/e7s8ccfTzf0cVaQZVn20icQAMAzXDMCACQlRgCApMQIAJCUGAEAkhIjAEBSYgQASEqMAABJiREAICkxAgAkJUYAgKTECACQlBgBAJL6fwoR0XYoi1FmAAAAAElFTkSuQmCC"},"metadata":{}}]},{"cell_type":"code","source":"fs_mutual_reg = feature_importance.Feature[:13].tolist()\nselected_mutual_reg = X_train[fs_mutual_reg]\n\n# Or:\n\n# fs_num = SelectKBest(score_func=f_regression, k=12)\n# X_train_fs_mutual_reg = fs_num.fit_transform(inputs_con, y_train)\n# selected_mutual_reg = pd.DataFrame(X_train_fs_mutual_reg, columns=fs_num.get_feature_names_out())","metadata":{"trusted":true},"execution_count":16,"outputs":[{"execution_count":16,"output_type":"execute_result","data":{"text/plain":"      OverallQual  GrLivArea_transformed  AgeBuilt_transformed  GarageCars  \\\nId                                                                           \n708             8               9.591389              2.158885           2   \n1237            7               9.950876              3.054081           2   \n962             6              10.976291              6.940288           2   \n255             5               9.578232              8.657319           1   \n1004            5              10.008561              7.039933           2   \n...           ...                    ...                   ...         ...   \n348             6               9.783199              8.429877           2   \n1101            2               7.750408             10.957671           1   \n14              7               9.802055              2.158885           3   \n1426            6               9.494535              8.506637           2   \n132             6              10.366650              3.749592           2   \n\n      TotalBsmtSF_transformed  AgeGarageBlt_transformed  FullBath  \\\nId                                                                  \n708                371.555862                  2.125587         2   \n1237               240.172016                  2.991917         2   \n962                372.890632                  6.686061         2   \n255                369.328432                  8.292375         1   \n1004               448.775370                  6.779650         2   \n...                       ...                       ...       ...   \n348                405.433202                  8.080339         2   \n1101               111.135471                  9.917374         1   \n14                 408.909454                  2.125587         2   \n1426               355.437995                  8.080339         1   \n132                295.501167                  3.660359         2   \n\n      AgeRemodAdd_transformed  1stFlrSF_transformed  TotRmsAbvGrd  \\\nId                                                                  \n708                  1.868684              6.559122             6   \n1237                 2.525392              6.099387             6   \n962                  3.601895              6.685411            11   \n255                  5.850896              6.552827             5   \n1004                 4.991742              6.756209             8   \n...                       ...                   ...           ...   \n348                  5.733749              6.650338             6   \n1101                 6.104798              5.627505             3   \n14                   1.575944              6.659250             7   \n1426                 5.773411              6.512668             7   \n132                  3.003217              6.343469             7   \n\n      LotFrontage_transformed  LotArea_transformed  Fireplaces  \nId                                                              \n708                 10.020614             7.836747           1  \n1237                 8.578027             7.136478           0  \n962                 11.347922             8.370925           1  \n255                 12.206098             8.073926           0  \n1004                11.766925             8.322623           0  \n...                       ...                  ...         ...  \n348                 12.968870             8.656398           2  \n1101                11.269909             8.073926           0  \n14                  13.950246             8.262159           1  \n1426                13.069063             8.267260           0  \n132                 13.102271             8.370732           1  \n\n[1001 rows x 13 columns]","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>OverallQual</th>\n      <th>GrLivArea_transformed</th>\n      <th>AgeBuilt_transformed</th>\n      <th>GarageCars</th>\n      <th>TotalBsmtSF_transformed</th>\n      <th>AgeGarageBlt_transformed</th>\n      <th>FullBath</th>\n      <th>AgeRemodAdd_transformed</th>\n      <th>1stFlrSF_transformed</th>\n      <th>TotRmsAbvGrd</th>\n      <th>LotFrontage_transformed</th>\n      <th>LotArea_transformed</th>\n      <th>Fireplaces</th>\n    </tr>\n    <tr>\n      <th>Id</th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>708</th>\n      <td>8</td>\n      <td>9.591389</td>\n      <td>2.158885</td>\n      <td>2</td>\n      <td>371.555862</td>\n      <td>2.125587</td>\n      <td>2</td>\n      <td>1.868684</td>\n      <td>6.559122</td>\n      <td>6</td>\n      <td>10.020614</td>\n      <td>7.836747</td>\n      <td>1</td>\n    </tr>\n    <tr>\n      <th>1237</th>\n      <td>7</td>\n      <td>9.950876</td>\n      <td>3.054081</td>\n      <td>2</td>\n      <td>240.172016</td>\n      <td>2.991917</td>\n      <td>2</td>\n      <td>2.525392</td>\n      <td>6.099387</td>\n      <td>6</td>\n      <td>8.578027</td>\n      <td>7.136478</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>962</th>\n      <td>6</td>\n      <td>10.976291</td>\n      <td>6.940288</td>\n      <td>2</td>\n      <td>372.890632</td>\n      <td>6.686061</td>\n      <td>2</td>\n      <td>3.601895</td>\n      <td>6.685411</td>\n      <td>11</td>\n      <td>11.347922</td>\n      <td>8.370925</td>\n      <td>1</td>\n    </tr>\n    <tr>\n      <th>255</th>\n      <td>5</td>\n      <td>9.578232</td>\n      <td>8.657319</td>\n      <td>1</td>\n      <td>369.328432</td>\n      <td>8.292375</td>\n      <td>1</td>\n      <td>5.850896</td>\n      <td>6.552827</td>\n      <td>5</td>\n      <td>12.206098</td>\n      <td>8.073926</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>1004</th>\n      <td>5</td>\n      <td>10.008561</td>\n      <td>7.039933</td>\n      <td>2</td>\n      <td>448.775370</td>\n      <td>6.779650</td>\n      <td>2</td>\n      <td>4.991742</td>\n      <td>6.756209</td>\n      <td>8</td>\n      <td>11.766925</td>\n      <td>8.322623</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>...</th>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n    </tr>\n    <tr>\n      <th>348</th>\n      <td>6</td>\n      <td>9.783199</td>\n      <td>8.429877</td>\n      <td>2</td>\n      <td>405.433202</td>\n      <td>8.080339</td>\n      <td>2</td>\n      <td>5.733749</td>\n      <td>6.650338</td>\n      <td>6</td>\n      <td>12.968870</td>\n      <td>8.656398</td>\n      <td>2</td>\n    </tr>\n    <tr>\n      <th>1101</th>\n      <td>2</td>\n      <td>7.750408</td>\n      <td>10.957671</td>\n      <td>1</td>\n      <td>111.135471</td>\n      <td>9.917374</td>\n      <td>1</td>\n      <td>6.104798</td>\n      <td>5.627505</td>\n      <td>3</td>\n      <td>11.269909</td>\n      <td>8.073926</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>14</th>\n      <td>7</td>\n      <td>9.802055</td>\n      <td>2.158885</td>\n      <td>3</td>\n      <td>408.909454</td>\n      <td>2.125587</td>\n      <td>2</td>\n      <td>1.575944</td>\n      <td>6.659250</td>\n      <td>7</td>\n      <td>13.950246</td>\n      <td>8.262159</td>\n      <td>1</td>\n    </tr>\n    <tr>\n      <th>1426</th>\n      <td>6</td>\n      <td>9.494535</td>\n      <td>8.506637</td>\n      <td>2</td>\n      <td>355.437995</td>\n      <td>8.080339</td>\n      <td>1</td>\n      <td>5.773411</td>\n      <td>6.512668</td>\n      <td>7</td>\n      <td>13.069063</td>\n      <td>8.267260</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>132</th>\n      <td>6</td>\n      <td>10.366650</td>\n      <td>3.749592</td>\n      <td>2</td>\n      <td>295.501167</td>\n      <td>3.660359</td>\n      <td>2</td>\n      <td>3.003217</td>\n      <td>6.343469</td>\n      <td>7</td>\n      <td>13.102271</td>\n      <td>8.370732</td>\n      <td>1</td>\n    </tr>\n  </tbody>\n</table>\n<p>1001 rows × 13 columns</p>\n</div>"},"metadata":{}}]},{"cell_type":"markdown","source":"### Input: Categorical | Output: Numerical   \nThis is a classification predictive modeling problem with numerical input variables. This might\nbe the most common example of a classification problem, Again, the most common techniques\nare correlation based, although in this case, they must take the categorical target into account.\n* ANOVA correlation coeficient (linear)\n* Kendall's rank coeficient (nonlinear)\n* Mutual Information.","metadata":{}},{"cell_type":"markdown","source":"#### Method 1-1: ANOVA Score","metadata":{}},{"cell_type":"code","source":"# Apply Ordinal Encoding for Features in dataset\n\nfrom sklearn.preprocessing import OrdinalEncoder\n\n\n# Apply encoding to categorical columns\n\nordinal_encoder = OrdinalEncoder()\nencoded_values = ordinal_encoder.fit_transform(inputs_cat)\ninputs_cat = pd.DataFrame(encoded_values, columns=inputs_cat.columns).astype('category')\n","metadata":{"execution":{"iopub.status.busy":"2024-03-03T18:16:42.837266Z","iopub.execute_input":"2024-03-03T18:16:42.837679Z","iopub.status.idle":"2024-03-03T18:16:42.906595Z","shell.execute_reply.started":"2024-03-03T18:16:42.837649Z","shell.execute_reply":"2024-03-03T18:16:42.905286Z"},"trusted":true},"execution_count":17,"outputs":[]},{"cell_type":"code","source":"from sklearn.feature_selection import f_classif\n\n# configure to select all features\nfs_cat = SelectKBest(score_func=f_classif, k='all')\n\n# learn relationship from training data\nfs_cat.fit(inputs_cat, y_train)\n\nfs_cat.get_feature_names_out()\nfs_cat.scores_","metadata":{"execution":{"iopub.status.busy":"2024-03-03T18:17:45.916691Z","iopub.execute_input":"2024-03-03T18:17:45.917198Z","iopub.status.idle":"2024-03-03T18:17:45.997673Z","shell.execute_reply.started":"2024-03-03T18:17:45.917159Z","shell.execute_reply":"2024-03-03T18:17:45.996247Z"},"trusted":true},"execution_count":18,"outputs":[{"execution_count":18,"output_type":"execute_result","data":{"text/plain":"array([0.96416847, 1.72701087, 0.68904185, 1.53898394, 0.96488679,\n       1.08296333, 1.02745359, 1.18067437, 0.93078216, 0.97260956,\n       0.95542131, 1.12169018, 0.91809795, 1.02044898, 2.11489619,\n       2.75047668, 0.87293647, 1.36659277, 2.37192845, 1.42899187,\n       1.48914109, 1.34580652, 1.0762376 , 1.18023457, 1.26570267,\n       1.21671433, 2.42967503, 0.72713777, 1.75831272, 1.43564524,\n       2.0929008 , 1.10278495, 1.12699335, 0.95324836, 0.8531212 ,\n       2.0660578 , 1.78364007, 1.5809808 , 1.48929142, 1.46083155,\n       1.95739907, 1.33926398, 1.59344795])"},"metadata":{}}]},{"cell_type":"code","source":"feature_importance = pd.DataFrame({'Feature': fs_cat.get_feature_names_out().tolist(),\n                      'Score': fs_cat.scores_.tolist()})\n\nfeature_importance = feature_importance.sort_values(by='Score', ascending=False).reset_index(drop=True)\n\nprint(feature_importance)\n\n\nimport matplotlib.pyplot as plt\n\n# plot the scores\nplt.bar([i for i in range(len(feature_importance.Score))], feature_importance.Score)\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-03-03T18:18:19.516646Z","iopub.execute_input":"2024-03-03T18:18:19.517189Z","iopub.status.idle":"2024-03-03T18:18:19.838935Z","shell.execute_reply.started":"2024-03-03T18:18:19.517150Z","shell.execute_reply":"2024-03-03T18:18:19.837670Z"},"trusted":true},"execution_count":19,"outputs":[{"name":"stdout","text":"            Feature     Score\n0         ExterQual  2.750477\n1       KitchenQual  2.429675\n2          BsmtQual  2.371928\n3        MasVnrType  2.114896\n4      GarageFinish  2.092901\n5          SaleType  2.066058\n6    GarageArea_cat  1.957399\n7     SaleCondition  1.783640\n8       FireplaceQu  1.758313\n9          MSZoning  1.727011\n10  OpenPorchSF_cat  1.593448\n11   MasVnrArea_cat  1.580981\n12         LotShape  1.538984\n13   BsmtFinSF1_cat  1.489291\n14     BsmtExposure  1.489141\n15     2ndFlrSF_cat  1.460832\n16       GarageType  1.435645\n17         BsmtCond  1.428992\n18       Foundation  1.366593\n19     BsmtFinType1  1.345807\n20   WoodDeckSF_cat  1.339264\n21       CentralAir  1.265703\n22       Electrical  1.216714\n23     Neighborhood  1.180674\n24        HeatingQC  1.180235\n25       GarageCond  1.126993\n26        RoofStyle  1.121690\n27       GarageQual  1.102785\n28        LotConfig  1.082963\n29     BsmtFinType2  1.076238\n30        LandSlope  1.027454\n31      Exterior2nd  1.020449\n32         BldgType  0.972610\n33      LandContour  0.964887\n34       MSSubClass  0.964168\n35       HouseStyle  0.955421\n36       PavedDrive  0.953248\n37       Condition1  0.930782\n38      Exterior1st  0.918098\n39        ExterCond  0.872936\n40            Fence  0.853121\n41       Functional  0.727138\n42            Alley  0.689042\n","output_type":"stream"},{"output_type":"display_data","data":{"text/plain":"<Figure size 640x480 with 1 Axes>","image/png":"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ffHFF7F///7cp8h+q7S0NP7+978nGhUH09DQEBFxwDn79jmOn7a2tpg7d25cfvnluU9XbmhoiP79+3/nSy7N0fH3wQcfREVFRXzzzTdx0kknxfLly2PMmDGxadMmc9RFLFu2LDZu3Bjvvffed57rDX9LYgQ4YpWVlbF58+Z46623Ug+FAxg9enRs2rQpmpqa4sUXX4xZs2bFmjVrUg+L/9ixY0fccccdUVtbGwMGDEg9nCS8TRMRp512WpxwwgnfuTK5sbExysrKEo2Kg/l2XsxZenPmzImXX3453nzzzRg+fHhuf1lZWezduzd2797d7nhzdPz1798/zjrrrBg3blzU1NTE2LFjY+HCheaoi9iwYUPs2rUrLr744ujbt2/07ds31qxZE48++mj07ds3SktLe/w8iZH49x/quHHjoq6uLrevra0t6urqoqKiIuHI6MioUaOirKys3Zw1NzfHO++8Y86OkyzLYs6cObF8+fJYtWpVjBo1qt3z48aNi379+rWboy1btsT27dvNUWJtbW3R2tpqjrqIq666Kj744IPYtGlTbhs/fnz86Ec/yv13T58nb9P8R1VVVcyaNSvGjx8fEyZMiAULFkRLS0vMnj079dB6rT179sTWrVtzj7dt2xabNm2KwYMHx4gRI2Lu3Lnxq1/9Ks4+++wYNWpU3HvvvTFs2LCYMWNGukH3IpWVlbF06dJYuXJlFBUV5d67LikpiYEDB0ZJSUnccsstUVVVFYMHD47i4uL42c9+FhUVFXHZZZclHn3vUV1dHdOmTYsRI0bEV199FUuXLo3Vq1fHn//8Z3PURRQVFX3nm+xPPPHEOPXUU3P7e/w8pb6dpyv5zW9+k40YMSLr379/NmHChOztt99OPaRe7c0338wi4jvbrFmzsiz79+299957b1ZaWpoVFhZmV111VbZly5a0g+5FDjQ3EZE988wzuWO+/vrr7Kc//Wl2yimnZIMGDcp+8IMfZDt37kw36F7o5ptvzs4888ysf//+2emnn55dddVV2RtvvJF73hx1Tf97a2+W9fx5KsiyLEvUQQAArhkBANISIwBAUmIEAEhKjAAASYkRACApMQIAJCVGAICkxAgAkJQYAQCSEiMAQFJiBABISowAAEn9f/UWy0lMXSsjAAAAAElFTkSuQmCC"},"metadata":{}}]},{"cell_type":"code","source":"fs_anova = feature_importance.Feature[:12].tolist()\nselected_anova = X_train[fs_anova]\n\n# Or:\n\n# fs_cat = SelectKBest(score_func=f_classif, k=12)\n# X_train_fs_anova = fs_cat.fit_transform(inputs_cat, y_train)\n# selected_anova = pd.DataFrame(X_train_fs_anova, columns=fs_cat.get_feature_names_out())","metadata":{"trusted":true},"execution_count":21,"outputs":[{"execution_count":21,"output_type":"execute_result","data":{"text/plain":"     ExterQual KitchenQual BsmtQual MasVnrType GarageFinish SaleType  \\\nId                                                                     \n708          3           3        3      Brick          Fin       WD   \n1237         3           3        3      Stone          RFn       WD   \n962          2           2        3      Brick          Fin       WD   \n255          2           2        2      Brick          RFn       WD   \n1004         2           2        2      Brick          Unf       WD   \n...        ...         ...      ...        ...          ...      ...   \n348          2           2        2      Brick          Unf       WD   \n1101         2           1        2      Brick          Unf       WD   \n14           3           3        3      Stone          RFn   Not WD   \n1426         3           3        2      Stone          Unf       WD   \n132          3           3        3      Brick          RFn       WD   \n\n     GarageArea_cat SaleCondition FireplaceQu MSZoning OpenPorchSF_cat  \\\nId                                                                       \n708             2.0        Normal           3       RL             1.0   \n1237            1.0        Normal           0       RL             1.0   \n962             3.0        Normal           2       RL             2.0   \n255             0.0        Normal           0       RL             0.0   \n1004            2.0        Normal           0       RL             0.0   \n...             ...           ...         ...      ...             ...   \n348             2.0        Normal           3       RL             1.0   \n1101            0.0        Normal           0       RL             0.0   \n14              3.0    Not Normal           3       RL             1.0   \n1426            2.0        Normal           0       RL             1.0   \n132             1.0        Normal           2       RL             1.0   \n\n     MasVnrArea_cat  \nId                   \n708             1.0  \n1237            0.0  \n962             1.0  \n255             0.0  \n1004            1.0  \n...             ...  \n348             0.0  \n1101            0.0  \n14              1.0  \n1426            1.0  \n132             0.0  \n\n[1001 rows x 12 columns]","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>ExterQual</th>\n      <th>KitchenQual</th>\n      <th>BsmtQual</th>\n      <th>MasVnrType</th>\n      <th>GarageFinish</th>\n      <th>SaleType</th>\n      <th>GarageArea_cat</th>\n      <th>SaleCondition</th>\n      <th>FireplaceQu</th>\n      <th>MSZoning</th>\n      <th>OpenPorchSF_cat</th>\n      <th>MasVnrArea_cat</th>\n    </tr>\n    <tr>\n      <th>Id</th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>708</th>\n      <td>3</td>\n      <td>3</td>\n      <td>3</td>\n      <td>Brick</td>\n      <td>Fin</td>\n      <td>WD</td>\n      <td>2.0</td>\n      <td>Normal</td>\n      <td>3</td>\n      <td>RL</td>\n      <td>1.0</td>\n      <td>1.0</td>\n    </tr>\n    <tr>\n      <th>1237</th>\n      <td>3</td>\n      <td>3</td>\n      <td>3</td>\n      <td>Stone</td>\n      <td>RFn</td>\n      <td>WD</td>\n      <td>1.0</td>\n      <td>Normal</td>\n      <td>0</td>\n      <td>RL</td>\n      <td>1.0</td>\n      <td>0.0</td>\n    </tr>\n    <tr>\n      <th>962</th>\n      <td>2</td>\n      <td>2</td>\n      <td>3</td>\n      <td>Brick</td>\n      <td>Fin</td>\n      <td>WD</td>\n      <td>3.0</td>\n      <td>Normal</td>\n      <td>2</td>\n      <td>RL</td>\n      <td>2.0</td>\n      <td>1.0</td>\n    </tr>\n    <tr>\n      <th>255</th>\n      <td>2</td>\n      <td>2</td>\n      <td>2</td>\n      <td>Brick</td>\n      <td>RFn</td>\n      <td>WD</td>\n      <td>0.0</td>\n      <td>Normal</td>\n      <td>0</td>\n      <td>RL</td>\n      <td>0.0</td>\n      <td>0.0</td>\n    </tr>\n    <tr>\n      <th>1004</th>\n      <td>2</td>\n      <td>2</td>\n      <td>2</td>\n      <td>Brick</td>\n      <td>Unf</td>\n      <td>WD</td>\n      <td>2.0</td>\n      <td>Normal</td>\n      <td>0</td>\n      <td>RL</td>\n      <td>0.0</td>\n      <td>1.0</td>\n    </tr>\n    <tr>\n      <th>...</th>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n    </tr>\n    <tr>\n      <th>348</th>\n      <td>2</td>\n      <td>2</td>\n      <td>2</td>\n      <td>Brick</td>\n      <td>Unf</td>\n      <td>WD</td>\n      <td>2.0</td>\n      <td>Normal</td>\n      <td>3</td>\n      <td>RL</td>\n      <td>1.0</td>\n      <td>0.0</td>\n    </tr>\n    <tr>\n      <th>1101</th>\n      <td>2</td>\n      <td>1</td>\n      <td>2</td>\n      <td>Brick</td>\n      <td>Unf</td>\n      <td>WD</td>\n      <td>0.0</td>\n      <td>Normal</td>\n      <td>0</td>\n      <td>RL</td>\n      <td>0.0</td>\n      <td>0.0</td>\n    </tr>\n    <tr>\n      <th>14</th>\n      <td>3</td>\n      <td>3</td>\n      <td>3</td>\n      <td>Stone</td>\n      <td>RFn</td>\n      <td>Not WD</td>\n      <td>3.0</td>\n      <td>Not Normal</td>\n      <td>3</td>\n      <td>RL</td>\n      <td>1.0</td>\n      <td>1.0</td>\n    </tr>\n    <tr>\n      <th>1426</th>\n      <td>3</td>\n      <td>3</td>\n      <td>2</td>\n      <td>Stone</td>\n      <td>Unf</td>\n      <td>WD</td>\n      <td>2.0</td>\n      <td>Normal</td>\n      <td>0</td>\n      <td>RL</td>\n      <td>1.0</td>\n      <td>1.0</td>\n    </tr>\n    <tr>\n      <th>132</th>\n      <td>3</td>\n      <td>3</td>\n      <td>3</td>\n      <td>Brick</td>\n      <td>RFn</td>\n      <td>WD</td>\n      <td>1.0</td>\n      <td>Normal</td>\n      <td>2</td>\n      <td>RL</td>\n      <td>1.0</td>\n      <td>0.0</td>\n    </tr>\n  </tbody>\n</table>\n<p>1001 rows × 12 columns</p>\n</div>"},"metadata":{}}]},{"cell_type":"markdown","source":"### Input: Categorical | Output: Numerical   \n#### Method 1-2: Mutual Information Score","metadata":{}},{"cell_type":"code","source":"from sklearn.feature_selection import mutual_info_classif\n\n# configure to select all features\nfs_cat = SelectKBest(score_func=mutual_info_classif, k='all')\n\n# learn relationship from training data\nfs_cat.fit(inputs_cat, y_train)\n\nfs_cat.get_feature_names_out()\nfs_cat.scores_","metadata":{"execution":{"iopub.status.busy":"2024-03-03T18:20:48.496665Z","iopub.execute_input":"2024-03-03T18:20:48.497078Z","iopub.status.idle":"2024-03-03T18:20:57.411667Z","shell.execute_reply.started":"2024-03-03T18:20:48.497046Z","shell.execute_reply":"2024-03-03T18:20:57.410268Z"},"trusted":true},"execution_count":22,"outputs":[{"execution_count":22,"output_type":"execute_result","data":{"text/plain":"array([0.35666918, 2.27313365, 3.36304201, 1.43536262, 0.01371284,\n       1.37428307, 0.        , 0.22580451, 0.06119222, 0.00468278,\n       0.61650533, 0.0475631 , 0.5200486 , 0.4893905 , 0.        ,\n       2.71436311, 2.83062709, 1.41932924, 1.7451491 , 2.94253698,\n       1.42900082, 0.38319606, 2.53503613, 1.6237094 , 3.41998136,\n       2.84077736, 2.34069729, 3.01242288, 0.44014162, 1.36689737,\n       0.98721809, 2.85488403, 3.03283698, 3.10287968, 2.11324069,\n       2.84051834, 0.        , 0.09726504, 0.30969877, 0.22031807,\n       0.50549623, 0.09111021, 0.28559751])"},"metadata":{}}]},{"cell_type":"code","source":"feature_importance = pd.DataFrame({'Feature': fs_cat.get_feature_names_out().tolist(),\n                      'Score': fs_cat.scores_.tolist()})\n\nfeature_importance = feature_importance.sort_values(by='Score', ascending=False).reset_index(drop=True)\n\nprint(feature_importance)\n\n\nimport matplotlib.pyplot as plt\n\n# plot the scores\nplt.bar([i for i in range(len(feature_importance.Score))], feature_importance.Score)\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2024-03-03T18:21:21.074857Z","iopub.execute_input":"2024-03-03T18:21:21.075271Z","iopub.status.idle":"2024-03-03T18:21:21.404084Z","shell.execute_reply.started":"2024-03-03T18:21:21.075238Z","shell.execute_reply":"2024-03-03T18:21:21.402503Z"},"trusted":true},"execution_count":23,"outputs":[{"name":"stdout","text":"            Feature     Score\n0        CentralAir  3.419981\n1             Alley  3.363042\n2        PavedDrive  3.102880\n3        GarageCond  3.032837\n4        Functional  3.012423\n5          BsmtCond  2.942537\n6        GarageQual  2.854884\n7        Electrical  2.840777\n8          SaleType  2.840518\n9         ExterCond  2.830627\n10        ExterQual  2.714363\n11     BsmtFinType2  2.535036\n12      KitchenQual  2.340697\n13         MSZoning  2.273134\n14            Fence  2.113241\n15         BsmtQual  1.745149\n16        HeatingQC  1.623709\n17         LotShape  1.435363\n18     BsmtExposure  1.429001\n19       Foundation  1.419329\n20        LotConfig  1.374283\n21       GarageType  1.366897\n22     GarageFinish  0.987218\n23       HouseStyle  0.616505\n24      Exterior1st  0.520049\n25   GarageArea_cat  0.505496\n26      Exterior2nd  0.489390\n27      FireplaceQu  0.440142\n28     BsmtFinType1  0.383196\n29       MSSubClass  0.356669\n30   BsmtFinSF1_cat  0.309699\n31  OpenPorchSF_cat  0.285598\n32     Neighborhood  0.225805\n33     2ndFlrSF_cat  0.220318\n34   MasVnrArea_cat  0.097265\n35   WoodDeckSF_cat  0.091110\n36       Condition1  0.061192\n37        RoofStyle  0.047563\n38      LandContour  0.013713\n39         BldgType  0.004683\n40       MasVnrType  0.000000\n41        LandSlope  0.000000\n42    SaleCondition  0.000000\n","output_type":"stream"},{"output_type":"display_data","data":{"text/plain":"<Figure size 640x480 with 1 Axes>","image/png":"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"},"metadata":{}}]},{"cell_type":"code","source":"fs_mutual_cls = feature_importance.Feature[:21].tolist()\nselected_mutual_cls = X_train[fs_mutual_cls]\n\n# Or:\n\n# fs_cat = SelectKBest(score_func=f_classif, k=21)\n# X_train_fs_mutual_cls = fs_cat.fit_transform(inputs_cat, y_train)\n# selected_mutual_cls = pd.DataFrame(X_train_mutual_cls, columns=fs_cat.get_feature_names_out())","metadata":{"trusted":true},"execution_count":25,"outputs":[{"execution_count":25,"output_type":"execute_result","data":{"text/plain":"     CentralAir         Alley PavedDrive GarageCond Functional BsmtCond  \\\nId                                                                        \n708           Y  non-existent          Y          2        Typ        2   \n1237          Y  non-existent          Y          2        Typ        2   \n962           Y  non-existent          Y          2        Typ        3   \n255           Y  non-existent          Y          2        Typ        2   \n1004          Y  non-existent          Y          2        Typ        2   \n...         ...           ...        ...        ...        ...      ...   \n348           Y  non-existent          Y          2        Typ        2   \n1101          N  non-existent          N          2        Typ        1   \n14            Y  non-existent          Y          2        Typ        2   \n1426          Y  non-existent          Y          2        Typ        2   \n132           Y  non-existent          Y          2        Typ        2   \n\n     GarageQual    Electrical SaleType ExterCond  ... BsmtFinType2  \\\nId                                                ...                \n708           2      Standard       WD         2  ...            1   \n1237          2      Standard       WD         2  ...            1   \n962           2      Standard       WD         3  ...            1   \n255           2      Standard       WD         3  ...            1   \n1004          2      Standard       WD         2  ...            1   \n...         ...           ...      ...       ...  ...          ...   \n348           2  Not Standard       WD         2  ...            1   \n1101          2  Not Standard       WD         2  ...            1   \n14            2      Standard   Not WD         2  ...            1   \n1426          2      Standard       WD         2  ...            1   \n132           2      Standard       WD         2  ...            1   \n\n     KitchenQual MSZoning         Fence BsmtQual HeatingQC LotShape  \\\nId                                                                    \n708            3       RL  non-existent        3         3      Reg   \n1237           3       RL  non-existent        3         3      Reg   \n962            2       RL  non-existent        3         2       IR   \n255            2       RL  non-existent        2         2      Reg   \n1004           2       RL  non-existent        2         1       IR   \n...          ...      ...           ...      ...       ...      ...   \n348            2       RL  non-existent        2         3       IR   \n1101           1       RL  non-existent        2         2      Reg   \n14             3       RL  non-existent        3         3       IR   \n1426           3       RL  non-existent        2         3       IR   \n132            3       RL  non-existent        3         3       IR   \n\n     BsmtExposure Foundation LotConfig  \nId                                      \n708             1      PConc    Inside  \n1237            1      PConc    Inside  \n962             1     CBlock    Corner  \n255             1     CBlock    Inside  \n1004            1     CBlock    Corner  \n...           ...        ...       ...  \n348             1     CBlock    Inside  \n1101            1     CBlock    Inside  \n14              3      PConc    Inside  \n1426            1     CBlock    Inside  \n132             1      PConc    Corner  \n\n[1001 rows x 21 columns]","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>CentralAir</th>\n      <th>Alley</th>\n      <th>PavedDrive</th>\n      <th>GarageCond</th>\n      <th>Functional</th>\n      <th>BsmtCond</th>\n      <th>GarageQual</th>\n      <th>Electrical</th>\n      <th>SaleType</th>\n      <th>ExterCond</th>\n      <th>...</th>\n      <th>BsmtFinType2</th>\n      <th>KitchenQual</th>\n      <th>MSZoning</th>\n      <th>Fence</th>\n      <th>BsmtQual</th>\n      <th>HeatingQC</th>\n      <th>LotShape</th>\n      <th>BsmtExposure</th>\n      <th>Foundation</th>\n      <th>LotConfig</th>\n    </tr>\n    <tr>\n      <th>Id</th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>708</th>\n      <td>Y</td>\n      <td>non-existent</td>\n      <td>Y</td>\n      <td>2</td>\n      <td>Typ</td>\n      <td>2</td>\n      <td>2</td>\n      <td>Standard</td>\n      <td>WD</td>\n      <td>2</td>\n      <td>...</td>\n      <td>1</td>\n      <td>3</td>\n      <td>RL</td>\n      <td>non-existent</td>\n      <td>3</td>\n      <td>3</td>\n      <td>Reg</td>\n      <td>1</td>\n      <td>PConc</td>\n      <td>Inside</td>\n    </tr>\n    <tr>\n      <th>1237</th>\n      <td>Y</td>\n      <td>non-existent</td>\n      <td>Y</td>\n      <td>2</td>\n      <td>Typ</td>\n      <td>2</td>\n      <td>2</td>\n      <td>Standard</td>\n      <td>WD</td>\n      <td>2</td>\n      <td>...</td>\n      <td>1</td>\n      <td>3</td>\n      <td>RL</td>\n      <td>non-existent</td>\n      <td>3</td>\n      <td>3</td>\n      <td>Reg</td>\n      <td>1</td>\n      <td>PConc</td>\n      <td>Inside</td>\n    </tr>\n    <tr>\n      <th>962</th>\n      <td>Y</td>\n      <td>non-existent</td>\n      <td>Y</td>\n      <td>2</td>\n      <td>Typ</td>\n      <td>3</td>\n      <td>2</td>\n      <td>Standard</td>\n      <td>WD</td>\n      <td>3</td>\n      <td>...</td>\n      <td>1</td>\n      <td>2</td>\n      <td>RL</td>\n      <td>non-existent</td>\n      <td>3</td>\n      <td>2</td>\n      <td>IR</td>\n      <td>1</td>\n      <td>CBlock</td>\n      <td>Corner</td>\n    </tr>\n    <tr>\n      <th>255</th>\n      <td>Y</td>\n      <td>non-existent</td>\n      <td>Y</td>\n      <td>2</td>\n      <td>Typ</td>\n      <td>2</td>\n      <td>2</td>\n      <td>Standard</td>\n      <td>WD</td>\n      <td>3</td>\n      <td>...</td>\n      <td>1</td>\n      <td>2</td>\n      <td>RL</td>\n      <td>non-existent</td>\n      <td>2</td>\n      <td>2</td>\n      <td>Reg</td>\n      <td>1</td>\n      <td>CBlock</td>\n      <td>Inside</td>\n    </tr>\n    <tr>\n      <th>1004</th>\n      <td>Y</td>\n      <td>non-existent</td>\n      <td>Y</td>\n      <td>2</td>\n      <td>Typ</td>\n      <td>2</td>\n      <td>2</td>\n      <td>Standard</td>\n      <td>WD</td>\n      <td>2</td>\n      <td>...</td>\n      <td>1</td>\n      <td>2</td>\n      <td>RL</td>\n      <td>non-existent</td>\n      <td>2</td>\n      <td>1</td>\n      <td>IR</td>\n      <td>1</td>\n      <td>CBlock</td>\n      <td>Corner</td>\n    </tr>\n    <tr>\n      <th>...</th>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n    </tr>\n    <tr>\n      <th>348</th>\n      <td>Y</td>\n      <td>non-existent</td>\n      <td>Y</td>\n      <td>2</td>\n      <td>Typ</td>\n      <td>2</td>\n      <td>2</td>\n      <td>Not Standard</td>\n      <td>WD</td>\n      <td>2</td>\n      <td>...</td>\n      <td>1</td>\n      <td>2</td>\n      <td>RL</td>\n      <td>non-existent</td>\n      <td>2</td>\n      <td>3</td>\n      <td>IR</td>\n      <td>1</td>\n      <td>CBlock</td>\n      <td>Inside</td>\n    </tr>\n    <tr>\n      <th>1101</th>\n      <td>N</td>\n      <td>non-existent</td>\n      <td>N</td>\n      <td>2</td>\n      <td>Typ</td>\n      <td>1</td>\n      <td>2</td>\n      <td>Not Standard</td>\n      <td>WD</td>\n      <td>2</td>\n      <td>...</td>\n      <td>1</td>\n      <td>1</td>\n      <td>RL</td>\n      <td>non-existent</td>\n      <td>2</td>\n      <td>2</td>\n      <td>Reg</td>\n      <td>1</td>\n      <td>CBlock</td>\n      <td>Inside</td>\n    </tr>\n    <tr>\n      <th>14</th>\n      <td>Y</td>\n      <td>non-existent</td>\n      <td>Y</td>\n      <td>2</td>\n      <td>Typ</td>\n      <td>2</td>\n      <td>2</td>\n      <td>Standard</td>\n      <td>Not WD</td>\n      <td>2</td>\n      <td>...</td>\n      <td>1</td>\n      <td>3</td>\n      <td>RL</td>\n      <td>non-existent</td>\n      <td>3</td>\n      <td>3</td>\n      <td>IR</td>\n      <td>3</td>\n      <td>PConc</td>\n      <td>Inside</td>\n    </tr>\n    <tr>\n      <th>1426</th>\n      <td>Y</td>\n      <td>non-existent</td>\n      <td>Y</td>\n      <td>2</td>\n      <td>Typ</td>\n      <td>2</td>\n      <td>2</td>\n      <td>Standard</td>\n      <td>WD</td>\n      <td>2</td>\n      <td>...</td>\n      <td>1</td>\n      <td>3</td>\n      <td>RL</td>\n      <td>non-existent</td>\n      <td>2</td>\n      <td>3</td>\n      <td>IR</td>\n      <td>1</td>\n      <td>CBlock</td>\n      <td>Inside</td>\n    </tr>\n    <tr>\n      <th>132</th>\n      <td>Y</td>\n      <td>non-existent</td>\n      <td>Y</td>\n      <td>2</td>\n      <td>Typ</td>\n      <td>2</td>\n      <td>2</td>\n      <td>Standard</td>\n      <td>WD</td>\n      <td>2</td>\n      <td>...</td>\n      <td>1</td>\n      <td>3</td>\n      <td>RL</td>\n      <td>non-existent</td>\n      <td>3</td>\n      <td>3</td>\n      <td>IR</td>\n      <td>1</td>\n      <td>PConc</td>\n      <td>Corner</td>\n    </tr>\n  </tbody>\n</table>\n<p>1001 rows × 21 columns</p>\n</div>"},"metadata":{}}]},{"cell_type":"code","source":"filtered_fs = set(fs_f_regressor + fs_mutual_reg + fs_anova + fs_mutual_cls)\n\nfiltered_fs_list = list(filtered_fs)\n\nX_train_filterd_fs = X_train[filtered_fs_list]\n\nlen(filtered_fs_list)","metadata":{"execution":{"iopub.status.busy":"2024-03-03T18:26:40.140212Z","iopub.execute_input":"2024-03-03T18:26:40.140942Z","iopub.status.idle":"2024-03-03T18:26:40.152059Z","shell.execute_reply.started":"2024-03-03T18:26:40.140907Z","shell.execute_reply":"2024-03-03T18:26:40.150808Z"},"trusted":true},"execution_count":26,"outputs":[{"execution_count":26,"output_type":"execute_result","data":{"text/plain":"41"},"metadata":{}}]},{"cell_type":"markdown","source":"### Input: Numerical | Output: Categorical   \nThis is a regression predictive modeling problem with categorical input variables. This is a\nstrange example of a regression problem (e.g. you would not encounter it often). Nevertheless,\nyou can use the same Numerical Input, Categorical Output methods (described above), but in\nreverse.","metadata":{}},{"cell_type":"markdown","source":"### Input: Categorical | Output: Categorical  \nThis is a classification predictive modeling problem with categorical input variables. The most\ncommon correlation measure for categorical data is the chi-squared test. You can also use\nmutual information (information gain) from the field of information theory.\n* Chi-Squared test (contingency tables)\n* Mutual Information","metadata":{}},{"cell_type":"markdown","source":"### 2- Wrapper Method  \nwe have looked at measures of statistical correlation that are specific to numerical and\ncategorical data types. It is **rare** that we have a dataset with just a single input variable data\ntype. One approach to handling different input variable data types is to **separately select**\nnumerical input variables and categorical input variables using appropriate metrics.  \n\nAnother approach is to use a **wrapper method** that performs a search through different\ncombinations or subsets of input features based on the effect they have on model quality. Simple\nmethods might create a tree of all possible combinations of input features and navigate the\ngraph based on the pay-off, e.g. using a best-first tree searching algorithm. Alternately, a\n**stochastic global search algorithm** can be used such as a genetic algorithm or simulated annealing.\nAlthough effective, these approaches can be **computationally very expensive**, specially for large\ntraining datasets and sophisticated models.\n* Tree-Searching Methods (depth-first, breadth-first, etc.)\n* Stochastic Global Search (simulated annealing, genetic algorithm)  \n\n**Simpler methods** involve systematically adding or removing features from the model until no\nfurther improvement is seen. This includes so-called step-wise models (e.g. step-wise regression)\nand RFE.\n* Step-Wise Models\n* RFE (Recursive Feature Elimination)","metadata":{}},{"cell_type":"code","source":"from sklearn.preprocessing import  OneHotEncoder\nfrom sklearn.preprocessing import  MinMaxScaler\n\nnominal = ['MSZoning','Alley','LotShape','LandContour','LotConfig','LandSlope','Neighborhood', 'Condition1','BldgType',\n           'HouseStyle', 'RoofStyle','Exterior1st', 'Exterior2nd', 'MasVnrType','Foundation','CentralAir','Electrical',\n           'Functional','GarageType','GarageFinish','PavedDrive','Fence','SaleType', 'SaleCondition']\n\nother = [name for name in X_train.columns if name not in nominal]\n\n\n# Apply One-Hot encoding to Nominal columns\n\none_hot_encoder = OneHotEncoder(drop='first', handle_unknown='ignore', sparse_output=False)\none_hot_encoded = one_hot_encoder.fit_transform(X_train[nominal])\n\none_hot_encoded_df = pd.DataFrame(one_hot_encoded, columns=one_hot_encoder.get_feature_names_out())\n\nX_train_encoded = pd.concat([X_train[other].reset_index(), one_hot_encoded_df], axis=1) \nX_train_encoded.set_index('Id', inplace=True)\n\n# Apply Z-score scaling to columns\nscaler = MinMaxScaler()\nX_train_encoded_array = scaler.fit_transform(X_train_encoded.iloc[:,:])\nX_train_encoded = pd.DataFrame(X_train_encoded_array, columns=X_train_encoded.columns)","metadata":{"execution":{"iopub.status.busy":"2024-03-03T18:46:09.084176Z","iopub.execute_input":"2024-03-03T18:46:09.084567Z","iopub.status.idle":"2024-03-03T18:46:09.155180Z","shell.execute_reply.started":"2024-03-03T18:46:09.084538Z","shell.execute_reply":"2024-03-03T18:46:09.154132Z"},"trusted":true},"execution_count":27,"outputs":[]},{"cell_type":"code","source":"# !pip install --upgrade scikit-learn","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from sklearn.feature_selection import RFECV\nfrom sklearn.tree import DecisionTreeRegressor\n\n# configure to select all features\nselector = RFECV(estimator=DecisionTreeRegressor(random_state=29), step=1, min_features_to_select=10, cv=5, n_jobs=-1)\n\n\n# learn relationship from training data\nselector.fit(X_train_encoded, y_train)\n\nselector.get_support()\n\nprint(f\"Optimal number of features: {selector.n_features_}\")\n\nprint(\"=\"*50)\n\nwrapper_fs = selector.get_feature_names_out()\nprint(\"Wrapper Optimal Feature List:\")\nprint(wrapper_fs)\n\nX_train_encoded_wrapper_fs = X_train_encoded[wrapper_fs]","metadata":{"trusted":true},"execution_count":33,"outputs":[{"execution_count":33,"output_type":"execute_result","data":{"text/plain":"      MSSubClass  OverallQual  OverallCond  ExterQual  BsmtQual  BsmtExposure  \\\n0            1.0     0.777778        0.500        1.0  1.000000          0.25   \n1            1.0     0.666667        0.500        1.0  1.000000          0.25   \n2            0.5     0.555556        0.750        0.5  1.000000          0.25   \n3            0.0     0.444444        0.625        0.5  0.666667          0.25   \n4            0.5     0.444444        0.625        0.5  0.666667          0.25   \n...          ...          ...          ...        ...       ...           ...   \n996          0.0     0.555556        0.500        0.5  0.666667          0.25   \n997          0.0     0.111111        0.500        0.5  0.666667          0.25   \n998          0.0     0.666667        0.500        1.0  1.000000          0.75   \n999          0.0     0.555556        0.625        1.0  0.666667          0.25   \n1000         0.5     0.555556        0.500        1.0  1.000000          0.25   \n\n      BsmtFinType1  BsmtFinType2  BsmtFullBath  HalfBath  ...  \\\n0         1.000000      0.166667      0.333333       0.0  ...   \n1         0.166667      0.166667      0.000000       0.5  ...   \n2         0.833333      0.166667      0.333333       0.5  ...   \n3         0.500000      0.166667      0.333333       0.0  ...   \n4         0.166667      0.166667      0.000000       0.0  ...   \n...            ...           ...           ...       ...  ...   \n996       0.666667      0.166667      0.333333       0.0  ...   \n997       0.500000      0.166667      0.000000       0.0  ...   \n998       0.166667      0.166667      0.000000       0.0  ...   \n999       0.166667      0.166667      0.000000       0.0  ...   \n1000      1.000000      0.166667      0.333333       0.5  ...   \n\n      Neighborhood_Gilbert  Neighborhood_NAmes  Neighborhood_Sawyer  \\\n0                      0.0                 0.0                  0.0   \n1                      0.0                 0.0                  0.0   \n2                      0.0                 0.0                  0.0   \n3                      0.0                 1.0                  0.0   \n4                      0.0                 0.0                  0.0   \n...                    ...                 ...                  ...   \n996                    0.0                 1.0                  0.0   \n997                    0.0                 0.0                  0.0   \n998                    0.0                 0.0                  0.0   \n999                    0.0                 1.0                  0.0   \n1000                   1.0                 0.0                  0.0   \n\n      RoofStyle_Not Gable  Exterior2nd_Stucco  Functional_Typ  \\\n0                     1.0                 0.0             1.0   \n1                     0.0                 0.0             1.0   \n2                     0.0                 0.0             1.0   \n3                     0.0                 0.0             1.0   \n4                     0.0                 0.0             1.0   \n...                   ...                 ...             ...   \n996                   0.0                 0.0             1.0   \n997                   0.0                 0.0             1.0   \n998                   0.0                 0.0             1.0   \n999                   1.0                 0.0             1.0   \n1000                  0.0                 0.0             1.0   \n\n      GarageType_Attchd  GarageType_Basment  Fence_non-existent  \\\n0                   1.0                 0.0                 1.0   \n1                   0.0                 0.0                 1.0   \n2                   1.0                 0.0                 1.0   \n3                   1.0                 0.0                 1.0   \n4                   0.0                 0.0                 1.0   \n...                 ...                 ...                 ...   \n996                 1.0                 0.0                 1.0   \n997                 0.0                 0.0                 1.0   \n998                 1.0                 0.0                 1.0   \n999                 0.0                 0.0                 1.0   \n1000                0.0                 0.0                 1.0   \n\n      SaleCondition_Not Normal  \n0                          0.0  \n1                          0.0  \n2                          0.0  \n3                          0.0  \n4                          0.0  \n...                        ...  \n996                        0.0  \n997                        0.0  \n998                        1.0  \n999                        0.0  \n1000                       0.0  \n\n[1001 rows x 44 columns]","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>MSSubClass</th>\n      <th>OverallQual</th>\n      <th>OverallCond</th>\n      <th>ExterQual</th>\n      <th>BsmtQual</th>\n      <th>BsmtExposure</th>\n      <th>BsmtFinType1</th>\n      <th>BsmtFinType2</th>\n      <th>BsmtFullBath</th>\n      <th>HalfBath</th>\n      <th>...</th>\n      <th>Neighborhood_Gilbert</th>\n      <th>Neighborhood_NAmes</th>\n      <th>Neighborhood_Sawyer</th>\n      <th>RoofStyle_Not Gable</th>\n      <th>Exterior2nd_Stucco</th>\n      <th>Functional_Typ</th>\n      <th>GarageType_Attchd</th>\n      <th>GarageType_Basment</th>\n      <th>Fence_non-existent</th>\n      <th>SaleCondition_Not Normal</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>1.0</td>\n      <td>0.777778</td>\n      <td>0.500</td>\n      <td>1.0</td>\n      <td>1.000000</td>\n      <td>0.25</td>\n      <td>1.000000</td>\n      <td>0.166667</td>\n      <td>0.333333</td>\n      <td>0.0</td>\n      <td>...</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>1.0</td>\n      <td>0.0</td>\n      <td>1.0</td>\n      <td>1.0</td>\n      <td>0.0</td>\n      <td>1.0</td>\n      <td>0.0</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>1.0</td>\n      <td>0.666667</td>\n      <td>0.500</td>\n      <td>1.0</td>\n      <td>1.000000</td>\n      <td>0.25</td>\n      <td>0.166667</td>\n      <td>0.166667</td>\n      <td>0.000000</td>\n      <td>0.5</td>\n      <td>...</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>1.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>1.0</td>\n      <td>0.0</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>0.5</td>\n      <td>0.555556</td>\n      <td>0.750</td>\n      <td>0.5</td>\n      <td>1.000000</td>\n      <td>0.25</td>\n      <td>0.833333</td>\n      <td>0.166667</td>\n      <td>0.333333</td>\n      <td>0.5</td>\n      <td>...</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>1.0</td>\n      <td>1.0</td>\n      <td>0.0</td>\n      <td>1.0</td>\n      <td>0.0</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>0.0</td>\n      <td>0.444444</td>\n      <td>0.625</td>\n      <td>0.5</td>\n      <td>0.666667</td>\n      <td>0.25</td>\n      <td>0.500000</td>\n      <td>0.166667</td>\n      <td>0.333333</td>\n      <td>0.0</td>\n      <td>...</td>\n      <td>0.0</td>\n      <td>1.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>1.0</td>\n      <td>1.0</td>\n      <td>0.0</td>\n      <td>1.0</td>\n      <td>0.0</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>0.5</td>\n      <td>0.444444</td>\n      <td>0.625</td>\n      <td>0.5</td>\n      <td>0.666667</td>\n      <td>0.25</td>\n      <td>0.166667</td>\n      <td>0.166667</td>\n      <td>0.000000</td>\n      <td>0.0</td>\n      <td>...</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>1.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>1.0</td>\n      <td>0.0</td>\n    </tr>\n    <tr>\n      <th>...</th>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n      <td>...</td>\n    </tr>\n    <tr>\n      <th>996</th>\n      <td>0.0</td>\n      <td>0.555556</td>\n      <td>0.500</td>\n      <td>0.5</td>\n      <td>0.666667</td>\n      <td>0.25</td>\n      <td>0.666667</td>\n      <td>0.166667</td>\n      <td>0.333333</td>\n      <td>0.0</td>\n      <td>...</td>\n      <td>0.0</td>\n      <td>1.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>1.0</td>\n      <td>1.0</td>\n      <td>0.0</td>\n      <td>1.0</td>\n      <td>0.0</td>\n    </tr>\n    <tr>\n      <th>997</th>\n      <td>0.0</td>\n      <td>0.111111</td>\n      <td>0.500</td>\n      <td>0.5</td>\n      <td>0.666667</td>\n      <td>0.25</td>\n      <td>0.500000</td>\n      <td>0.166667</td>\n      <td>0.000000</td>\n      <td>0.0</td>\n      <td>...</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>1.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>1.0</td>\n      <td>0.0</td>\n    </tr>\n    <tr>\n      <th>998</th>\n      <td>0.0</td>\n      <td>0.666667</td>\n      <td>0.500</td>\n      <td>1.0</td>\n      <td>1.000000</td>\n      <td>0.75</td>\n      <td>0.166667</td>\n      <td>0.166667</td>\n      <td>0.000000</td>\n      <td>0.0</td>\n      <td>...</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>1.0</td>\n      <td>1.0</td>\n      <td>0.0</td>\n      <td>1.0</td>\n      <td>1.0</td>\n    </tr>\n    <tr>\n      <th>999</th>\n      <td>0.0</td>\n      <td>0.555556</td>\n      <td>0.625</td>\n      <td>1.0</td>\n      <td>0.666667</td>\n      <td>0.25</td>\n      <td>0.166667</td>\n      <td>0.166667</td>\n      <td>0.000000</td>\n      <td>0.0</td>\n      <td>...</td>\n      <td>0.0</td>\n      <td>1.0</td>\n      <td>0.0</td>\n      <td>1.0</td>\n      <td>0.0</td>\n      <td>1.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>1.0</td>\n      <td>0.0</td>\n    </tr>\n    <tr>\n      <th>1000</th>\n      <td>0.5</td>\n      <td>0.555556</td>\n      <td>0.500</td>\n      <td>1.0</td>\n      <td>1.000000</td>\n      <td>0.25</td>\n      <td>1.000000</td>\n      <td>0.166667</td>\n      <td>0.333333</td>\n      <td>0.5</td>\n      <td>...</td>\n      <td>1.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>1.0</td>\n      <td>0.0</td>\n      <td>0.0</td>\n      <td>1.0</td>\n      <td>0.0</td>\n    </tr>\n  </tbody>\n</table>\n<p>1001 rows × 44 columns</p>\n</div>"},"metadata":{}}]},{"cell_type":"markdown","source":"### 3- Intrinsic (Embedded Method)  \nFinally, there are some machine learning algorithms that perform feature selection **automatically** as part of learning the model. We might refer to these techniques as intrinsic feature selection methods. This includes algorithms such as **penalized** regression models like **Lasso** and **decision trees**, including ensembles of decision trees like random forest.","metadata":{}},{"cell_type":"code","source":"X_train_encoded_wrapper_fs.to_csv('/kaggle/working/X_train_encoded_wrapper_fs.csv')","metadata":{"execution":{"iopub.status.busy":"2024-03-03T18:51:25.064036Z","iopub.execute_input":"2024-03-03T18:51:25.065410Z","iopub.status.idle":"2024-03-03T18:51:25.156972Z","shell.execute_reply.started":"2024-03-03T18:51:25.065361Z","shell.execute_reply":"2024-03-03T18:51:25.155606Z"},"trusted":true},"execution_count":35,"outputs":[]},{"cell_type":"markdown","source":"This is the text from the book **'D⁠a⁠t⁠a⁠ ⁠P⁠r⁠e⁠p⁠a⁠r⁠a⁠t⁠i⁠on⁠ ⁠f⁠o⁠r⁠ M⁠a⁠c⁠h⁠i⁠n⁠e⁠ ⁠L⁠e⁠a⁠r⁠n⁠i⁠n⁠g' by Jason Brownlee.**","metadata":{}}]}