diff --git a/How Much is Your Car Worth.ipynb b/How Much is Your Car Worth.ipynb index bfc2fbe..cf06089 100644 --- a/How Much is Your Car Worth.ipynb +++ b/How Much is Your Car Worth.ipynb @@ -11,7 +11,19 @@ "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", - "from sklearn import linear_model" + "from sklearn import linear_model\n", + "from sklearn.cross_validation import train_test_split" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "%matplotlib inline" ] }, { @@ -67,6 +79,396 @@ "source": [ "df = pd.read_csv(\"car_data.csv\")" ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PriceMileageMakeModelTrimTypeCylinderLiterDoorsCruiseSoundLeather
017314.1031298221BuickCenturySedan 4DSedan63.14111
117542.0360839135BuickCenturySedan 4DSedan63.14110
216218.84786213196BuickCenturySedan 4DSedan63.14110
316336.91314016342BuickCenturySedan 4DSedan63.14100
416339.17032419832BuickCenturySedan 4DSedan63.14101
\n", + "
" + ], + "text/plain": [ + " Price Mileage Make Model Trim Type Cylinder Liter \\\n", + "0 17314.103129 8221 Buick Century Sedan 4D Sedan 6 3.1 \n", + "1 17542.036083 9135 Buick Century Sedan 4D Sedan 6 3.1 \n", + "2 16218.847862 13196 Buick Century Sedan 4D Sedan 6 3.1 \n", + "3 16336.913140 16342 Buick Century Sedan 4D Sedan 6 3.1 \n", + "4 16339.170324 19832 Buick Century Sedan 4D Sedan 6 3.1 \n", + "\n", + " Doors Cruise Sound Leather \n", + "0 4 1 1 1 \n", + "1 4 1 1 0 \n", + "2 4 1 1 0 \n", + "3 4 1 0 0 \n", + "4 4 1 0 1 " + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PriceMileageCylinderLiterDoorsCruiseSoundLeather
count804.000000804.000000804.000000804.000000804.000000804.000000804.000000804.000000
mean21343.14376719831.9340805.2686573.0373133.5273630.7524880.6791040.723881
std9884.8528018196.3197071.3875311.1055620.8501690.4318360.4671110.447355
min8638.930895266.0000004.0000001.6000002.0000000.0000000.0000000.000000
25%14273.07387014623.5000004.0000002.2000004.0000001.0000000.0000000.000000
50%18024.99501920913.5000006.0000002.8000004.0000001.0000001.0000001.000000
75%26717.31663625213.0000006.0000003.8000004.0000001.0000001.0000001.000000
max70755.46671750387.0000008.0000006.0000004.0000001.0000001.0000001.000000
\n", + "
" + ], + "text/plain": [ + " Price Mileage Cylinder Liter Doors \\\n", + "count 804.000000 804.000000 804.000000 804.000000 804.000000 \n", + "mean 21343.143767 19831.934080 5.268657 3.037313 3.527363 \n", + "std 9884.852801 8196.319707 1.387531 1.105562 0.850169 \n", + "min 8638.930895 266.000000 4.000000 1.600000 2.000000 \n", + "25% 14273.073870 14623.500000 4.000000 2.200000 4.000000 \n", + "50% 18024.995019 20913.500000 6.000000 2.800000 4.000000 \n", + "75% 26717.316636 25213.000000 6.000000 3.800000 4.000000 \n", + "max 70755.466717 50387.000000 8.000000 6.000000 4.000000 \n", + "\n", + " Cruise Sound Leather \n", + "count 804.000000 804.000000 804.000000 \n", + "mean 0.752488 0.679104 0.723881 \n", + "std 0.431836 0.467111 0.447355 \n", + "min 0.000000 0.000000 0.000000 \n", + "25% 1.000000 0.000000 0.000000 \n", + "50% 1.000000 1.000000 1.000000 \n", + "75% 1.000000 1.000000 1.000000 \n", + "max 1.000000 1.000000 1.000000 " + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "train, test = train_test_split(df[[\"Mileage\", \"Price\"]])" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model = linear_model.LinearRegression(fit_intercept=True)\n", + "model.fit(train[\"Mileage\"].to_frame(), train[\"Price\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0.018400048296921878" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model.score(test[\"Mileage\"].to_frame(), test[\"Price\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(range(0,55000,500), model.predict(pd.Series(range(0,55000,500)).to_frame()))\n", + "plt.scatter(df.Mileage.to_frame(), df.Price)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "## Mileage is not a good predictor for car prices when use on its own" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/Simple Linear Regression.ipynb b/Simple Linear Regression.ipynb index 65d531a..2f917a1 100644 --- a/Simple Linear Regression.ipynb +++ b/Simple Linear Regression.ipynb @@ -14,6 +14,17 @@ "from sklearn import linear_model" ] }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "%matplotlib inline" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -27,7 +38,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": { "collapsed": false }, @@ -56,6 +67,79 @@ "5. Interpolate data: With a listening device, you discovered that on a particular morning the crickets were chirping at a rate of 18 chirps per second. What was the approximate ground temperature that morning? " ] }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "data = pd.DataFrame(ground_cricket_data)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0.69229465291470027" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model = linear_model.LinearRegression()\n", + "model.fit(data[\"Chirps/Second\"].to_frame(), data[\"Ground Temperature\"])\n", + "model.score(data[\"Chirps/Second\"].to_frame(), data[\"Ground Temperature\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Ground Tempreature = [ 3.410323] * Chirps/Second + 22.848982308066887\n" + ] + }, + { + "data": { + "image/png": "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\nNyJ660raAbxKoJn1J6kb6B7We1RzslPSpcB1EbGguH8G8GxEnC5pDjDWJzsrk8YthHnTVq8SuAA4\n9oaIZ/du7uf68nmzsmjKlZ2S1iGd6Pxcn8OnAZdLOoxi+mEtH2qt428BZp3Pa6200OqiOr/vKoFN\nLaq5vgWYWX281kqbi4jrJc0oNl0AVrjNYWbD5hF5h8vxLcDM6udlbG1APtlpVh4u5GZmJdfsS/TN\nzKwNuZCbmZWcC7mZWcm5kJuZlZwLuZlZybmQm5mVnAu5mVnJuZCbmZWcC7mZWcm5kJuZlZwLuZlZ\nybmQm5mVnAu5mVnJuZCbmZWcC7mZWcm5kJuZlZwLuZlZybmQm5mVnAu5mVnJuZCbmZWcC7mZWcm5\nkJuZlZwLuZlZybmQm5mVXMVCLmmspCsk3S/pPkm7SJoraamkRcVtn1aENTOzN6pmRH4WcG1ETAK2\nA+4HApgXETsWt581M2QzSerOnaEaztlYztlYzpnXkIVc0gbAbhFxAUBE/CUinl/1cLPDtUh37gBV\n6s4doErduQNUqTt3gCp15w5Qpe7cAarUnTtAM1QakW8GPC3ph5LulPTvktYuHpspabGk8yWNbXJO\nMzMbRKVCPgqYDJwTEZOBF4E5wDmkIr8D8Aegp5khzcxscIqIwR+UNgZuiYjNivtTgTkR8aE+z5kI\nXBMR2w7w+sHf3MzMBhQRNbWuR1V4syclPS5pi4h4CNgLuFfSxhHxZPG0GcCSRoQxM7PaDTkiB5C0\nPfADYDTwW+BQYD6prRLAI8DhEbGsuVHNzGwgFQu5mZm1t4Zc2SnpAknLJC3pc+yUYlbLXZJ+LmmT\nRnzWcAyUs89jsyWtlNSVI1u/LAP9PtvuIqzBfp+SZhYXkN0j6fRc+frkGej3eWmf3+Ujkha1YcYp\nkm4rMt4u6b05MxaZBsq5vaRbJN0t6WpJ6+XMWGTaRNLNku4t/jucVRzvknSDpIckLcw9426InB8r\njv1V0uSKbxQRw74BuwE7Akv6HFuvz88zgR804rManbM4vgnwM1KbqKsdcwInA8fmzlZFzg8ANwBr\nFfff2o45+z3+beCr7ZYR6AWmFz9/ELi5HX+XwO2k600ADgG+3gY5NwZ2KH5eF3gQmAScARxfHD8B\nOK1Nc24FbAHcDEyu9D4NGZFHxK+AP/Y79kKfu+sCzzTis4ZjoJyFecDxLY4zqCFyttXJ40FyfhH4\n14h4tXjO0y0P1s8Qv08kCTgQuKSlofoZJOMfgA2Kn8cCT7Q01AAGyfnu4jjAjcABrU31RhHxZETc\nVfz8J9IV6W8D9gMWFE9bAOyfJ2EySM6/iYgHIk0wqUpTF82S9E1JjwEHA6c187PqJekjwNKIuDt3\nliqU4SKsdwO7S/q/knol7Zw7UAW7Acsi4re5gwxgDtBT/D/0LeDEzHkGc2/x/xHAx0jfcNtGMUV6\nR+BWYHysnpixDBifKdYb9MtZk6YW8oj4SkRsCvwHcGYzP6sexVWq/0xqW7x2OFOcSs6lHBdhjQI2\njIhdgOOAyzPnqeTjwMW5QwzifGBW8f/QMcAFmfMM5lDgCEl3kL59/zlzntdIWhf4X8BR/boEROpn\ntMVsjyLnFaScf6r19a1axvZiIPuJmgFsDkwEFkt6BHg78BtJG2VNNYCIeCoKpOmgU3JnGsRS4CcA\nEXE7sFLSuLyRBiZpFOk6iMtyZxnElIi4svj5Ctr0zzwiHoyI6RGxM3ApaZpydpLWIhXxiyLiquLw\nsuJCRyRNAJ7KlW+VPjl/1CdnTZpWyCW9u8/djwBZZwUMJCKWRMT4iNgs0tWrS0knFrL/4fZX/Ee3\nyqAXYbWBq4A9ASRtAYyOiGfzRhrUXsD9EfH73EEG8bCkPYqf9wSq7pm2kqS3Fv9cA/gq6dtjVsW5\nj/OB+yLiO30euprU6qX4Z12Fs1GGyPm6p1V8owadeb0E+D3pK9XjpK9aV5CKzV2kv202ynl2uF/O\nV4qch/R7/He0x6yVgX6fFwJ3A4tJ//GNb6Ocr/0+gbWAi4o/+98A3e2Yszj+Q+DzufMN8md+CLAz\nqV96F3ALsGMb5jwUmEWabfEgcGrujEXOqcDK4ne3qLjtA3SRTsg+BCwExrZhzg+STsI+DrwEPAlc\nN9T7+IIgM7OS81ZvZmYl50JuZlZyLuRmZiXnQm5mVnIu5GZmJedCbmZWci7kZmYl50JuZlZy/x99\nc1Vjf2taOQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.scatter(data[\"Chirps/Second\"], data[\"Ground Temperature\"])\n", + "plt.plot(range(14, 21), model.predict(pd.DataFrame(np.array(range(14, 21)))))\n", + "print(\"Ground Tempreature = {} * Chirps/Second + {}\".format(model.coef_, model.intercept_))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## The data does appear to support the hypothesis that circkets chirp more frequently the higher the temperature is." + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -74,7 +158,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 24, "metadata": { "collapsed": false }, @@ -83,6 +167,153 @@ "df = pd.read_fwf(\"brain_body.txt\")" ] }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
BrainBody
count62.00000062.000000
mean198.789984283.134194
std899.158011930.278942
min0.0050000.140000
25%0.6000004.250000
50%3.34250017.250000
75%48.202500166.000000
max6654.0000005712.000000
\n", + "
" + ], + "text/plain": [ + " Brain Body\n", + "count 62.000000 62.000000\n", + "mean 198.789984 283.134194\n", + "std 899.158011 930.278942\n", + "min 0.005000 0.140000\n", + "25% 0.600000 4.250000\n", + "50% 3.342500 17.250000\n", + "75% 48.202500 166.000000\n", + "max 6654.000000 5712.000000" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0.87266208430433312" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model = linear_model.LinearRegression()\n", + "model.fit(df[\"Brain\"].to_frame(), df[\"Body\"])\n", + "model.score(df[\"Brain\"].to_frame(), df[\"Body\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## The brain weight appears to be a fairly accurate predictor for body weight" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Body Weight = [ 0.96649637] * Brain Weight + 91.00439620740681\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.scatter(df[\"Brain\"], df[\"Body\"])\n", + "plt.plot(range(0, 7000, 50), model.predict(pd.DataFrame(np.array(range(0, 7000, 50)))))\n", + "print(\"Body Weight = {} * Brain Weight + {}\".format(model.coef_, model.intercept_))" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -109,15 +340,199 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 37, "metadata": { "collapsed": false }, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
SexRankYearDegreeYSdegSalary
count52.00000052.00000052.00000052.00000052.00000052.000000
mean0.2692312.0384627.4807690.65384616.11538523797.653846
std0.4478880.8623165.5075360.48038410.2223405917.289154
min0.0000001.0000000.0000000.0000001.00000015000.000000
25%0.0000001.0000003.0000000.0000006.75000018246.750000
50%0.0000002.0000007.0000001.00000015.50000023719.000000
75%1.0000003.00000011.0000001.00000023.25000027258.500000
max1.0000003.00000025.0000001.00000035.00000038045.000000
\n", + "
" + ], + "text/plain": [ + " Sex Rank Year Degree YSdeg Salary\n", + "count 52.000000 52.000000 52.000000 52.000000 52.000000 52.000000\n", + "mean 0.269231 2.038462 7.480769 0.653846 16.115385 23797.653846\n", + "std 0.447888 0.862316 5.507536 0.480384 10.222340 5917.289154\n", + "min 0.000000 1.000000 0.000000 0.000000 1.000000 15000.000000\n", + "25% 0.000000 1.000000 3.000000 0.000000 6.750000 18246.750000\n", + "50% 0.000000 2.000000 7.000000 1.000000 15.500000 23719.000000\n", + "75% 1.000000 3.000000 11.000000 1.000000 23.250000 27258.500000\n", + "max 1.000000 3.000000 25.000000 1.000000 35.000000 38045.000000" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "df = pd.read_fwf(\"salary.txt\", header=None, \n", - " names=[\"Sex\", \"Rank\", \"Year\", \"Degree\", \"YSdeg\", \"Salary\"])" + " names=[\"Sex\", \"Rank\", \"Year\", \"Degree\", \"YSdeg\", \"Salary\"])\n", + "df.describe()" ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "model = linear_model.LinearRegression()" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0.85471806744109691" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model.fit(df.drop(\"Salary\", 1), df.Salary)\n", + "model.score(df.drop(\"Salary\", 1), df.Salary)" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0.8485077204335425" + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model.fit(df.drop([\"Salary\", \"Sex\"], 1), df.Salary)\n", + "model.score(df.drop([\"Salary\", \"Sex\"], 1), df.Salary)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Sex appears to be an insignificant factor in determining salary" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [] } ], "metadata": {