{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Feature Selection\n", "\n", "This user guide details how dnamite can be used for feature selection / feature-sparse prediction." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Why Bother with Feature Selection?\n", "\n", "When training a black-box machine learning model, it is common practice to use all available features even for high-dimensional datasets, as modern ML models can easily handle many features. However, there are some settings where feature selection is very useful:\n", "\n", "1) **Interpretability**: When training a glass-box model, we need to care about both predictive performance as well as accurate and utility of explanations. While glass-box models often have good accurate on high-dimensional datasets, model explanations are much more likely to be impaired in such settings. In particular, when sets of correlated features are all used in the same dataset, additive models run into identifiability issues with how to spread contribution across the feature set. This tends to cause increased variance in feature importances and shape functions, reducing confidence in the model's interpretations.\n", "\n", "2) **Simplicity**: Models that use less features are inherently simpler models, which can help with both interpretability and generalizability. For example, consider a model used to predict cancer risk which uses hundreds of features. This model is harder to explain completely doctors and patients since even a glass-box model requires hundreds of shape function plots to describe completely. Also, if the model is deployed to a different medical network than is used during training, it's likely that several features are not available at the new medical network which increases missing values and thus decreases predictive performance.\n", "\n", "3) **Extreme High-Dimensionality**: In datasets that are extremely high-dimensional (e.g. more features than samples), feature selection can be beneficial even just for improving predictive accuracy along with the above reasons. One common example is genomic datasets where samples are expensive to collect but each sample can many thousands of features on the expression level of various genes. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example\n", "\n", "To showcase the capabilities of DNAMite for feature selection, we'll use the [Ames housing dataset](https://www.openml.org/search?type=data&status=active&id=42165). This dataset involves predicting house prices in Ames, Iowa, similar to the California housing dataset. Different than the California housing data, though, the Ames housing dataset contains a larger number of features, some of which are categorical, along with missing values. We'll demonstrate how dnamite can be used to fit a low-dimensional interpretable model to this dataset." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Dataset shape (1460, 79)\n" ] } ], "source": [ "import numpy as np \n", "import pandas as pd \n", "import matplotlib.pyplot as plt \n", "import seaborn as sns \n", "sns.set_theme()\n", "from sklearn.model_selection import train_test_split\n", "from sklearn.datasets import fetch_openml\n", "import torch\n", "device = \"cuda:0\" if torch.cuda.is_available() else \"cpu\"\n", "\n", "housing = fetch_openml(name=\"house_prices\", as_frame=True, parser='auto')\n", "data = housing[\"frame\"]\n", "X = data.drop([\"Id\", \"SalePrice\"], axis=1)\n", "y = data[\"SalePrice\"]\n", "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=10)\n", "print(\"Dataset shape\", X.shape)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We start by fitting a model to the complete dataset to serve as a performance benchmark. We set a few additional optional parameters to account for the fact that the Ames dataset has a smaller number of rows." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
DNAMiteRegressor(random_state=0)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "DNAMiteRegressor(random_state=0)" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from dnamite.models import DNAMiteRegressor\n", "\n", "model = DNAMiteRegressor(\n", " random_state=0,\n", " device=device,\n", ")\n", "model.fit(X_train, y_train)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "DNAMite RMSE: 26407.296509447955\n" ] } ], "source": [ "from sklearn.metrics import root_mean_squared_error\n", "preds = model.predict(X_test)\n", "print(\"DNAMite RMSE:\", root_mean_squared_error(y_test, preds))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The model achieves reasonably good test RMSE. Now let's look at the model's feature importances and shape functions." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "model.plot_feature_importances()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The most important feature is the overall quality of the house, while several features relative to the house's square footage are also important. " ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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hho1akCn01W4EJIk+TRLHhERERERERGRJ6pqhQCgWgVUteSrLA6xJwqACiUc/+KLL/D2229j//79EEJAURR06NABzz77LLp06VLmvjfffDPef/99tGvXDq1atSozM7wkSdi/f39FikhERERERERERCHA5+DTtm3bMGHCBCQnJ2PMmDGoVasWLl26hE8//RSPPvooVq5ciVtuucXj/k8//TQSExPt33NaQiIiIiIiIiKiyOVz8Ontt99G//79sXDhQqflTz/9NEaPHo358+dj06ZNHvcfM2aM/ftnnnnG148nIiIiIiIiIqIw4nPw6eTJk5g8ebLLckmSMHToUDz99NNl7n/u3DmfPq9+/fo+bU9ERERERERERKHD5+BT8+bNceDAAXTv3t1l3fnz59G4ceMy9+/Tp49PQ+0OHDjgaxGJiIiIiIiIiChEeBV8cuyt9Nhjj2H69OnQarW46667ULt2beTk5ODLL7/E4sWLMXfu3DKPNXv2bHvwKScnBwsWLEBaWhruuusu1KlTB1evXsWOHTvw5ZdfYsqUKZWoGhERERERERERBZtXwafSvZWEEJg7dy5effVVp+2EEEhPTy+zt9LgwYPt3z/99NMYNGgQXn75Zadt7rnnHrzyyiv45z//iQcffNCrihARERERERFRZPJ2ABUnNQtNXgWfHHsr+dM333yDt956y+263r1744MPPvD7ZxIRERERERFR8PgWXpBgEQKFRRav9yguVmEVvn4OBZJXwSfH3kr+lJCQgJ9//hndunVzWff9998jMTExIJ9LRERERERERFVPBXwKJAElwaQL2QWwWq3lbiuEgMlihdUKKApgMqswW1Soatn7mS3Xj61RAI1SfuRKUeRyt6ESXgWftmzZgl69eiEhIQFbtmwpd/tBgwZ59eEPPPAA3nrrLRQVFaF3795ISEjAb7/9hn/9619477338Pzzz3t1HCIiIiIiIiIKbZJUEng6nXUNqlp+IMnGKgCrVZS7nRACG786hvOXCypTTDSuHw+9VvFq2yi9BqL8olV7XgWfpkyZgg8++AAJCQnlJgGXJMnr4NNTTz2Fa9euYdWqVVi+fDmAkj8Wg8GAcePG4eGHH/bqOEREREREREThxN2QsOoSxFBVKyyq/ytrUUWlA09N6xtRO07v9fbV5XdWWV4Fn7744gvUqVPH/r2/SJKEyZMn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KCjQQ7WGZ0KjqqgDp40loqrkzbWf1yUioshUmed/fz4X8z5DRFWFwacQoQCIMwTm16EoMhJqROOKEFBV//esqgpVUQfeeImoqpV37ed1iYgoclX0+d+fz8W8zxBRVWHwKYRUxcU/Em4wkVAHIiIbXtOIiKqvyt4DeA8honDBgb5ERERERERERBQwDD4REREREREREVHAMPhEREREREREREQBw+ATEREREREREREFDINPREREREREREQUMAw+ERERERFR2CkuLsasWbOQlpaGjh074rnnnkN2dnaZ++zbtw/Dhw9H586d0aNHD7zwwgu4evVq1RSYiKgaY/CJiIiIiIjCzsyZM/Gf//wHixcvxt/+9jccP34cY8eO9bj9iRMn8Pjjj6Nly5b44IMPsGjRIvz8888YN25cFZaaiKh60gS7AERERERERL64cOECtmzZgmXLlqFLly4AgNdeew133nknfvjhB3Ts2NFlny1btqBu3bp44YUXIEkSAGDGjBl4+OGHcfr0aTRq1KhK60BEVJ2w5xMREREREYWVvXv3AgBuueUW+7ImTZogMTERmZmZbvcZOHAgXn31VXvgCYD9+5ycnACWloiI2POJiIiIiIjCyoULF5CQkAC9Xu+0vG7dusjKynK7T7NmzVyWrVixAnXq1EHLli0DUk4iIirB4JMfybKEmjVjgl0Mj4zGqGAXodJYh9DAOgRfKJZflqXyN4pQoX79dycU/4bCEc9j5fEc+kewz6O/7wFnzpzB7bff7nH9uHHjoNPpXJbr9XoUFxd79RmvvvoqvvzySyxZsgRarbZC5QzG9d/WcSs+PgpCVOlH+x3rEppYl9AUqnXx9vrP4JMfSZIERQndly9FCf9RlqxDaGAdgi/cyx9pQv367w7/hvyD57HyeA79I9LOY2JiIrZt2+Zx/VdffQWTyeSyvLi4GFFRZQfizGYzpk+fji1btuCll15C3759K1zOYF7/ZTlyfuesS2hiXUJTuNaFwSciIiIiIgopWq3W7TA5m0OHDuHq1aswmUxOPaAuXryIxMREj/vl5eVhzJgx2LNnD1577TXcddddfi03ERG5F54hMyIiIiIiqrY6d+4Mq9VqTzwOACdOnMCFCxeQkpLidh+TyYQnnngCP//8M1atWsXAExFRFWLwiYiIiIiIwkpiYiL69++PadOmYdeuXfj5558xYcIEpKamokOHDgBKgk2XLl2yD8/7y1/+gr179+Kll15C06ZNcenSJfuXuyF8RETkP5IQoZSqioiIiIiIqHwFBQWYPXs2Pv30UwBAz549MW3aNCQkJAAAdu3ahREjRmDNmjXo2rUr7rjjDpw8edLtsWzbEBFRYDD4REREREREREREAcNhd0REREREREREFDAMPhERERERERERUcAw+ERERERERERERAHD4BMREREREREREQUMg09ERERERERERBQwDD4REREREREREVHAMPhEREREREREREQBw+BTNXHixAl07NgRmzdvDnZRfHLhwgW0bNnS5Svc6rFlyxbcfffdaNu2Lfr3749//vOfwS6S13bt2uX2d9CyZUvcfvvtwS6e1ywWC9544w3cdttt6NixIx5++GH8+OOPwS6WT/Ly8jBjxgx0794dqampmDhxIi5fvhzsYlEI+Mtf/oLhw4c7LTtw4ACGDRuGDh06oE+fPlizZo3TeqvVijfffBM9evRAhw4d8Kc//QmnT5/26RiRxN05nDZtmst1r0+fPvb1PIclrl69iunTp6Nnz57o1KkTHnroIezZs8e+/rvvvsPgwYPRvn173Hnnnfjkk0+c9i8uLsasWbOQlpaGjh074rnnnkN2drbTNuUdIxKUdx5Hjhzp8vfo+DfL8xj+ynvu9cd1vSp48+z49ttvu13v6N1338Xtt9+Odu3aYejQodi/f3+V1yWS7q/u6rJjxw7cd9996NixI/r06YNXX30VRUVF9vV79+51+3vatWuXfZtgXFci6Z5dui7Dhw/3+P9ny5YtAABVVdGuXTuX9YsXL7Yf58yZM3jiiSfQqVMndO/eHa+//jpUVQ14fcokKOKZTCYxePBg0aJFC7Fp06ZgF8cnX375pWjbtq24cOGCuHjxov2rsLAw2EXz2pYtW0RycrJYt26dOHXqlFi6dKlo1aqV2LdvX7CL5pXi4mKnc3/x4kWxfft20bJlS7Fx48ZgF89rb775pujWrZv497//LU6ePCleeOEF0blzZ3HhwoVgF81rjz32mOjVq5f48ssvxeHDh8Xo0aPF3XffLYqLi4NdNAqidevWiVatWolhw4bZl2VnZ4uuXbuKqVOniqNHj4qNGzeKtm3bOv2fXbx4sejatavYuXOnOHDggHjsscdEv3797H9P3hwjUrg7h0IIcf/994vXXnvN6fp3+fJl+3qewxIjR44UAwYMEJmZmeL48eNi1qxZol27duLYsWPi6NGjom3btuK1114TR48eFStXrhTJycni22+/te8/ZcoU0bdvX5GZmSl++uknMWjQIPHwww/b13tzjEhQ1nkUQoi0tDSxfv16p7/HK1eu2PfneQx/ZT33+uO6XlW8eXYcN26cyMjIcNnOZvPmzaJdu3biww8/FEeOHBEZGRkiNTXV6RocaJF0f3VXl8zMTHHzzTeLt99+W5w4cUJ8+eWXomfPnmLKlCn2bd59913Rt29fl9+TrS7BuK5E0j3bXV2uXLniVIcLFy6IoUOHiv79+4u8vDwhRMl5b9GihThw4IDTtrb1JpNJ9OvXT4waNUocOnRIfPbZZyI1NVW88cYbAauLNxh8qgYWLlwoRowYEZbBp+XLl4t77rkn2MWoMKvVKm677TYxd+5cp+WPPfaYWLZsWZBKVTn5+fnitttuc7oxhYOBAweKOXPm2H++du2aaNGihfj000+DWCrv7d+/X7Ro0UJ89dVX9mV5eXmiS5cuYvPmzUEsGQVLVlaWeOKJJ0SHDh3EnXfe6fTgsmzZMtG9e3dhNpvtyxYuXCj69esnhCh5MejYsaN499137etzcnJEu3btxMcff+zVMSJBWefQarWKDh06iO3bt7vdl+ewxMmTJ0WLFi3Enj177MusVqvo27eveP3118Wf//xncf/99zvtM2HCBPHYY48JIUp+B61atRJffvmlff3x48dFixYt7I005R0jEpR3Hn/77TfRokUL8b///c/t/jyPkaGs515/XNeDxd2z41133SX++te/etynX79+Yt68efafzWaz6NWrV5U8P0fS/bWsujz33HPi0Ucfddr+H//4h2jdurU9IDNjxgzx5JNPejx+VV5XIumeXVZdSlu7dq1o06aNvSFCCCE++eQT0alTJ4/7fPzxx6JNmzbi6tWr9mV///vfRadOnYLaaM1hdxEuMzMT77//PubOnRvsolTIoUOH0KxZs2AXo8JOnDiBs2fP4p577nFavmrVKjzxxBNBKlXlLFu2DIWFhZg8eXKwi+KTWrVqYefOnThz5gxUVcX7778PnU6HVq1aBbtoXjl58iQAoEuXLvZlMTExuOGGG7B79+4glYqC6X//+x+0Wi0++ugjtG/f3mndnj17kJqaCo1GY192yy234OTJk/jtt99w8OBB5OfnIy0tzb7eaDQiOTkZmZmZXh0jEpR1Dn/99VcUFBSgadOmbvflOSyRkJCA5cuXo23btvZlkiRBkiTk5uZiz549TucIKDkHe/fuhRACe/futS+zadKkCRITE53OY1nHiATlncdDhw5BkiQ0adLE7f48j5GhrOdef1zXg6X0s6PJZMLJkyc9Xl8vX76MkydPOtVFo9GgS5cuVVKXSLq/llWXxx57zOV5XpZlmM1m5OXlASj/XawqryuRdM8uqy6OsrOz8frrr+Opp55yqps3v5fWrVsjPj7evuyWW25BXl4eDhw44J9KVACDTxEsNzcXkyZNwrRp01CvXr1gF6dCDh8+jOzsbDz88MO49dZb8dBDD+Hrr78OdrG8duLECQBAQUEBHn/8caSlpeGBBx7Ajh07glyyisnOzsY777yDJ598EjVq1Ah2cXzywgsvQKvV4vbbb0fbtm2xaNEivPnmm2jcuHGwi+aVunXrAgDOnz9vX6aqKrKyslxyelD10KdPHyxevBiNGjVyWZeVlYWkpCSnZY5/Q1lZWQDgcm+oW7eufV15x4gEZZ3Dw4cPAwDWrl2LPn36oG/fvnjxxRdx7do1AOA5/J3RaESvXr2g0+nsyz799FOcOnUKPXr08HgOCgsLceXKFVy4cAEJCQnQ6/Uu25R3Hm3HiATlncfDhw8jLi4OL774Inr27Ik777wTr7/+OkwmEwDwPEaIsp57/XFdDwZ3z45Hjx6Fqqr49NNPcccdd6B3797IyMjAxYsXAXh3fQ2kSLq/llWX5ORkp0ZYs9mMd955B23atEHNmjUBAEeOHMHx48cxePBgdOvWDSNHjsTPP/9s36cqryuRdM8uqy6OVqxYAYPBgMcff9xp+eHDh2GxWPD444+jW7duGDx4MD788EP7+lB9/mDwKYLNnDkTHTt2dOl1Ey4sFguOHz+OnJwcPPPMM1i+fDk6dOiAUaNG4bvvvgt28bxiazWYPHkyBgwYgNWrV6Nbt24YPXp02NTB0fr16xEXF4cHH3ww2EXx2dGjRxEXF4e33noL77//PgYPHoyJEycGNfrvi7Zt26Jp06aYMWMGLly4gKKiIixcuBBXrlyB2WwOdvEoxBQVFTm9xAKwv5QWFxejsLAQANxuU1xc7NUxIt3hw4chyzLq1q2LZcuWYcqUKfjPf/6D0aNHw2q18hx6sG/fPkydOhX9+vVD79693Z4D288mkwmFhYUu64Hyz6PjMSJR6fN4+PBhFBcXo127dli5ciWeeuopbNiwAdOmTQMAnscIUN5zrz+u68Hg7tnRFiiIiorCG2+8gVdeeQXHjx/HiBEjUFRUFLJ1ASL3/mqxWDBp0iQcOXIEM2bMAFASpLh27RoKCgowbdo0LF26FLVr18awYcNw9OhRAKFzXYnEe3ZeXh4++OADPP744y4NC0eOHMHVq1cxfPhwrFq1CnfccQemTp2KjRs3Agi9uthoyt+EwtGWLVuwZ88efPzxx8EuSoVpNBrs2rULiqLAYDAAANq0aYMjR45g1apVLl08Q5FWqwUAPP744/jDH/4AALj55puxf/9+/PWvfw2LOjjasmULBg0aZP99hIvz58/jueeewzvvvGMftta2bVscPXoUixcvxtKlS4NcwvLpdDosWbIEkyZNQs+ePaHVanHPPffgtttugyyzHYGcGQwGl4c+28NGdHS0/f+wyWRy+v9cXFyMqKgor44R6Z566ikMHToUCQkJAIAWLVqgTp06+OMf/4hffvmF59CNzz//HBMnTkSnTp2wYMECACUPu6XPge3nqKgot+cIcD6P5R0j0rg7jy+++CImT55sH0LRokULaLVajB8/HpMmTeJ5jADlPff647oeDO6eHQcNGoSePXvae9cAwE033YSePXtix44d9l7p7uob7L/VSLy/5uXl4dlnn8Xu3buxZMkStGvXDkBJL6HMzExERUXZ32natm2L/fv3Y+3atZg1a1bIXFci8Z79+eefw2Qy4b777nNZt3XrVqiqipiYGABAq1atcO7cOaxatQr3339/yNXFhm8sEWrTpk24fPkyevfujY4dO6Jjx44AgBkzZiA9PT3IpfNeTEyMS6DjpptuwoULF4JUIt8kJiYCKLkAOmrevDnOnDkTjCJV2MGDB3H69Omw7En3008/wWw2O+XSAID27dvj1KlTQSqV75o1a4ZNmzZh165d+P777zFnzhxkZWWFzdBBqjpJSUn24Qs2tp8TExPt3c7dbWO7bpV3jEgny7L9IdbmpptuAlDSnZ3n0Nm6devwzDPP4LbbbsOyZcvsLaz16tVzew6io6MRFxeHpKQkXL161eUh2fE8lneMSOLpPGo0GqfcHYDz3yPPY2Qo67nXH9f1qlbWs6Nj4AkoGRJUo0YNr6+vwRJp99eLFy/i4Ycfxo8//ohVq1ahV69eTuuNRqM98ASU3BubNWtmfxcLletKJN6zP//8c/Tq1QtGo9FlncFgsAeebFq0aGEfQhhqdbFh8ClCLViwANu2bcOWLVvsXwAwduxYvPLKK8EtnJeOHDmCTp06YdeuXU7L//vf/6J58+ZBKpVvWrdujZiYGPz0009Oyw8fPhx2AYM9e/agVq1aYZOg25FtzPOhQ4eclh8+fBg33nhjEErku7y8PAwbNgwHDx5EjRo1EBsbizNnzmD//v3o1q1bsItHISYlJQV79+6Fqqr2Zd9//z2aNGli/38cGxvrdH3Nzc3F/v37kZKS4tUxIt2kSZPw6KOPOi375ZdfAJQ0IPAcXrd+/Xq89NJLePjhh/Haa685dfXv0qWLy6QI33//PTp16gRZltG5c2dYrVZ7wmygJF/ihQsX7OexvGNEirLO4/DhwzF16lSn7X/55RdotVrceOONPI8RoLznXn9c16uap2fHRYsW4Y477nBKSH3mzBlcuXIFzZs3R61atdCkSROnulgsFuzZsydodbGJpPtrTk4OHnnkEWRnZ+Pdd991Obdff/01OnbsiNOnT9uXWSwWHDx40P4uFirXlUi8Z7tL5g6UlDs1NRWbN292Wv7LL7/YA24pKSnYv3+/PQUMUFKXmJiY4L7LBW2ePapyLVq0EJs2bQp2Mbymqqq47777xN133y0yMzPF0aNHxezZs0WbNm3EoUOHgl08r7311luiY8eO4uOPPxanTp0SS5cuFa1atRLff/99sIvmk6lTp7pMxxouVFUVDz30kLjzzjvFd999J06cOCEWLVokbr75ZvHjjz8Gu3heGzp0qBg2bJg4fPiw+Pnnn8WAAQPEyJEjg10sCgGTJ092mqb3t99+EykpKWLy5MniyJEjYtOmTaJt27Zi8+bN9m1ee+01kZqaKj7//HNx4MAB8dhjj4l+/foJk8nk9TEiSelz+Pnnn4sWLVqIxYsXi1OnTokvv/xS9OnTR0yYMMG+Dc+hEMePHxetW7cWTz/9tLh48aLTV25urjh8+LBo3bq1mD9/vjh69KhYtWqVSE5OFt9++639GBMmTBB9+vQR33//vfjpp5/EoEGDnH4X3hwj3JV3HteuXStuvvlmsX79evHrr7+KTz75RHTt2lW89tpr9mPwPIa38p57/XFdr2qenh1/+eUX0bp1azF9+nRx/PhxsXv3bjFo0CAxZMgQYbVahRBCvP/++6Jdu3Zi8+bN4siRIyIjI0N07dpVXL58uUrrEEn319J1mTx5smjdurX47rvvXK47FotFXLt2Tdx2223ioYceEr/88os4ePCgmDBhgkhJSRGXLl0SQgTvuhJJ9+zSdRFCiHPnzokWLVqIPXv2uN3nmWeeEd27dxdffvmlOHHihPjLX/4ibr75ZvH1118LIYQoKioSffv2FY8//rg4cOCA+Oyzz0RqaqpYvHhxQOtSHgafqpFwCz4JIcSlS5fElClTRLdu3UTbtm3Fgw8+KDIzM4NdLJ+tXr1a9OnTR7Ru3VoMHDhQfPbZZ8Euks/S09PFs88+G+xiVNjVq1fFzJkzRe/evUXHjh3Fgw8+KHbt2hXsYvkkKytLPP3006Jz584iLS1NzJgxQ+Tl5QW7WBQC3D24/PTTT+KPf/yjaNOmjbjtttvE2rVrndZbLBYxb948ccstt4gOHTqIP/3pT+L06dM+HSOSuDuH27ZtE4MGDRLt2rUT3bp1E3PnzhVFRUX29TyHQrz99tuiRYsWbr8mT54shBDiq6++EgMGDBBt2rQRd955p/jkk0+cjpGfny9eeOEF0aVLF9GlSxcxYcIEkZ2d7bRNeccId96cx3Xr1om77rrL/rf09ttvC1VV7cfgeQx/5T33+uO6XpXKenb89ttvxYMPPig6dOggUlNTxdSpU8XVq1edtlm5cqXo2bOnaNeunRg6dKjYv39/VRTbSSTdXx3rYrFYRNu2bT1ed2zlPXXqlHjmmWdEamqqaN++vXjsscdcOgEE47oSSfdsT39jLVq0EEePHnW7z7Vr18Ts2bNFr169RJs2bcS9997r8n558uRJMXLkSNG2bVvRvXt38frrrzvdM4JBEsKhvyMREREREREREZEfcYA3EREREREREREFDINPREREREREREQUMAw+ERERERERERFRwDD4REREREREREREAcPgExERERERERERBQyDT0REREREREREFDAMPhERERERERERUcAw+ERERERERETkJ0KIYBfBbyKpLhRcDD4RERERVcKxY8fw0ksv4Y477kD79u3RuXNnDBkyBOvXr4fFYilz3127dqFly5bYtWuXx23OnDmDli1bYvPmzRUq35AhQ9CyZUt8+umnFdqfiKg6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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "model.plot_shape_function([\n", " \"OverallQual\",\n", " \"GrLivArea\",\n", " \"TotalBsmtSF\",\n", "])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "These shape functions reveal expected trends, as higher quality and larger houses are generally more expensive." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, let's see how the model changes if we do feature selection. We start by using the `select_features(...)` function to select a set of features from the full dataset. The parameter `reg_param` controls the strength of the feature regularization, with larger values resulting in less features." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of Selected Features: 11\n", "List of Selected Features\n" ] }, { "data": { "text/plain": [ "['LotArea',\n", " 'Neighborhood',\n", " 'BldgType',\n", " 'OverallQual',\n", " 'YearRemodAdd',\n", " 'BsmtFinSF1',\n", " 'TotalBsmtSF',\n", " '2ndFlrSF',\n", " 'GrLivArea',\n", " 'GarageArea',\n", " 'OpenPorchSF']" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model_sparse = DNAMiteRegressor(\n", " device=device, \n", " random_state=0,\n", ")\n", "model_sparse.select_features(\n", " X_train,\n", " y_train,\n", " reg_param=0.02\n", ")\n", "print(\"Number of Selected Features:\", len(model_sparse.selected_feats_))\n", "print(\"List of Selected Features\")\n", "model_sparse.selected_feats_" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The model selects several of the top features from the original model. Now we can train an evaluate a model on the selected features using the same functions as before, and dnamite will automatically use the selected features." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "[WARNING] Found selected features. Using only those features.\n" ] }, { "data": { "text/html": [ "
DNAMiteRegressor(random_state=0)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "DNAMiteRegressor(random_state=0)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model_sparse.fit(X_train, y_train)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Sparse model RMSE: 28253.662183014207\n", "Full model RMSE: 26407.296509447955\n" ] } ], "source": [ "preds = model_sparse.predict(X_test)\n", "print(\"Sparse model RMSE:\", root_mean_squared_error(y_test, preds))\n", "print(\"Full model RMSE:\", root_mean_squared_error(y_test, model.predict(X_test)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The RMSE of this model is only about $1800 worse than the first model despite only using 11 features. Now we can see how the feature importances change." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "model_sparse.plot_feature_importances()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "One notable difference is several of the top features have higher importance scores in the sparse model. One explanation is that the signal from the unselected features has shifted into the more important features in the sparse model, highlighting the redundancy of the pruned features." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Implementation Details\n", "\n", "dnamite does feature selection using the differential binary gates method first introduced in [1]. When doing feature selection, Ddnamite fits an additive model of the form (ignoring interactions for simplicity) $$ f(X) = \\sum_j f_j(X_j) s(\\mu_j) $$ where $s(\\mu_j)$ is the *smooth-step function* with learnable parameter $\\mu_j$: \n", "$$ \n", "s(\\mu; \\gamma)\n", "\\begin{cases}\n", " 0 & \\text{if } \\mu \\leq -\\gamma/2 \\\\\n", " -\\frac{2}{\\gamma^3}\\mu^3 + \\frac{3}{2\\gamma}\\mu + \\frac{1}{2} & \\text{if } -\\gamma/2 \\leq \\mu \\leq \\gamma/2 \\\\\n", " 1 & \\text{if } \\mu \\geq \\gamma/2\n", "\\end{cases}.\n", "$$\n", "During training, if $\\mu_j$ is updated such that $s(\\mu_j) = 0$, then feature $j$ no longer impact the model and thus can be pruned.\n", "In order to encourage sparsity during training, dnamite uses a sparsity regularizer encourages the $s(\\mu_j)$'s to be small: $$L_S = \\lambda \\sum_j s(\\mu_j).$$ \n", "For further details on how dnamite does feature selection, see [2].\n", "\n", "[1] Ibrahim, Shibal, et al. \"GRAND-SLAMIN’Interpretable Additive Modeling with Structural Constraints.\" Advances in Neural Information Processing Systems 36 (2024).\n", "\n", "[2] Van Ness, Mike, and Madeleine Udell. \"Interpretable Prediction and Feature Selection for Survival Analysis.\" arXiv preprint arXiv:2404.14689 (2024)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Hyperparameters\n", "\n", "\n", "dnamite has multiple hyperparameters that can be set to control feature selection. The below parameters are optional parameters for the `select_features` function the controls feature selection.\n", "\n", "- `reg_param`: controls the strength of feature selection. It is equivalent to $\\lambda$ in the sparsity regularizer $L_S$ above. \n", "- `select_pairs`: whether or not pairs are selected using feature selection.\n", "- `pair_reg_param`: similar to `reg_param` except it controls the strength of feature selection for interactions opposed to main features. Since interactions are chosen and pruned after main feature selection, this parameter often can be set to a smaller value than `reg_param`. \n", "- `gamma`: controls how quickly the smooth-step functions $s(\\mu_j)$ reach 0 and 1. A smaller value of `gamma` will result in features being pruned earlier in training, while a larger value will cause features to be pruned later in training. The default value is `gamma = 1`, but in our experience a smaller value is often needed for smaller datasets.\n", "- `pair_gamma`: equivalent to `gamma` but for pairs.\n", "- `entropy_param`: equivalent to $\\tau$ in the entropy regularizer $L_E$ above. Similar to `gamma`, different values of `entropy_param` impact how quickly features are pruned during training. Higher values of `entropy_param` will cause features/interactions to be pruned faster. The default of `entropy_param = 0.001` is usually a good starting point." ] } ], "metadata": { "kernelspec": { "display_name": "jss (3.9.6)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.6" } }, "nbformat": 4, "nbformat_minor": 2 }