-
Notifications
You must be signed in to change notification settings - Fork 0
/
ClassifAI_ 2 - Linear Regression
1 lines (1 loc) · 15.6 KB
/
ClassifAI_ 2 - Linear Regression
1
{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"name":"ClassifAI: 2 - Linear Regression","provenance":[{"file_id":"14NGE9UHxFaiLs9XXzKGTIk0NHTbA8yM_","timestamp":1654019517612},{"file_id":"1lkCV4BrFpc7Su5LWsu-l0at15tHAKEtm","timestamp":1653848445956}],"collapsed_sections":[]},"kernelspec":{"name":"python3","display_name":"Python 3"},"language_info":{"name":"python"}},"cells":[{"cell_type":"markdown","metadata":{"id":"5c3ofkx48djO"},"source":["### Get dataset and format it"]},{"cell_type":"code","metadata":{"id":"eK6wcn072y9Z","executionInfo":{"status":"ok","timestamp":1660407171485,"user_tz":420,"elapsed":5,"user":{"displayName":"Leo Huang","userId":"16558901284710269921"}}},"source":["import numpy as np\n","import matplotlib.pyplot as plt"],"execution_count":1,"outputs":[]},{"cell_type":"code","metadata":{"id":"Lo9_oBBv7tZ1","executionInfo":{"status":"ok","timestamp":1660407172734,"user_tz":420,"elapsed":1252,"user":{"displayName":"Leo Huang","userId":"16558901284710269921"}}},"source":["from sklearn import datasets"],"execution_count":2,"outputs":[]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"dqUgjgE08FQM","executionInfo":{"status":"ok","timestamp":1660407172946,"user_tz":420,"elapsed":215,"user":{"displayName":"Leo Huang","userId":"16558901284710269921"}},"outputId":"e84d56d6-44db-4204-ec0e-e8d1153addbb"},"source":["diabetes_X, diabetes_y = datasets.load_diabetes(return_X_y=True)\n","print(diabetes_X[0]) #print the first data point"],"execution_count":3,"outputs":[{"output_type":"stream","name":"stdout","text":["[ 0.03807591 0.05068012 0.06169621 0.02187235 -0.0442235 -0.03482076\n"," -0.04340085 -0.00259226 0.01990842 -0.01764613]\n"]}]},{"cell_type":"code","metadata":{"id":"3c63AiBa8MQZ","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1660407172947,"user_tz":420,"elapsed":9,"user":{"displayName":"Leo Huang","userId":"16558901284710269921"}},"outputId":"b5586b2a-5267-4920-ec2b-c6aef2e43a62"},"source":["diabetes_X = diabetes_X[:, np.newaxis, 2] #get the third column (bmi), and wrap each element in a list\n","print(diabetes_X[:5]) #show the first five BMIs"],"execution_count":4,"outputs":[{"output_type":"stream","name":"stdout","text":["[[ 0.06169621]\n"," [-0.05147406]\n"," [ 0.04445121]\n"," [-0.01159501]\n"," [-0.03638469]]\n"]}]},{"cell_type":"code","metadata":{"id":"zhypKwZC8NNQ","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1660407172948,"user_tz":420,"elapsed":6,"user":{"displayName":"Leo Huang","userId":"16558901284710269921"}},"outputId":"dd5a6e4a-ec19-40a0-a40c-9b4bc316b27e"},"source":["diabetes_X_train = diabetes_X[:-20]\n","diabetes_X_test = diabetes_X[-20:]\n","\n","diabetes_y_train = diabetes_y[:-20]\n","diabetes_y_test = diabetes_y[-20:]\n","\n","print(diabetes_y[:5]) #show the first five diabetes disease progressions"],"execution_count":5,"outputs":[{"output_type":"stream","name":"stdout","text":["[151. 75. 141. 206. 135.]\n"]}]},{"cell_type":"markdown","metadata":{"id":"-7B_CEwH8Z3v"},"source":["### Train model"]},{"cell_type":"code","metadata":{"id":"t7rO59FN8HlN","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1660407173357,"user_tz":420,"elapsed":413,"user":{"displayName":"Leo Huang","userId":"16558901284710269921"}},"outputId":"7de15682-c0c5-4e43-d3f1-ad95fd7f9288"},"source":["from sklearn import linear_model\n","from sklearn.metrics import mean_squared_error, r2_score\n","regr = linear_model.LinearRegression() # Create linear regression object\n","\n","regr.fit(diabetes_X_train, diabetes_y_train) # Train the model using the training sets"],"execution_count":6,"outputs":[{"output_type":"execute_result","data":{"text/plain":["LinearRegression()"]},"metadata":{},"execution_count":6}]},{"cell_type":"code","metadata":{"id":"GqKdBuV58HQV","executionInfo":{"status":"ok","timestamp":1660407173358,"user_tz":420,"elapsed":14,"user":{"displayName":"Leo Huang","userId":"16558901284710269921"}}},"source":["diabetes_y_pred = regr.predict(diabetes_X_test) # Make predictions for the whole testing dataset"],"execution_count":7,"outputs":[]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"8wrT8i2K8Nuw","executionInfo":{"status":"ok","timestamp":1660407173359,"user_tz":420,"elapsed":13,"user":{"displayName":"Leo Huang","userId":"16558901284710269921"}},"outputId":"9917a997-94bc-4c91-8ffd-646bda93974b"},"source":["# The coefficients\n","print('Coefficients: \\n', regr.coef_)\n","# The mean squared error\n","print('Mean squared error: %.2f'\n"," % mean_squared_error(diabetes_y_test, diabetes_y_pred))\n","# The coefficient of determination: 1 is perfect prediction\n","print('Coefficient of determination: %.2f'\n"," % r2_score(diabetes_y_test, diabetes_y_pred))"],"execution_count":8,"outputs":[{"output_type":"stream","name":"stdout","text":["Coefficients: \n"," [938.23786125]\n","Mean squared error: 2548.07\n","Coefficient of determination: 0.47\n"]}]},{"cell_type":"markdown","metadata":{"id":"ixmoQost8q9c"},"source":["### Plot outputs"]},{"cell_type":"code","metadata":{"id":"zr0doBOP8ZBy","executionInfo":{"status":"ok","timestamp":1660407173680,"user_tz":420,"elapsed":329,"user":{"displayName":"Leo Huang","userId":"16558901284710269921"}}},"source":["from sklearn.metrics import mean_squared_error, r2_score"],"execution_count":9,"outputs":[]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":262},"id":"-oQG12EcvaDU","executionInfo":{"status":"ok","timestamp":1660407173681,"user_tz":420,"elapsed":9,"user":{"displayName":"Leo Huang","userId":"16558901284710269921"}},"outputId":"9499428e-a174-4768-bd83-38020e36d2e9"},"source":["# Plot outputs\n","plt.scatter(diabetes_X_test, diabetes_y_test, color='black')\n","plt.plot(diabetes_X_test, diabetes_y_pred, color='blue', linewidth=3)\n","\n","plt.xlabel(\"BMI\")\n","plt.ylabel(\"Diabetes disease progressions\")\n","\n","plt.xticks(())\n","plt.yticks(())\n","\n","plt.show()"],"execution_count":10,"outputs":[{"output_type":"display_data","data":{"text/plain":["<Figure size 432x288 with 1 Axes>"],"image/png":"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\n"},"metadata":{}}]},{"cell_type":"code","source":[""],"metadata":{"id":"NFPpMOzVP9PK","executionInfo":{"status":"ok","timestamp":1660407173682,"user_tz":420,"elapsed":7,"user":{"displayName":"Leo Huang","userId":"16558901284710269921"}}},"execution_count":10,"outputs":[]}]}