--- a +++ b/1. Applying AI to 2D Medical Imaging Data/12. Intended Use and Clinical Impact Exercise/solution.ipynb @@ -0,0 +1,314 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import sklearn.metrics" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "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>age</th>\n", + " <th>gender</th>\n", + " <th>num_prior_positive</th>\n", + " <th>race</th>\n", + " <th>scanner_type</th>\n", + " <th>ground_truth</th>\n", + " <th>algorithm_output</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>53</td>\n", + " <td>F</td>\n", + " <td>0</td>\n", + " <td>hispanic</td>\n", + " <td>hologic</td>\n", + " <td>normal</td>\n", + " <td>normal</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>39</td>\n", + " <td>F</td>\n", + " <td>0</td>\n", + " <td>caucasian</td>\n", + " <td>hologic</td>\n", + " <td>normal</td>\n", + " <td>abnormal</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>56</td>\n", + " <td>F</td>\n", + " <td>0</td>\n", + " <td>african_american</td>\n", + " <td>hologic</td>\n", + " <td>normal</td>\n", + " <td>normal</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>44</td>\n", + " <td>F</td>\n", + " <td>0</td>\n", + " <td>caucasian</td>\n", + " <td>hologic</td>\n", + " <td>normal</td>\n", + " <td>abnormal</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>35</td>\n", + " <td>F</td>\n", + " <td>0</td>\n", + " <td>caucasian</td>\n", + " <td>hologic</td>\n", + " <td>normal</td>\n", + " <td>normal</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " age gender num_prior_positive race scanner_type ground_truth \\\n", + "0 53 F 0 hispanic hologic normal \n", + "1 39 F 0 caucasian hologic normal \n", + "2 56 F 0 african_american hologic normal \n", + "3 44 F 0 caucasian hologic normal \n", + "4 35 F 0 caucasian hologic normal \n", + "\n", + " algorithm_output \n", + "0 normal \n", + "1 abnormal \n", + "2 normal \n", + "3 abnormal \n", + "4 normal " + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "demos = pd.read_csv('demographics.csv')\n", + "demos.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Look at the distributions of age, gender, num_prior_positives, race, and scanner_type:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = plt.hist(demos.age)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "<matplotlib.axes._subplots.AxesSubplot at 0x7efcf5fa5ed0>" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "demos.gender.value_counts().plot(kind='bar')" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = plt.hist(demos.num_prior_positive)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "<matplotlib.axes._subplots.AxesSubplot at 0x7efcf5f9e9d0>" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXAAAAFFCAYAAAD1rrYhAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8GearUAAAV0UlEQVR4nO3df5BlZZ3f8feHAcSoCISGTEAcoHB3iYuD1UtISEUFMQSNSFaMJMtSG1KDpaxozO6ym0qtbCVVxBXdiiZujYJOjNFgBEXw19T4gxAtZICRHwELYkCRWWYQEQGBZfjmj3ta2qaHvt23+5555r5fVV23z3Nvcz9ly4fTz33OeVJVSJLas0ffASRJS2OBS1KjLHBJapQFLkmNssAlqVEWuCQ1as9xvtmBBx5Ya9asGedbSlLzbrjhhgeqamru+FgLfM2aNWzevHmcbylJzUtyz3zjTqFIUqMscElqlAUuSY2ywCWpURa4JDXKApekRlngktQoC1ySGjXWC3nGbc0FV/cdYUXdfdHr+44gqUeegUtSo4Yu8CSrktyU5Kru+IAkG5Pc2T3uv3IxJUlzLeYM/Hzg9lnHFwCbquooYFN3LEkak6EKPMmhwOuBj80aPg3Y0H2/AXjT8kaTJD2XYc/A/wL4Q+DpWWMHV9VWgO7xoPl+MMm6JJuTbN6+fftIYSVJz1iwwJO8AdhWVTcs5Q2qan1VTVfV9NTUs25nK0laomGWEZ4AvDHJqcA+wL5J/htwf5LVVbU1yWpg20oGlST9qgXPwKvqj6vq0KpaA7wV+HpV/Q5wJXB297KzgS+sWEpJ0rOMsg78IuDkJHcCJ3fHkqQxWdSVmFX1TeCb3fc/AU5a/kiSpGF4JaYkNcoCl6RGWeCS1CgLXJIaZYFLUqMscElqlAUuSY2ywCWpURa4JDXKApekRlngktQoC1ySGmWBS1KjLHBJapQFLkmNssAlqVHDbGq8T5LvJvlektuSXNiNvzfJj5Ns6b5OXfm4kqQZw+zI8wRwYlU9kmQv4NokX+6e+2BVvX/l4kmSdmbBAq+qAh7pDvfqvmolQ0mSFjbUHHiSVUm2ANuAjVV1XffUeUluTnJpkv138rPrkmxOsnn79u3LFFuSNFSBV9WOqloLHAocl+TlwEeAI4G1wFbg4p387Pqqmq6q6ampqWWKLUla1CqUqnqIwa70p1TV/V2xPw18FDhuBfJJknZimFUoU0n2675/PvBa4I4kq2e97HTg1pWJKEmazzCrUFYDG5KsYlD4l1XVVUk+mWQtgw807wbOXbmYkqS5hlmFcjNw7DzjZ61IIknSULwSU5IaZYFLUqMscElqlAUuSY2ywCWpURa4JDXKApekRlngktQoC1ySGmWBS1KjLHBJapQFLkmNssAlqVEWuCQ1ygKXpEZZ4JLUqGG2VNsnyXeTfC/JbUku7MYPSLIxyZ3d47y70kuSVsYwZ+BPACdW1SsY7EB/SpLjgQuATVV1FLCpO5YkjcmCBV4Dj3SHe3VfBZwGbOjGNwBvWpGEkqR5DTUHnmRVki3ANmBjVV0HHFxVWwG6x4NWLqYkaa5hdqWnqnYAa5PsB1yR5OXDvkGSdcA6gMMOO2xJITV51lxwdd8RVtTdF72+7wjaDSxqFUpVPQR8EzgFuD/JaoDucdtOfmZ9VU1X1fTU1NSIcSVJM4ZZhTLVnXmT5PnAa4E7gCuBs7uXnQ18YaVCSpKebZgplNXAhiSrGBT+ZVV1VZLvAJclOQf4IXDGCuaUJM2xYIFX1c3AsfOM/wQ4aSVCSZIW5pWYktQoC1ySGmWBS1KjLHBJapQFLkmNGupKTElaDK+kHQ/PwCWpURa4JDXKApekRlngktQoC1ySGmWBS1KjLHBJapQFLkmNssAlqVEWuCQ1apgt1V6S5BtJbk9yW5Lzu/H3Jvlxki3d16krH1eSNGOYe6E8Bbynqm5M8iLghiQbu+c+WFXvX7l4kqSdGWZLta3A1u77nye5HThkpYNJkp7boubAk6xhsD/mdd3QeUluTnJpkv2XOZsk6TkMXeBJXgh8DnhXVT0MfAQ4EljL4Az94p383Lokm5Ns3r59+zJEliTBkAWeZC8G5f2pqrocoKrur6odVfU08FHguPl+tqrWV9V0VU1PTU0tV25JmnjDrEIJcAlwe1V9YNb46lkvOx24dfnjSZJ2ZphVKCcAZwG3JNnSjf0JcGaStUABdwPnrkhCSdK8hlmFci2QeZ760vLHkSQNyysxJalRFrgkNcoCl6RGWeCS1CgLXJIaZYFLUqMscElqlAUuSY2ywCWpURa4JDXKApekRlngktQoC1ySGmWBS1KjLHBJapQFLkmNssAlqVHD7In5kiTfSHJ7ktuSnN+NH5BkY5I7u8f9Vz6uJGnGMGfgTwHvqarfAI4H3pHkaOACYFNVHQVs6o4lSWOyYIFX1daqurH7/ufA7cAhwGnAhu5lG4A3rVRISdKzLWoOPMka4FjgOuDgqtoKg5IHDtrJz6xLsjnJ5u3bt4+WVpL0S0MXeJIXAp8D3lVVDw/7c1W1vqqmq2p6ampqKRklSfMYqsCT7MWgvD9VVZd3w/cnWd09vxrYtjIRJUnzGWYVSoBLgNur6gOznroSOLv7/mzgC8sfT5K0M3sO8ZoTgLOAW5Js6cb+BLgIuCzJOcAPgTNWJqIkaT4LFnhVXQtkJ0+ftLxxJEnD8kpMSWqUBS5JjbLAJalRFrgkNcoCl6RGWeCS1CgLXJIaZYFLUqMscElqlAUuSY2ywCWpURa4JDXKApekRlngktQoC1ySGmWBS1KjhtlS7dIk25LcOmvsvUl+nGRL93XqysaUJM01zBn4J4BT5hn/YFWt7b6+tLyxJEkLWbDAq+oa4MExZJEkLcIoc+DnJbm5m2LZf2cvSrIuyeYkm7dv3z7C20mSZltqgX8EOBJYC2wFLt7ZC6tqfVVNV9X01NTUEt9OkjTXkgq8qu6vqh1V9TTwUeC45Y0lSVrIkgo8yepZh6cDt+7stZKklbHnQi9I8mng1cCBSe4F/hR4dZK1QAF3A+euYEZJ0jwWLPCqOnOe4UtWIIskaRG8ElOSGmWBS1KjLHBJapQFLkmNssAlqVEWuCQ1ygKXpEZZ4JLUKAtckhplgUtSoyxwSWqUBS5JjbLAJalRFrgkNcoCl6RGWeCS1KgFC7zbdX5bkltnjR2QZGOSO7vHne5KL0laGcOcgX8COGXO2AXApqo6CtjUHUuSxmjBAq+qa4AH5wyfBmzovt8AvGmZc0mSFrDUOfCDq2orQPd40PJFkiQNY8U/xEyyLsnmJJu3b9++0m8nSRNjqQV+f5LVAN3jtp29sKrWV9V0VU1PTU0t8e0kSXMttcCvBM7uvj8b+MLyxJEkDWuYZYSfBr4D/FqSe5OcA1wEnJzkTuDk7liSNEZ7LvSCqjpzJ0+dtMxZJEmL4JWYktQoC1ySGmWBS1KjLHBJapQFLkmNssAlqVEWuCQ1ygKXpEZZ4JLUKAtckhplgUtSoyxwSWqUBS5JjbLAJalRFrgkNcoCl6RGLbihw3NJcjfwc2AH8FRVTS9HKEnSwkYq8M5rquqBZfjnSJIWwSkUSWrUqAVewNeS3JBk3XIEkiQNZ9QplBOq6r4kBwEbk9xRVdfMfkFX7OsADjvssBHfTpI0Y6Qz8Kq6r3vcBlwBHDfPa9ZX1XRVTU9NTY3ydpKkWZZc4ElekORFM98DrwNuXa5gkqTnNsoUysHAFUlm/jn/vaq+siypJEkLWnKBV9UPgFcsYxZJ0iK4jFCSGmWBS1KjLHBJapQFLkmNssAlqVEWuCQ1ygKXpEZZ4JLUKAtckhplgUtSoyxwSWqUBS5JjbLAJalRFrgkNcoCl6RGWeCS1CgLXJIaNVKBJzklyfeT3JXkguUKJUla2CibGq8C/jPwj4GjgTOTHL1cwSRJz22UM/DjgLuq6gdV9STwGeC05YklSVrIKLvSHwL8aNbxvcDfnfuiJOuAdd3hI0m+P8J77uoOBB4Y15vlP47rnSaCv7u27e6/v5fONzhKgWeesXrWQNV6YP0I79OMJJurarrvHFo8f3dtm9Tf3yhTKPcCL5l1fChw32hxJEnDGqXArweOSnJ4kr2BtwJXLk8sSdJCljyFUlVPJTkP+CqwCri0qm5btmRtmoipot2Uv7u2TeTvL1XPmraWJDXAKzElqVEWuCQ1ygKXpEZZ4JLUqFEu5BGQ5O8Da5j1v2VV/dfeAmloSTYCZ1TVQ93x/sBnquof9ZtMw0jyMuAPGFylOPvfvxN7CzVmFvgIknwSOBLYAuzohguwwNtw4Ex5A1TVT5Mc1GcgLcpngb8EPsoz//5NFAt8NNPA0eVazFY9neSwqvohQJKXMs/tILTLeqqqPtJ3iD5Z4KO5FfhbwNa+g2hJ/i1wbZJvdcf/kGduvKZd3xeTvB24AnhiZrCqHuwv0nh5Ic8IknwDWAt8l1/9P9AbewulRUlyIHA8g5uzfaeqxnZHO40myf+bZ7iq6oixh+mJBT6CJK+ab7yqvjXfuHYNSX69qu5I8sr5nq+qG8edSVoKC1wTJ8n6qlrX/QU1V03SKobWJXk5gx3B9pkZm6RVYBb4CJIcD3wI+A1gbwY39Xq0qvbtNZg0AZL8KfBqBgX+JQbbO15bVW/uM9c4+SHmaD7M4Da6n2WwIuV3gaN6TaRFcR1/094MvAK4qap+L8nBwMd6zjRWFviIququJKuqagfw8STf7juThuM6/ub9oqqeTvJUkn2BbcDEfIAJFvioHus2s9iS5H0MlhO+oOdMGp7r+Nu2Ocl+DC7kuQF4hMGKsInhHPgIugs/tgF7Ae8GXgz8l6q6q9dgGkqSzwLvrCrX8TcuyRpg36q6uecoY2WBa2K5jr9tSU4Hvl5VP+uO9wNeXVWf7zfZ+FjgS5Dksqp6S5JbmOfS66o6podYWiTX8bctyZaqWjtn7KaqOravTOPmHPjSnN89vqHXFBqJRd28+W6HPVGd5v3Al2DWnOkDwI+q6h7geQyWNN3XWzAtSpLjk1yf5JEkTybZkeThvnNpaJuTfCDJkUmOSPJBBh9mTgwLfDTXAPskOQTYBPwe8IleE2kxPgycCdwJPB/4V92Y2vD7wJPA/2BwLcbjwDt6TTRmE/XnxgpIVT2W5BzgQ1X1viQ39R1Kw3Mdf7uq6lHggr5z9MkCH02S/D3gXwDndGP+b9oO1/E3KMlfVNW7knyR+RcRTMwqIstmNOcDfwxcUVW3JTkCmO8GSdo1ncVgGvE8Buv4XwL8dq+JNIxPdo/v7zXFLsBlhJpo3Rn4rzM4k/t+VT3ZcyQNIckqYENV/U7fWfrkGfgIkkwBfwj8HX71dpbejrQBSV7PYE/F/8tgQ4fDk5xbVV/uN5kWUlU7kkwl2XuS/6NrgY/mUww+AX8D8DbgbGB7r4m0GBcDr5m59UGSI4GrAQu8DXcD/zvJlcCjM4NV9YHeEo2ZywhH8zer6hLgr6vqW1X1Lxlsz6U2bJtz35ofMLi3jdpwH3AVgx570ayvieEZ+Gj+unvc2v05fh9waI95tDi3JfkScBmDOfAzgOuT/FOAqrq8z3B6blV1IUCSF3RLCieOH2KOIMkbgP/FYPXCh4B9gQur6speg2koST7+HE9X9xeVdlHdEt5LgBdW1WFJXgGcW1Vv7zna2FjgkpqU5DoGu/JcOXMDqyS3VtXL+002Ps6BjyDJhu4WljPH+ye5tM9MGl6S9yXZN8leSTYleSDJRC9La01V/WjO0I55X7ibssBHc0xVPTRzUFU/BSbmVpa7gddV1cMMVhHdC7wM+IN+I2kRftTtaVpJ9k7yb4Db+w41Thb4aPZIsv/MQZID8IPhluzVPZ4KfLqqHuwzjBbtbQxuXnUIg/8Ar8WbWWkRLga+neR/dsdnAP+hxzxanC8muQP4BfD27sKsx3vOpCFV1QMM7kM0sfwQc0RJjgZOZHAl36aq+j89R9IidH9BPdxd2fc3GOyr+Fd959LCkhzO4Jaya5h1MjpJN7OywEeQ5LD5xqvqh+POouElObGqvj6z3nsu13+3Icn3GCwjvAV4emZ8knZacgplNFfzzO0snw8cDnyfwb1RtOt6FfB14J90xzO/w3TfW+BteLyq/lPfIfrkGfgySvJKBhcSnNt3Fi0syT4Mbh+7hmdOZqqq/qy3UBpakn8OHAV8DXhiZryqbuwt1Jh5Br6MqurGJL/Vdw4N7fPAQ8CNPPPhpWc07fhNBvd0P5FnplCqO54IFvgIkvzrWYd7AK/EuxG25NCqOqXvEFqy04EjJvl2sq4DH83sO6A9j8Gc+Gm9JtJifDvJb/YdQkv2PWC/BV+1G3MOXBMnyS0M/tTek8Ec6g8YzKGGwRz4MT3G05CSfBM4BrieX50DdxmhFuaOPG1K8tLner6q7hlXFi1dklfNN+4yQg3LHXkaZEHvHiapqHfGOfDRuCOP1JMkxye5PskjSZ5MsiPJw33nGifPwEfjjjxSfz4MvBX4LDAN/C6DzzQmhgU+mn+f5MXAe3hmR5539RtJmhxVdVeSVVW1A/h4km/3nWmcnEIZzRkMPgi+tapeA5zMYG2qpJX3WJK9gS3d5hzvBl7Qd6hxssBHM3dDhwdxQwdpXM5i0GHnAY8y2Jv2t3tNNGZOoYxmjyT7dzvxuKGDNEazVhM9Dlw49/kkn6uq3brQLZvRzN7QoYC34IYO0q7iiL4DrDQv5BmRGzpIu6YkN1bVK/vOsZI8Ax9RV9iWtqSx80NMSbur9B1gpVngknZXf9R3gJXmHLikJiU5AXgv8FIG08Ezd5Pc7T+8nGGBS2pSkjuAdwM3ADtmxqvqJ72FGjM/xJTUqp9V1Zf7DtEnz8AlNSnJRcAq4HImdFNjC1xSk5J8Y57hmqQNVSxwSWqUc+CSmtXdh3/uloZ/1l+i8XIduKQmJflL4J8Bv89gCeEZDJYUTgynUCQ1KcnNVXXMrMcXApdX1ev6zjYunoFLatUvusfHkvxtBlscHt5jnrFzDlxSq65Ksh/w58CNDG7p/LF+I42XUyiSmpfkecA+VfWzvrOMk1MokpqU5B3dGThV9QSDHbLe3nOssfIMXFKTkmypqrVzxm6qqonZl9YzcEmt2iPJL+/5nWQVsHePecbODzElteqrwGXdevAC3gZ8pd9I4+UUiqQmJdkDOBc4icGFPF8DPlZVO57zB3cjFrgkNcopFElNSXJZVb0lyS0Mpk5+RVUd00OsXngGLqkpSVZX1dYk8973pKruGXemvljgkprTrTj5alW9tu8sfXIZoaTmdB9UPpbkxX1n6ZNz4JJa9ThwS5KNwKMzg1X1zv4ijZcFLqlVV3dfE8sCl9SUJJuq6iTg6Kr6o77z9MkCl9Sa1UleBbwxyWcYXMTzS+5KL0m7qCRvBs4B/gGwec7T7kovSbu6JP8O+DDwMgabGhdAVV3TZ65xcgpFUqv+CrgGOBTYAhwPfAeYmDNw14FLatU7gd8C7qmq1wDHAtv7jTReFrikVj1eVY/DYEu1qroD+LWeM42VUyiSWnVvt6Xa54GNSX4K3NdzprHyQ0xJzeuWFb4Y+EpVPdl3nnGxwCWpUc6BS1KjLHBJapQFLkmNssAlqVEWuCQ16v8D9x09XFUSJgYAAAAASUVORK5CYII=\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "demos.race.value_counts().plot(kind='bar')" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "<matplotlib.axes._subplots.AxesSubplot at 0x7efcf5dffdd0>" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<Figure size 432x288 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "demos.scanner_type.value_counts().plot(kind='bar')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Statement on intended use/population: \n", + "\n", + "Looking at the above, we see that the algorithm was trained on female patients only who spanned from ages 35 to 61. None of these patients had ever had a prior abnormal mammography study. All patients were scanned on a Hologic scanner, and were either Caucasian, Hispanic, or African American. \n", + "\n", + "From this information, the appropriate intended use statement would be: \n", + "\n", + "This algorithm is intended for use on Caucasian, Hispanic, and African American women from the ages of 35-61 who have been administered a screening mammography study on a Hologic mammography machine and have never before demonstrated an abnormal mammography study. " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "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.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}