diff --git a/Solutions to Chapter 4 Exercises and Problems.ipynb b/Solutions to Chapter 4 Exercises and Problems.ipynb index 1665f1c..9d2bc8c 100644 --- a/Solutions to Chapter 4 Exercises and Problems.ipynb +++ b/Solutions to Chapter 4 Exercises and Problems.ipynb @@ -9,8 +9,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "/Users/neilzhang/projects/Learn-From-Data-A-Short-Course\n", - "['/Users/neilzhang/projects/Learn-From-Data-A-Short-Course', '/Applications/anaconda3/lib/python37.zip', '/Applications/anaconda3/lib/python3.7', '/Applications/anaconda3/lib/python3.7/lib-dynload', '', '/Applications/anaconda3/lib/python3.7/site-packages', '/Applications/anaconda3/lib/python3.7/site-packages/aeosa', '/Applications/anaconda3/lib/python3.7/site-packages/IPython/extensions', '/Users/neilzhang/.ipython', '/Users/neilzhang/projects/Learn-From-Data-A-Short-Course/libs']\n" + "D:\\git\\Learn-From-Data-A-Short-Course\n", + "['D:\\\\git\\\\Learn-From-Data-A-Short-Course', 'C:\\\\ProgramData\\\\Anaconda3\\\\python37.zip', 'C:\\\\ProgramData\\\\Anaconda3\\\\DLLs', 'C:\\\\ProgramData\\\\Anaconda3\\\\lib', 'C:\\\\ProgramData\\\\Anaconda3', '', 'C:\\\\ProgramData\\\\Anaconda3\\\\lib\\\\site-packages', 'C:\\\\ProgramData\\\\Anaconda3\\\\lib\\\\site-packages\\\\win32', 'C:\\\\ProgramData\\\\Anaconda3\\\\lib\\\\site-packages\\\\win32\\\\lib', 'C:\\\\ProgramData\\\\Anaconda3\\\\lib\\\\site-packages\\\\Pythonwin', 'C:\\\\ProgramData\\\\Anaconda3\\\\lib\\\\site-packages\\\\IPython\\\\extensions', 'C:\\\\Users\\\\zhang\\\\.ipython', 'D:\\\\git\\\\Learn-From-Data-A-Short-Course\\\\libs']\n" ] } ], @@ -2137,102 +2137,161 @@ "metadata": {}, "outputs": [], "source": [ - "def run_one_experiment_419(Q, N, sigma_square, normalized_aqs,\n", - " test_xs, test_ys, algo_name,reg_type, reg_param):\n", + "# Problem 4.19\n", + "def run_one_experiment_419(Q, xs, ys, test_xs, test_ys, algo_name,reg_type, reg_param):\n", " \"\"\"Generate one set of training data for a given model and compute the test error\n", " \"\"\"\n", - " \n", - " xs, ys = data.generate_data_set(N, normalized_aqs, sigma_square)\n", " lr = lm.LinearRegression(algo_name, reg_type, reg_param, poly_degree = Q)\n", " lr.fit(xs, ys)\n", " Eout = lr.calc_error(test_xs, test_ys)\n", - " return Eout, lr.w, xs, ys\n", + " return Eout, lr\n", "\n", "def calc_avg_Eout_419(num_exps, Q, N, sigma_square, normalized_aqs, \n", " test_xs, test_ys, algo_name, reg_type, reg_params):\n", " \n", - " avg_Eouts, std_Eouts = [], []\n", - " for reg_param in reg_params:\n", - " Eouts = []\n", - " for _ in np.arange(num_exps):\n", - " Eout, w, xs, ys = run_one_experiment_419(Q, N, sigma_square, normalized_aqs, test_xs, \n", - " test_ys, algo_name, reg_type, reg_param)\n", - " Eouts.append(Eout)\n", - "\n", - " avg_Eout = np.mean(Eouts)\n", - " std_Eout = np.std(Eouts)\n", - " return avg_Eouts, std_Eouts\n" + " all_Eouts = np.zeros((num_exps, len(reg_params)))\n", + " for i in np.arange(num_exps):#For each set of data, we change the regularization parameters\n", + " xs, ys = data.generate_data_set(N, normalized_aqs, sigma_square)\n", + " for j, reg_param in enumerate(reg_params):\n", + " Eout, lr = run_one_experiment_419(Q, xs, ys, test_xs, test_ys, \n", + " algo_name, reg_type, reg_param)\n", + " all_Eouts[i, j] = Eout\n", + " \n", + " avg_Eouts = np.zeros(len(reg_params))\n", + " for j, _ in enumerate(reg_params):\n", + " avg_Eouts[j] = np.mean(all_Eouts[:, j])\n", + " return avg_Eouts, all_Eouts\n" ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 56, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "sum_m: (1, 32) upper_m: (16, 32) lower_m: (16, 32)\n", - "G: (33, 32) h: (33, 1)\n", - " pcost dcost gap pres dres\n", - " 0: -4.6451e-01 -2.4286e+00 5e+01 7e+00 4e+00\n", - " 1: -8.3295e-02 -2.4885e+00 4e+00 2e-01 1e-01\n", - " 2: -8.2397e-02 -6.3934e-01 6e-01 2e-02 1e-02\n", - " 3: -2.7436e-01 -8.2636e-01 6e-01 1e-02 8e-03\n", - " 4: -3.8874e-01 -4.8533e-01 1e-01 2e-03 1e-03\n", - " 5: -4.4119e-01 -4.8283e-01 4e-02 8e-05 5e-05\n", - " 6: -4.6525e-01 -4.6727e-01 2e-03 3e-06 2e-06\n", - " 7: -4.6686e-01 -4.6692e-01 6e-05 4e-08 3e-08\n", - " 8: -4.6690e-01 -4.6690e-01 1e-06 6e-10 3e-10\n", - " 9: -4.6690e-01 -4.6690e-01 2e-08 6e-12 2e-11\n", - "Optimal solution found.\n" + "C = 1 Eout: [1.57281507]\n", + "C = 10 Eout: [1.10205723]\n", + "C = 100 Eout: [2.23696045]\n", + "C = 1000 Eout: [1.60284402]\n" ] }, { - "ename": "ValueError", - "evalue": "matmul: Input operand 1 has a mismatch in its core dimension 0, with gufunc signature (n?,k),(k,m?)->(n?,m?) (size 32 is different from 16)", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 20\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 21\u001b[0m avg_Eouts, std_Eouts = calc_avg_Eout_419(num_exps, Q, N, sigma_square, normalized_aqs, \n\u001b[0;32m---> 22\u001b[0;31m test_xs, test_ys, algo_name, reg_type, Cs)\n\u001b[0m\u001b[1;32m 23\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 24\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mCs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mavg_Eouts\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlabel\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'Average E_out'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m\u001b[0m in \u001b[0;36mcalc_avg_Eout_419\u001b[0;34m(num_exps, Q, N, sigma_square, normalized_aqs, test_xs, test_ys, algo_name, reg_type, reg_params)\u001b[0m\n\u001b[1;32m 18\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0m_\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnum_exps\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 19\u001b[0m Eout, w, xs, ys = run_one_experiment_419(Q, N, sigma_square, normalized_aqs, test_xs, \n\u001b[0;32m---> 20\u001b[0;31m test_ys, algo_name, reg_type, reg_param)\n\u001b[0m\u001b[1;32m 21\u001b[0m \u001b[0mEouts\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mEout\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 22\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m\u001b[0m in \u001b[0;36mrun_one_experiment_419\u001b[0;34m(Q, N, sigma_square, normalized_aqs, test_xs, test_ys, algo_name, reg_type, reg_param)\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0mlr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlm\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mLinearRegression\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0malgo_name\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mreg_type\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mreg_param\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpoly_degree\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mQ\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 8\u001b[0m \u001b[0mlr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mxs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mys\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 9\u001b[0;31m \u001b[0mEout\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcalc_error\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtest_xs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtest_ys\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 10\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mEout\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mw\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mxs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mys\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 11\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/projects/Learn-From-Data-A-Short-Course/libs/linear_models.py\u001b[0m in \u001b[0;36mcalc_error\u001b[0;34m(self, X, y)\u001b[0m\n\u001b[1;32m 173\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 174\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mcalc_error\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mX\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 175\u001b[0;31m \u001b[0my_pred\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpredict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 176\u001b[0m \u001b[0merr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0my_pred\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 177\u001b[0m \u001b[0merror\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmatmul\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0merr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtranspose\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mflatten\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m/\u001b[0m\u001b[0my\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/projects/Learn-From-Data-A-Short-Course/libs/linear_models.py\u001b[0m in \u001b[0;36mpredict\u001b[0;34m(self, X)\u001b[0m\n\u001b[1;32m 169\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpoly_degree\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 170\u001b[0m \u001b[0mZ\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdu\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpolynomial_transform\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpoly_degree\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mX\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 171\u001b[0;31m \u001b[0my_pred\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmatmul\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mZ\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mw\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 172\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0my_pred\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 173\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mValueError\u001b[0m: matmul: Input operand 1 has a mismatch in its core dimension 0, with gufunc signature (n?,k),(k,m?)->(n?,m?) (size 32 is different from 16)" - ] + "data": { + "image/png": "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JI7yft9r+prgxZxd1s8eH+RtD+JQzg7ynK1pnkVEREQk6AVq9wkREREREduoKBYRERGRoKeiWERERESCnopiEREREQl6KopFREREJOipKBYRERGRoKeiWERERESCnopiEREREQl6KopFREREJOipKBYRERGRoKeiWERERESCnopiEREREQl6KopFREREJOipKBYRERGRoKeiWERERESCnopiEREREQl6KopFREREJOipKBYRERGRoKeiWERERESCnopiEREREQl6KopFREREJOipKBYRERGRoKeiWERERESCnopiEREREQl6KopFREREJOipKBYRERGRoKeiWERERESCnopiEREREQl6KopFREREJOipKBYRERGRoKeiWERERESCnopiEREREQl6KopFREREJOipKBYRERGRoKeiWERERESCnopiEREREQl6KopFREREJOipKBYRERGRoKeiWERERESCnopiEREREQl6KopFREREJOipKBYRERGRoKeiWERERESCnopiEREREQl6KopFREREJOipKBYRERGRoKeiWERERESCnopiEREREQl6KopFREREJOipKBYRERGRoKeiWERERESCnopiEREREQl6KopFREREJOipKBYRERGRoKeiWERERESCnopiEREREQl6KopFREREJOipKBYRERGRoKeiWERERESCnopiEREREQl6KopFREREJOipKBYRERGRoKeiWERERESCnopiEREREQl6KopFREREJOipKBYRERGRoKeiWERERESCnopiEREREQl6KopFREREJOipKBYRERGRoKeiWERERESCnopiEREREQl6KopFREREJOipKBYRERGRoKeiWERERESCnopiEREREQl6KopFREREJOipKBafMcZcZYxZZow5aozZaYz5whgz0OZz/MEYs9AYc9wY810p65OMMenu9enGmKRi64wx5lljzD73x3PGGGNnfCIi/irQc3R5+4qURkWx+IQx5s/Ai8DTQGOgJfAycLHNp9rvPs/EUmKIAD4G3gDigdnAx+7lALcAlwC9gJ7ARcCtNscnIuJ3Aj1He7CvyGmMZVm+jkGCjDEmDtgO3GBZ1ns1dM6bgGssyxpabNkI4N9Ac8v9h2CM2QrcYlnWl8aYhcAsy7JmuNfdCNxsWVa/mohZRMQXakOOrmjfmvieJPCopVh8oT8QBXzk6Q7GmPHGmINlfVQxjm7ASuvUd4Yr3csL168otm5FsXUiIrVVbcjRFe0rcpowXwcgQSkB2GtZlsPTHSzLmkgpt9eqqR5wqMSyQ0BMGesPAfWMMcbSLRYRqb0CPkd7sK/IadRSLL6wD2hgjPH1m7KjQGyJZbHAkTLWxwJHVRCLSC1XG3J0RfuKnEZFsfjCT0AOrgckPGKMedj9BHSpH1WMYzXQs8SIEj3dywvX9yq2rlexdSIitVVtyNEV7StyGhXFUuMsyzoE/AWYZoy5xBhTxxgTbow53xjzXBn7PG1ZVr2yPso6lzEm1BgThaurUIgxJsoYE+5e/R1QANxljIk0xvzJvfxb9+fXgT8bY5oZY5oC9wKzqvv9i4j4s1qSoyvaV+Q0Gn1CfMYYczUwDuiC65ZWOvCUZVkLbTzH9bieQC5utmVZ17vX9wZmAl2BtcCNlmUtd68zwLPATe79ZgIPqvuEiASDQM/R5e0rUhoVxSIiIiIS9NR9QkRERESCnopiEREREQl6KopFREREJOipKBYRERGRoOeTgbkbNGhgtW7d2henFhGplvT09L2WZTX0dRw1STlbRAKZp3nbJ0Vx69atWbZsmS9OLSJSLcaYTF/HUNOUs0UkkHmat9V9QkRERESCnopiEREREQl6KopFREREJOj5pE+xiIiISKDJz88nKyuLnJwcX4cipYiKiqJ58+aEh4dXaX8VxSIiIiIeyMomR0oBAAAgAElEQVTKIiYmhtatW2OM8XU4UoxlWezbt4+srCzatGlTpWOo+4SIiIiIB3JyckhISFBB7IeMMSQkJFSrFV9FsYiIiIiHVBD7r+r+bFQUi0jw2b8Zvn0KDm71dSS1V8Z/IX2Wr6MQEfGYimIRCT77NsMPz8GR3b6OpPZa9R78/LqvoxCpVfbt20dSUhJJSUkkJibSrFmzoq/z8vI8OsYNN9zA+vXry91m2rRpvPnmm3aEzMCBA+nUqRM9e/akc+fO3HXXXRw6dKjcfZxOJxMnTrTl/JWholhEgo/jhOtzWKRv46jNIupB3jFfRyFSqyQkJJCRkUFGRgZjx45l3LhxRV9HREQArgfOnE5nmcf497//TadOnco9zx133MHVV19tW9zvvPMOK1euZOXKlYSEhDBy5Mhyt1dRLCJSUxy5rs9hUb6NozZTUSwCQHrmAabN20R65gGvnWPTpk10796dsWPHkpyczM6dO7nllltITU2lW7duPP7440XbDhw4kIyMDBwOB/Xr12f8+PH06tWL/v37k52dDcCECRN48cUXi7YfP348aWlpdOrUiYULFwJw7NgxLrvsMnr16sWVV15JamoqGRkZ5cYZERHB888/z8aNG1m9ejUAv/vd70hJSaFbt27MnDkTgPHjx3PkyBGSkpK47rrrytzObiqKRST45LtbisNVFHtNZD3IPeLrKER8Kj3zAFfPXMQLX63n6pmLvFoYr1mzhhtvvJHly5fTrFkzJk6cyLJly1ixYgVz585lzZo1p+1z6NAhhgwZwooVK+jfvz+vvfZaqce2LIslS5bw97//vajA/sc//kFiYiIrVqxg/PjxLF++3KM4w8LC6NmzJ+vWrQNg9uzZpKens3TpUiZNmsSBAweYOHEiMTExZGRk8Prrr5e5nd1UFItI8HG4h+xRS7H3RNRVS7EEvUWb95HncOK0IN/hZNHmfV47V7t27ejTp0/R12+99RbJyckkJyezdu3aUovi6Ohozj//fABSUlLYsmVLqccu7O5QfJv58+dzxRVXANCrVy+6devmcayWZRW9njx5clFLdVZWFr/++mup+3i6XXVo8g4RCT7qPuF9EfXAme+61uq7LUGqX9sEIsJCyHc4CQ8LoV/bBK+dq27dukWvN27cyJQpU1iyZAn169fnmmuuKXX83sJ+yAChoaE4HI5Sjx0ZGXnaNsUL28pwOBz88ssvdOnSha+//poffviBRYsWER0dzcCBA0uN09PtqkstxSISfIoetFNR7DUR9Vyf1VosQSylVTxv3tSPP4/oxJs39SOlVXyNnPfw4cPExMQQGxvLzp07mTNnju3nGDhwIO+++y4Aq1atKrUluqS8vDwefPBB2rdvT9euXTl06BBnnHEG0dHRrF69mqVLlwKuLhZAUQFe1nZ2U0uxiAQfRy5gIDTc15HUXhHuVqvcI1DnDN/GIuJDKa3ia6wYLpScnEzXrl3p3r07bdu2ZcCAAbaf48477+S6666jZ8+eJCcn0717d+Li4krddvTo0URGRpKbm8uIESP48MMPAbjwwguZMWMGvXr1onPnzvTt27donxtvvJGePXuSmprKjBkzytzOTqaqzd/VkZqaai1btqzGzysiAsCcR2DZa/DIzkrvaoxJtywr1QtR+a0q5ezV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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" } ], "source": [ - "#### Problem 4.19 (a)\n", - "\n", "Qf = 15 #target function\n", "sigma_square = 0.5\n", "test_N = 100 #number of test samples\n", "normalized_aqs = data.generate_target_coefficients(Qf)\n", "test_xs, test_ys = data.generate_data_set(test_N, normalized_aqs, sigma_square)\n", + "x_true = np.arange(-1, 1, 0.01).reshape(-1, 1)\n", + "y_true = data.calc_legendre_array(normalized_aqs, x_true)\n", "\n", - "max_C = 120\n", - "Cs = np.arange(1, max_C+1, 5)\n", "algo_name = 'lasso'\n", "reg_type = 'Ivanov'\n", "\n", "Q = 15\n", "N = 30\n", + "Cs = [1, 10, 100, 1000]\n", + "\n", + "#Fix training data\n", + "xs, ys = data.generate_data_set(N, normalized_aqs, sigma_square)\n", + "xs_sorted = xs.flatten()\n", + "ys_sorted = ys.flatten()\n", + "xs_ids = np.argsort(xs_sorted)\n", + "xs_sorted = xs_sorted[xs_ids]\n", + "ys_sorted = ys_sorted[xs_ids]\n", + "\n", + "f, axarr = plt.subplots(2, 2, figsize=(12, 10))\n", + "\n", + "for idx, C in enumerate(Cs):\n", + " i = int(idx / 2)\n", + " j = int(idx - i*2)\n", + " #print(idx, i, j)\n", + " lr = lm.LinearRegression(algo_name, reg_type, reg_param = C, poly_degree = Q)\n", + " lr.fit(xs, ys)\n", + " Eout = lr.calc_error(test_xs, test_ys)\n", + " print('C = ', C, 'Eout: ', Eout)\n", + " ytrain_pred = lr.predict(x_true)\n", + "\n", + " axarr[i,j].plot(xs, ys, '.', label='Training Data')\n", + " axarr[i,j].plot(x_true, ytrain_pred, label='Prediction')\n", + " axarr[i,j].plot(x_true, y_true, label='True Target')\n", + " axarr[i,j].legend()\n", + " axarr[i,j].set_title(\"C = \"+str(C))\n", + " \n", + "# Fine-tune figure; make subplots farther from each other. \n", + "f.subplots_adjust(hspace=0.5)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "metadata": {}, + "outputs": [], + "source": [ + "#### Problem 4.19 (a)\n", "\n", + "Qf = 15 #target function\n", + "sigma_square = 0.5\n", + "test_N = 100 #number of test samples\n", + "normalized_aqs = data.generate_target_coefficients(Qf)\n", + "test_xs, test_ys = data.generate_data_set(test_N, normalized_aqs, sigma_square)\n", "\n", - "Cs = Cs[:1]\n", - "num_exps = 100\n", + "max_C1, max_C2, max_C3 = 10, 500, 5000\n", + "Cs1 = np.arange(0, max_C1+1, 1)\n", + "Cs2 = np.arange(0, max_C2+1, 10)\n", + "Cs3 = np.arange(0, max_C3+1, 500)\n", + "Cs = np.unique(np.concatenate([Cs1[1:], Cs2[1:], Cs3[1:]]))\n", + "algo_name = 'lasso'\n", + "reg_type = 'Ivanov'\n", "\n", - "avg_Eouts, std_Eouts = calc_avg_Eout_419(num_exps, Q, N, sigma_square, normalized_aqs, \n", - " test_xs, test_ys, algo_name, reg_type, Cs)\n", + "Q = 15\n", + "N = 30\n", "\n", + "#Cs = Cs[:1]\n", + "num_exps = 1000\n", + "avg_Eouts, all_Eouts = calc_avg_Eout_419(num_exps, Q, N, sigma_square, normalized_aqs, \n", + " test_xs, test_ys, algo_name, reg_type, Cs)" + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ "plt.plot(Cs, avg_Eouts, label='Average E_out')\n", "plt.legend()\n", - "plt.title(\"Average E_out vs. regularization parameter C\")\n", - "#plt.ylim(-2, 1)\n", + "plt.title(\"Lasso Ivanov: Average E_out vs. regularization parameter C\")\n", + "plt.ylim(0, 10)\n", "plt.show()" ] }, @@ -2240,6 +2299,253 @@ "cell_type": "code", "execution_count": 4, "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[ 0.1052754 ]\n", + " [-0.46129409]\n", + " [ 1.07857145]\n", + " [-0.31244084]\n", + " [-0.63538372]\n", + " [ 0.1037703 ]\n", + " [-0.53452408]\n", + " [ 0.3376482 ]\n", + " [-0.16548734]\n", + " [ 0.51235139]\n", + " [ 0.10285117]\n", + " [ 0.67437082]\n", + " [ 0.25821051]\n", + " [ 0.82354611]\n", + " [ 0.33988382]\n", + " [ 0.95069858]] [[ 0.1052754 ]\n", + " [-0.46129409]\n", + " [ 1.07857145]\n", + " [-0.31244084]\n", + " [-0.63538372]\n", + " [ 0.1037703 ]\n", + " [-0.53452408]\n", + " [ 0.3376482 ]\n", + " [-0.16548734]\n", + " [ 0.51235139]\n", + " [ 0.10285117]\n", + " [ 0.67437082]\n", + " [ 0.25821051]\n", + " [ 0.82354611]\n", + " [ 0.33988382]\n", + " [ 0.95069858]]\n" + ] + } + ], + "source": [ + "Qf = 15 #target function\n", + "sigma_square = 0.5\n", + "test_N = 100 #number of test samples\n", + "Q = 15\n", + "N = 30\n", + "lambda_t = 0.1\n", + "\n", + "normalized_aqs = data.generate_target_coefficients(Qf)\n", + "test_xs, test_ys = data.generate_data_set(test_N, normalized_aqs, sigma_square)\n", + "x_true = np.arange(-1, 1, 0.01).reshape(-1, 1)\n", + "y_true = data.calc_legendre_array(normalized_aqs, x_true)\n", + "\n", + "xs, ys = data.generate_data_set(N, normalized_aqs, sigma_square)\n", + "xs_sorted = xs.flatten()\n", + "ys_sorted = ys.flatten()\n", + "xs_ids = np.argsort(xs_sorted)\n", + "xs_sorted = xs_sorted[xs_ids]\n", + "ys_sorted = ys_sorted[xs_ids]\n", + "\n", + "X = data.polynomial_transform(Q, xs)\n", + "w_sklearn_ridge = lm.sklearn_ridge(X, ys, lambda_t, False, 'cholesky')\n", + "w_ridge = lm.ridge_fit_tikhonov(X, ys, lambda_t)\n", + "print(w_sklearn_ridge, w_ridge)\n", + "\n", + "#plt.plot(xs_sorted, ys_sorted, '.', label='train data')\n", + "#plt.plot(x_true, sk_pred, label='sklearn')\n", + "#plt.plot(x_true, y_pred, label='ridge predict')\n", + "#plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[ True, True],\n", + " [ True, True]])" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a = np.array([[3,1], [1,2]])\n", + "b = np.array([9,8])\n", + "x = np.linalg.solve(a, b)\n", + "x, np.matmul(np.linalg.inv(a),b)\n", + "a.transpose()==np.transpose(a)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "lambda = 0.0 Eout: [712.25410032]\n", + "lambda = 0.00030000000000000003 Eout: [0.85570057]\n", + "lambda = 0.03 Eout: [0.90104294]\n", + "lambda = 3.0 Eout: [0.93506579]\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Ridge Regression\n", + "Qf = 15 #target function\n", + "sigma_square = 0.5\n", + "test_N = 100 #number of test samples\n", + "normalized_aqs = data.generate_target_coefficients(Qf)\n", + "test_xs, test_ys = data.generate_data_set(test_N, normalized_aqs, sigma_square)\n", + "x_true = np.arange(-1, 1, 0.01).reshape(-1, 1)\n", + "y_true = data.calc_legendre_array(normalized_aqs, x_true)\n", + "\n", + "algo_name = 'ridge'\n", + "reg_type = 'Tikhonov'\n", + "\n", + "Q = 15\n", + "N = 30\n", + "alphas = [0.0, 1.0e-5, 1.0e-3, 0.1]\n", + "lambdas = np.array(alphas) * N\n", + "if algo_name == 'sklearn_ridge':\n", + " lambdas = alphas\n", + " \n", + "#Fix training data\n", + "xs, ys = data.generate_data_set(N, normalized_aqs, sigma_square)\n", + "xs_sorted = xs.flatten()\n", + "ys_sorted = ys.flatten()\n", + "xs_ids = np.argsort(xs_sorted)\n", + "xs_sorted = xs_sorted[xs_ids]\n", + "ys_sorted = ys_sorted[xs_ids]\n", + "\n", + "f, axarr = plt.subplots(2, 2, figsize=(12, 10))\n", + "\n", + "for idx, lambda_t in enumerate(lambdas):\n", + " i = int(idx / 2)\n", + " j = int(idx - i*2)\n", + " #print(idx, i, j)\n", + " lambda_t = lambda_t\n", + " lr = lm.LinearRegression(algo_name, reg_type, reg_param = lambda_t, poly_degree = Q)\n", + " lr.fit(xs, ys)\n", + " Eout = lr.calc_error(test_xs, test_ys)\n", + " print('lambda = ', lambda_t, 'Eout: ', Eout)\n", + " ytrain_pred = lr.predict(x_true)\n", + "\n", + " axarr[i,j].plot(xs, ys, '.', label='Training Data')\n", + " axarr[i,j].plot(x_true, ytrain_pred, label='Prediction')\n", + " axarr[i,j].plot(x_true, y_true, label='True Target')\n", + " axarr[i,j].set_ylim(-5,5)\n", + " axarr[i,j].legend()\n", + " axarr[i,j].set_title(\"lambda = \"+str(lambda_t))\n", + " \n", + "# Fine-tune figure; make subplots farther from each other. \n", + "f.subplots_adjust(hspace=0.5)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 86, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Ridge with Tikhonov regularization\n", + "max_lambda1, max_lambda2, max_lambda3 = 0.1,2,10\n", + "lambdas1 = np.arange(0, max_lambda1+1, 0.02)\n", + "lambdas2 = np.arange(0, max_lambda2+1, 0.2)\n", + "lambdas3 = np.arange(0, max_lambda3+1, 1)\n", + "lambdas = np.unique(np.concatenate([lambdas1[1:], lambdas2[1:], lambdas3[1:]]))\n", + "algo_name = 'ridge'\n", + "reg_type = 'Tikhonov'\n", + "\n", + "Q = 15\n", + "N = 30\n", + "\n", + "#Cs = Cs[:1]\n", + "num_exps = 1000\n", + "avg_Eouts, all_Eouts = calc_avg_Eout_419(num_exps, Q, N, sigma_square, normalized_aqs, \n", + " test_xs, test_ys, algo_name, reg_type, lambdas)\n", + "\n", + "plt.plot(lambdas[:10], avg_Eouts[:10], label='Average E_out')\n", + "plt.legend()\n", + "plt.title(\"Ridge Tikhonov: Average E_out vs. regularization parameter lambda\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 94, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(lambdas[:10], avg_Eouts[:10], label='Average E_out')\n", + "plt.legend()\n", + "plt.title(\"Ridge Tikhonov: Average E_out vs. regularization parameter lambda\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -2267,12 +2573,20 @@ "18: 1.2906e+00 1.2906e+00 4e-06 4e-09 2e-07\n", "19: 1.2906e+00 1.2906e+00 1e-06 1e-09 6e-08\n", "20: 1.2906e+00 1.2906e+00 1e-06 8e-10 4e-08\n", - "Optimal solution found.\n", - "[ 4.11e-01]\n", - "[ 5.59e-01]\n", - "[-7.20e-01]\n", - "\n" + "Optimal solution found.\n" ] + }, + { + "data": { + "text/plain": [ + "array([[ 0.41132242],\n", + " [ 0.55884717],\n", + " [-0.72007173]])" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ @@ -2294,7 +2608,9 @@ "h = matrix([1.0, 0.0, 0.0, 0.0, 20., 10., 40., 10., 80., 10., 40., 10., 15.])\n", "dims = {'l': 0, 'q': [4], 's': [3]}\n", "sol = solvers.cp(F, G, h, dims)\n", - "print(sol['x'])\n" + "#print(sol['x'])\n", + "s = sol['x']\n", + "np.array(s)" ] }, { @@ -3533,7 +3849,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.4" + "version": "3.7.3" } }, "nbformat": 4, diff --git a/libs/linear_models.py b/libs/linear_models.py index 8bd973f..85b4b66 100644 --- a/libs/linear_models.py +++ b/libs/linear_models.py @@ -6,14 +6,17 @@ import pandas as pd import numpy as np +import math +from functools import partial + +import cvxopt import sklearn import matplotlib.pyplot as plt from scipy.optimize import minimize -import math from sklearn.preprocessing import normalize -from functools import partial +from sklearn.linear_model import Ridge + import data_util as du -import cvxopt def calc_error(w, xs, ys): c = 0 @@ -161,6 +164,10 @@ def fit(self, X, y): self.w = lasso_fit(Z, y, self.reg_param, self.reg_type) elif self.algo_name == 'ridge': self.w = ridge_fit(Z, y, self.reg_param, self.reg_type) + elif self.algo_name == 'sklearn_lasso': + pass + elif self.algo_name == 'sklearn_ridge': + self.w = sklearn_ridge(Z, y, self.reg_param) else: raise ValueError("Not implemented") @@ -168,6 +175,7 @@ def predict(self, X): Z = X if self.poly_degree: Z = du.polynomial_transform(self.poly_degree, X) + #print('Z: ', Z.shape, self.w.shape) y_pred = np.matmul(Z, self.w) return y_pred @@ -177,6 +185,13 @@ def calc_error(self, X, y): error = np.matmul(err.transpose(), err).flatten()/y.shape[0] return error +def sklearn_ridge(X, y, lambda_t, fit_intercept = False, solver='auto'): + #If added 1 into features, set fit_intercept = False + #else, if you want to fit the intercept, set it to True + # set solver = 'cholesky' to get analytical solution + clf = Ridge(alpha=lambda_t, fit_intercept = fit_intercept, solver=solver) + clf.fit(X, y) + return clf.coef_.reshape(-1, 1) def lasso_fit_tikhonov(X, y, reg_param): raise ValueError("Not implemented") @@ -211,34 +226,44 @@ def lasso_fit_ivanov(X, y, reg_param): upper_m = np.hstack([identity_m, -identity_m]) #2dx2d # constraints: -w_i - t_i <= 0 lower_m = np.hstack([-identity_m, -identity_m]) #2dx2d - print('sum_m: ', sum_m.shape, 'upper_m: ', upper_m.shape, 'lower_m: ', lower_m.shape) + #print('sum_m: ', sum_m.shape, 'upper_m: ', upper_m.shape, 'lower_m: ', lower_m.shape) G = np.vstack([sum_m, upper_m, lower_m]) h = np.zeros(num_vars + 1) h[0] = reg_param h = h.reshape(-1, 1) - print('G: ', G.shape, 'h: ', h.shape) + #print('G: ', G.shape, 'h: ', h.shape) P = cvxopt.matrix(P) q = cvxopt.matrix(q) G = cvxopt.matrix(G) h = cvxopt.matrix(h) - res = cvxopt.solvers.qp(P, q, G, h) + res = cvxopt.solvers.qp(P, q, G, h, options={'show_progress':False}) if res['status'] != 'optimal': print("Couldn't find optimal solution") print('Final status: ', res['status']) w = res['x'] - print('w: ', type(w), w) + #print('w: ', type(w), w) import struct - w = np.vectorize(lambda x: struct.unpack('d', x))(np.array(w).T) - print('w new: ', type(w), w) + w = np.array(w) + w = w[:d,:] + #print('w new: ', w.shape, w) return w def ridge_fit_tikhonov(X, y, reg_param): + _, d = X.shape XTX = np.matmul(X.transpose(), X) - inv_X = np.linalg.inv(XTX + reg_param) - w = np.matmul(inv_X, np.matmul(X.transpose(), y)) + #N.B. we are minimizing \frac{1}{N}|Xw-y|^2_2 + \frac{\lambda}{N}w^Tw + id_m = np.identity(d) + inv_X = np.linalg.inv(XTX + reg_param*id_m) + invXXT = np.matmul(inv_X, X.transpose()) + w = np.matmul(invXXT, y) return w +""" + XT = np.transpose(X) + x_pseudo_inv = np.matmul(np.linalg.inv(np.matmul(XT,X)), XT) + w = np.matmul(x_pseudo_inv,y) +""" def calc_sum_of_squares(X, y, w): N = y.shape[0] @@ -301,11 +326,12 @@ def F(w = None, z = None): H = calc_2nd_deriv_ss_with_constraints(X, z) H = cvxopt.matrix(H) return f, Df, H - res = cvxopt.solvers.cp(F) + res = cvxopt.solvers.cp(F, options={'show_progress':False}) if res['status'] != 'optimal': print("Couldn't find optimal solution") print('Final status: ', res['status']) w = res['x'] + w = np.array(w) return w def lasso_fit(X, y, reg_param, reg_type):