{"id":20,"date":"2020-05-10T17:16:49","date_gmt":"2020-05-10T17:16:49","guid":{"rendered":"http:\/\/lucylabs.gatech.edu\/ml4t\/?page_id=20"},"modified":"2020-08-30T17:14:49","modified_gmt":"2020-08-30T17:14:49","slug":"project-1","status":"publish","type":"page","link":"https:\/\/lucylabs.gatech.edu\/ml4t\/fall2020\/project-1\/","title":{"rendered":"Project 1"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.4.5&#8243;][et_pb_row _builder_version=&#8221;4.4.5&#8243;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.4.5&#8243;][et_pb_text _builder_version=&#8221;4.5.6&#8243; header_font=&#8221;|700||on|||||&#8221;]<\/p>\n<h1 style=\"text-align: center;\">Project 1: Martingale<\/h1>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.4.5&#8243;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.4.5&#8243;][et_pb_text _builder_version=&#8221;4.5.6&#8243; header_2_font=&#8221;|||on|on||||&#8221;]<\/p>\n<h2>Due Date<\/h2>\n<p><span>08\/30\/2020 11:59PM <\/span><a rel=\"nofollow noopener noreferrer\" target=\"_blank\" class=\"external text\" href=\"https:\/\/www.timeanddate.com\/time\/zones\/aoe\">Anywhere on Earth time<\/a><\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.4.5&#8243;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.4.5&#8243;][et_pb_text _builder_version=&#8221;4.5.6&#8243; header_2_font=&#8221;|||on|on||||&#8221; hover_enabled=&#8221;0&#8243;]<\/p>\n<h2>Revisions<\/h2>\n<p><span>This assignment is subject to change up until 3 weeks prior to the due date. We do not anticipate changes; any changes will be logged in this section.<\/span><\/p>\n<ul>\n<li><span><\/span>08\/21\/2020 Update small typos in Contents of Report<\/li>\n<li>08\/22\/2020 Update Mac TKAgg matplotlib backend command<\/li>\n<\/ul>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.4.5&#8243;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.4.5&#8243;][et_pb_text _builder_version=&#8221;4.5.6&#8243; header_2_font=&#8221;|||on|on||||&#8221;]<\/p>\n<h2>Overview<\/h2>\n<h3><span style=\"color: #ff0000;\">This assigment counts towards 3% of your overall grade.<\/span><\/h3>\n<p>The purpose of this assignment is to get you started programming in Python right away and to help provide you some initial feel for risk, probability, and \u201cbetting.\u201d Purchasing a stock is, after all, a bet that the stock will increase in value.<\/p>\n<p>In this project you will evaluate the actual betting strategy that Professor Balch uses at roulette when he goes to Las Vegas. Here it is:<\/p>\n<p>[\/et_pb_text][et_pb_dmb_code_snippet title=&#8221;Pseudocode &#8221; code=&#8221;ZXBpc29kZV93aW5uaW5ncyA9ICQwCndoaWxlIGVwaXNvZGVfd2lubmluZ3MgPCAkODA6Cgl3b24gPSBGYWxzZQoJYmV0X2Ftb3VudCA9ICQxCgl3aGlsZSBub3Qgd29uCgkJd2FnZXIgYmV0X2Ftb3VudCBvbiBibGFjawoJCXdvbiA9IHJlc3VsdCBvZiByb3VsZXR0ZSB3aGVlbCBzcGluCgkJaWYgd29uID09IFRydWU6CgkJCWVwaXNvZGVfd2lubmluZ3MgPSBlcGlzb2RlX3dpbm5pbmdzICsgYmV0X2Ftb3VudAoJCWVsc2U6CgkJCWVwaXNvZGVfd2lubmluZ3MgPSBlcGlzb2RlX3dpbm5pbmdzIC0gYmV0X2Ftb3VudAoJCQliZXRfYW1vdW50ID0gYmV0X2Ftb3VudCAqIDI=&#8221; usetabwidth=&#8221;on&#8221; tabwidth=&#8221;4&#8243; _builder_version=&#8221;4.4.6&#8243;]ZXBpc29kZV93aW5uaW5ncyA9ICQwCndoaWxlIGVwaXNvZGVfd2lubmluZ3MgPCAkODA6Cgl3b24gPSBGYWxzZQoJYmV0X2Ftb3VudCA9ICQxCgl3aGlsZSBub3Qgd29uCgkJd2FnZXIgYmV0X2Ftb3VudCBvbiBibGFjawoJCXdvbiA9IHJlc3VsdCBvZiByb3VsZXR0ZSB3aGVlbCBzcGluCgkJaWYgd29uID09IFRydWU6CgkJCWVwaXNvZGVfd2lubmluZ3MgPSBlcGlzb2RlX3dpbm5pbmdzICsgYmV0X2Ftb3VudAoJCWVsc2U6CgkJCWVwaXNvZGVfd2lubmluZ3MgPSBlcGlzb2RlX3dpbm5pbmdzIC0gYmV0X2Ftb3VudAoJCQliZXRfYW1vdW50ID0gYmV0X2Ftb3VudCAqIDI=[\/et_pb_dmb_code_snippet][et_pb_text _builder_version=&#8221;4.5.6&#8243;]<\/p>\n<p><span>Here are some details regarding how roulette betting works: Betting on black (or red) is considered an &#8220;even money&#8221; bet. That means that if you bet N chips and win, you keep your N chips and you win another N chips. If you bet N chips and you lose then those N chips are lost. The odds of winning or losing depend on whether you&#8217;re betting at an American wheel or a European wheel. For this project we will be assuming an <\/span><b>American wheel<\/b><span>. You can learn more about roulette and betting here: <\/span><a rel=\"nofollow\" class=\"external free\" href=\"https:\/\/en.wikipedia.org\/wiki\/Roulette\">https:\/\/en.wikipedia.org\/wiki\/Roulette<\/a><\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.4.5&#8243;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.4.5&#8243;][et_pb_text _builder_version=&#8221;4.5.6&#8243; header_2_font=&#8221;|||on|on||||&#8221;]<\/p>\n<h2>Template<\/h2>\n<h3><span class=\"mw-headline\" id=\"Set_up_your_development_environment\">Set up your development environment<\/span><\/h3>\n<p>First, if you haven&#8217;t yet set up your software environment, follow the instructions here: <a href=\"http:\/\/lucylabs.gatech.edu\/ml4t\/fall2020\/software-setup\/\" target=\"_blank\" rel=\"noopener noreferrer\">ML4T_Software_Setup<\/a>. This is the base directory structure used for all projects in the class, including supporting data and software will be set up correctly when you follow those instructions.<\/p>\n<p>Then:<\/p>\n<ul>\n<li>Download the template code here: <a href=\"https:\/\/www.dropbox.com\/s\/0jz7r3koxgs2dpb\/martingale_2020Fall.zip?dl=1\" target=\"_blank\" rel=\"noopener noreferrer\">File:Martingale_2020Fall.zip<\/a><\/li>\n<li>Extract its contents into the base directory (ML4T_2020Fall)<\/li>\n<li>You should see the following directory structure:\n<ul>\n<li><tt>ML4T_2020Fall\/<\/tt>: Root directory for course\n<ul>\n<li><tt>data\/<\/tt>: Location of data<\/li>\n<li><tt>grading\/<\/tt>: Grading libraries used by the individual grading scripts for each assignment.<\/li>\n<li><tt>util.py<\/tt>: Common utility library. This is the <b>only<\/b> allowed way to read in stock data. Only use the API methods provided here to read in stock data. Do NOT modify this file. For grading, we will use our own unmodified version.<\/li>\n<li>README.md<\/li>\n<li><tt>martingale\/<\/tt>: Root directory for this project\n<ul>\n<li><tt>martingale.py<\/tt>: Main project file to use as a template for your code.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>You should change only <tt>martingale.py<\/tt>. All of your code should be in that one file. Do not create additional files. It should always remain in and run from the directory <tt>ML4T_2020Fall\/martingale\/<\/tt>. Leave the copyright information at the top intact.<\/p>\n<ul>\n<li>Implement the necessary functions in <tt>martingale\/martingale.py<\/tt>.<\/li>\n<li>To execute your martingale code for debugging purposes, run <tt><b>PYTHONPATH=..:. python martingale.py<\/b><\/tt> from the <tt>martingale\/<\/tt> directory.<\/li>\n<\/ul>\n<p>To test your code, we will be calling <tt>__main__()<\/tt> function only. Doing so should run all aspects of the program and output the desired charts.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.4.5&#8243;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.4.5&#8243;][et_pb_text _builder_version=&#8221;4.5.6&#8243; header_2_font=&#8221;|||on|on||||&#8221;]<\/p>\n<h2>Tasks<\/h2>\n<h3><span class=\"mw-headline\" id=\"author.28.29_and_gtid.28.29_function\">author() and gtid() function<\/span><\/h3>\n<p>Revise the code functions <tt>author()<\/tt> and <tt>gtid()<\/tt> to correctly include your GT Username and 9 digit GT ID respectively. Your GT Username should be something like <tt>tbalch78<\/tt> and your GTID is a 9 digit number. You should also update this information the comments section at the top.<\/p>\n<h3><span class=\"mw-headline\" id=\"Build_a_simple_gambling_simulator\">Build a simple gambling simulator<\/span><\/h3>\n<p>Revise the code in <tt>martingale.py<\/tt> to simulate 1000 successive bets on spins of the roulette wheel using the betting scheme outlined above. You should test for the results of the betting events by making successive calls to the <tt>get_spin_result(win_prob)<\/tt> function. Note that you&#8217;ll have to update the <tt>win_prob<\/tt> parameter according to the correct probability of winning. You can figure that out by thinking about how roulette works (see wikipedia link above).<\/p>\n<p>Track your winnings by storing them in a numpy array. You might call that array <tt>winnings<\/tt> where <tt>winnings[0]<\/tt> should be set to 0 (just before the first spin). W<tt>innings[1]<\/tt> should reflect the total winnings after the first spin and so on.\u00a0<\/p>\n<h3><span class=\"mw-headline\" id=\"Chart_Creation\">Chart Creation<\/span><\/h3>\n<p>For the following charts, and for all charts in this class you should use python&#8217;s matplotlib library. Your submitted project should include all of the code necessary to generate the charts listed in your report. You should configure your code to write the figures to .png files. Do not allow your code to create a window that displays images (DO NOT use plt.show() and manually save as .png files). If it does you will receive a penalty.<\/p>\n<h3><span class=\"mw-headline\" id=\"Experiment_1:_Explore_the_strategy_and_make_some_charts\">Experiment 1: Explore the strategy and make some charts<\/span><\/h3>\n<p>Now we want you to run some experiments to determine how well the betting strategy works. The approach we&#8217;re going to take is called Monte Carlo simulation where the idea is to run a simulator over and over again with randomized inputs and to assess the results in aggregate. Review the &#8220;report&#8221; section below for specific properties of the strategy we want you to evaluate.<\/p>\n<ul>\n<li>Figure 1: Run your simple simulator 10 times and track the winnings, starting from 0 each time. Plot all 10 runs on one chart using <tt>matplotlib<\/tt> functions. The horizontal (X) axis should range from 0 to 300, the vertical (Y) axis should range from -256 to +100. Note that we will not be surprised if some of the plot lines are not visible because they exceed the vertical or horizontal scales.<\/li>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"1\" aria-setsize=\"-1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><span data-contrast=\"none\"><span>Figure 2: Run your simple simulator<\/span><\/span><span data-contrast=\"none\"><span> 1000 times.<\/span><\/span><span><span data-contrast=\"none\"><span> Remember that the simple sim<\/span><\/span><\/span><span><span data-contrast=\"none\"><span>ulator simulates 1000 successive bets, so you will be running<\/span><\/span><\/span><span><span data-contrast=\"none\"><span> that 1000 times.<\/span><\/span><\/span><span data-contrast=\"none\"><span> Plot the mean value of winnings for each <\/span><\/span><span><span data-contrast=\"none\"><span>round of <\/span><\/span><\/span><span data-contrast=\"none\"><span>spin using the same axis bounds as Figure 1.<\/span><\/span><span><span data-contrast=\"none\"><span> For example, you should take the mean of the first spin of all 1000 simulations.<\/span><\/span><\/span><span data-contrast=\"none\"><span> Add an additional line above and below the mean,<\/span><\/span><span data-contrast=\"none\"><span>\u00a0at mean (+) standard <\/span><\/span><span data-contrast=\"none\"><span>deviation<\/span><\/span><span><span data-contrast=\"none\"><span>,<\/span><\/span><\/span><span data-contrast=\"none\"><span> and<\/span><\/span><span data-contrast=\"none\"><span> mean (-) standard deviation of the winnings at each point.<\/span><\/span><span data-ccp-props=\"{&quot;134233279&quot;:true,&quot;201341983&quot;:1,&quot;335559740&quot;:390}\">\u00a0<\/span><\/li>\n<li>Figure 3: Use the same data you used for Figure 2, but plot the median instead of the mean. Add an additional line above and below the median at median (+) standard deviation, and median (-) standard deviation of the winnings at each point.<\/li>\n<\/ul>\n<p>For all of the above charts and experiments, if and when the target $80 winnings is reached, stop betting and allow the $80 value to persist from spin to spin <span class=\"TrackChangeTextInsertion TrackedChange  BCX4 SCXW118468444\"><span data-contrast=\"none\" class=\"TextRun  BCX4 SCXW118468444\" xml:lang=\"EN-US\" lang=\"EN-US\"><span class=\"NormalTextRun  BCX4 SCXW118468444\"> (e.g., fill the data forward with a value of $80<\/span><span class=\"NormalTextRun ContextualSpellingAndGrammarErrorV2  BCX4 SCXW118468444\">)<\/span><\/span><\/span>.<\/p>\n<h3><span class=\"mw-headline\" id=\"Experiment_2:_A_more_realistic_gambling_simulator\">Experiment 2: A more realistic gambling simulator<\/span><\/h3>\n<p>You may have noticed that the strategy works pretty well, maybe better than you expected. One reason for this is that we were allowing the gambler to use an unlimited bank roll. In this experiment we&#8217;re going to make things more realistic by giving the gambler a $256 bank roll. If he or she runs out of money, bzzt, that&#8217;s it. Repeat the experiments above with this new condition. Note that once the player has lost all of their money (i.e., episode_winnings reaches -256) stop betting and fill that number (-256) forward. An important corner case to be sure you handle is the situation where the next bet should be $N, but you only have $M (where M&lt;N). Make sure you only bet $M. Here are the two charts to create:<\/p>\n<ul>\n<li>Figure 4: Run your realistic simulator 1000 times. Plot the mean value of winnings for each spin using the same axis bounds as Figure 1. Add an additional line above and below the mean at mean (+) standard deviation, and mean (-) standard deviation of the winnings at each point.<\/li>\n<li>Figure 5: Use the same data you used for Figure 4, but plot the median instead of the mean. Add an additional line above and below the median at median (+) standard deviation, and median (-) standard deviation of the winnings at each point.<\/li>\n<\/ul>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.4.5&#8243;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.4.5&#8243;][et_pb_text _builder_version=&#8221;4.5.6&#8243; header_2_font=&#8221;|||on|on||||&#8221;]<\/p>\n<h2>Contents of Report<\/h2>\n<p>Answer the following prompt in a maximum of 7 pages (excluding references) in <a href=\"https:\/\/drive.google.com\/drive\/folders\/1xDYIomn9e9FxbIeFcsclSbXHTtHROD1j\">JDF format<\/a>. Any content beyond 7 pages will not be considered for a grade. Seven pages is a maximum, not a target; our recommended per-section lengths intentionally add to less than seven pages to leave you room to decide where to delve into more detail. This length is intentionally set expecting that your submission will include diagrams, drawings, pictures, etc. These should be incorporated into the body of the paper unless specifically required to be included in an appendix.<\/p>\n<p>The <a href=\"https:\/\/drive.google.com\/drive\/folders\/1xDYIomn9e9FxbIeFcsclSbXHTtHROD1j\">JDF format<\/a> specifies font sizes and margins, which should not be altered. Charts should be generated by the code and saved to files. Charts should be properly annotated with legible <span>and appropriately named <\/span>labels, titles, and legends.<\/p>\n<p>Please address each of these points \/ questions in your report. The report is to be submitted as <strong>report.pdf<\/strong>.<\/p>\n<h3><span><\/span><\/h3>\n<h3><span>Experiment 1: ~ 1 page<\/span><\/h3>\n<p><strong>Question 1<\/strong>: In Experiment 1, <em>based off the experiment results<\/em> calculate the estimated probability of winning $80 within 1000 sequential bets. <em>Explain your reasoning<\/em> <em>for the answer<\/em> using the experiment thoroughly (not based on plots).<\/p>\n<p><strong>Question 2<\/strong>: In Experiment 1, <em>what is the estimated expected value<\/em> of winnings after 1000 sequential bets? <em>Thoroughly explain your reasoning for the answer<\/em>. See the following Wikipedia entry to learn about expected value: <a href=\"https:\/\/en.wikipedia.org\/wiki\/Expected_value\">https:\/\/en.wikipedia.org\/wiki\/Expected_value<\/a><\/p>\n<p><strong>Question 3<\/strong>: <em><\/em><span>In Experiment 1<\/span><span>, <em>do the <strong>(<\/strong>mean + standard\u00a0deviation<strong>)<\/strong> line and <strong>(<\/strong>mean \u2013 standard deviation<strong>)<\/strong> line reach a maximum value then stabilize? Do the lines converge<\/em> as the number of sequential bets increases? <em>Explain why it does or does not<\/em>\u00a0thoroughly.<\/span><\/p>\n<p>Hint: If it does not converge and\/or stabilize, explain why it does not. If it does converge and\/or stabilize, also discuss the value(s) at which it does so.<\/p>\n<p>&nbsp;<\/p>\n<h3><span>Experiment 2: ~ 1 page<\/span><\/h3>\n<p><strong>Question 4<\/strong>: In Experiment 2, <em>based off the experiment results<\/em> calculate the estimated probability of winning $80 within 1000 sequential bets. <em>Explain your reasoning for the answer<\/em> using the experiment thoroughly. (not based on plots).<\/p>\n<p><strong>Question 5<\/strong>: In Experiment 2, <em>what is the estimated expected value<\/em> of our winnings after 1000 sequential bets? <em>Thoroughly explain your reasoning for the answer<\/em> (not based on plots).<\/p>\n<p><strong>Question 6<\/strong>: <em><\/em> In Experiment 2, <em>do the <strong>(<\/strong>mean + standard\u00a0deviation<span><strong>)<\/strong><\/span> line and <strong>(<\/strong>mean \u2013 standard deviation<strong>)<\/strong> line reach a maximum value then stabilize? Do the lines converge<\/em> as the number of sequential bets increases? <em>Explain why it does or does not<\/em>\u00a0thoroughly.<\/p>\n<p>Hint: If it does not converge and\/or stabilize, explain why it does not. If it does converge and\/or stabilize, also discuss the value(s) at which it does so.<\/p>\n<p>&nbsp;<\/p>\n<h3><span>Charts: ~ 2.5 pages<\/span><\/h3>\n<p><strong>(If the required charts are included in the Experiment sections above, then this section is optional)<\/strong><\/p>\n<p>Include Figure 1 through 5.<\/p>\n<p>&nbsp;<\/p>\n<h3><span>References: ~0.25 pages<\/span><\/h3>\n<p><strong>(Optional)<\/strong><\/p>\n<p><span>References should be placed at the end of the paper in a dedicated section. Reference lists should be numbered and organized alphabetically by first author\u2019s last name. If multiple papers have the same author(s) and year, you may append a letter to the end of the year to allow differentiated in-line text (e.g. Joyner, 2018a and Joyner, 2018b in the section above). If multiple papers have the same author(s), list them in chronological order starting with the older paper. Only works that are cited in-line should be included in the reference list. The reference list does not count against the length requirements.<\/span><\/p>\n<p><span><\/span><\/p>\n<h3><span>Report <\/span><span>Submission Instructions<\/span><\/h3>\n<p><span>Complete your assignment using JDF, then save your submission as a PDF. Assignments should be submitted to the corresponding assignment submission page in Canvas. You should submit a single PDF for this assignment.\u00a0 Be sure to following the instructions in Canvas for the report and code submissions.<\/span><\/p>\n<p><span>This is an individual assignment. All work you submit should be your own. Make sure to cite any sources you reference and use quotes and in-line citations to mark any direct quotes.<\/span><\/p>\n<p><span>Late work is not accepted without advanced agreement except in cases of medical or family emergencies. In the case of such an emergency, please immediately contact the Dean of Students followed by contacting the \u201cInstructors\u201d through a Piazza private post.<\/span><\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.4.5&#8243;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.4.5&#8243;][et_pb_text _builder_version=&#8221;4.5.6&#8243; header_2_font=&#8221;|||on|on||||&#8221;]<\/p>\n<h2>What To Turn In<\/h2>\n<h3>Canvas:<\/h3>\n<p>Submit the following files (only) via Canvas before the deadline:<\/p>\n<ul>\n<li>Project 1: Martingale (Report)\n<ul>\n<li>Your report as <tt>report.pdf<\/tt><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Do not submit any other files. Note that your charts should be included in the report, not submitted as separate files. Also note that if we run your submitted code, it should generate all 5 figures as png files. Not submitting a report will result in a 0 for the assignment.<\/p>\n<p>Unlimited resubmissions are allowed up to the deadline for the project.<\/p>\n<p>&nbsp;<\/p>\n<h3>Gradescope:<\/h3>\n<ul>\n<li>(SUBMISSION) Project 1: Martingale\n<ul>\n<li>Your code as <tt>martingale.py<\/tt><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Do not submit any other files.<\/p>\n<p>You are only allowed 3 submissions to <strong>(SUBMISSION)\u00a0Project 1: Martingale<\/strong>\u00a0but\u00a0unlimited resubmissions are allowed on <strong>(TESTING) Project 1: Martingale.<\/strong><\/p>\n<p>Note that Gradescope does <strong>not<\/strong> grade your assignment live; instead, it pre-validates that it will run against our batch autograder that we will run after the deadline. There will be <strong>no<\/strong> credit given for coding assignments that do not pass this pre-validation.<\/p>\n<p>Refer to the\u00a0<a href=\"http:\/\/lucylabs.gatech.edu\/ml4t\/fall2020\/gradescope\/\" target=\"_blank\" rel=\"noopener noreferrer\">Gradescope Instructions<\/a>\u00a0for more information.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.4.5&#8243;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.4.5&#8243;][et_pb_text _builder_version=&#8221;4.5.6&#8243; header_2_font=&#8221;|||on|on||||&#8221;]<\/p>\n<h2>Rubric<\/h2>\n<h3>Report<\/h3>\n<ul>\n<li>Are the questions answered correctly? (Up to -5 points for each incorrect answer)<\/li>\n<li>Is the reasoning for each question correct and supported by the evidence thoroughly? (Up to -5 points for each if incorrect)<\/li>\n<li>Are each of the charts provided and correct and include labeled axes and legend? (Up to -8 points for each if incorrect)<\/li>\n<\/ul>\n<h3>Code<\/h3>\n<ul>\n<li>Does the code run without crashing? (-10 points if not)<\/li>\n<li>Does the code generate appropriate charts written to png files? <strong>Specifically,\u00a0<\/strong><b>DO NOT use plt.show() and then manually save your figures. The figures should be created and saved using Python code<\/b> (-10 points each up to a max of -20 if not)<\/li>\n<li>Does the implemented code reflect the project requirements? (Up to -10 points if not)<\/li>\n<\/ul>\n<h3>Auto-Grader<\/h3>\n<p>No auto-grader<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.4.5&#8243;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.4.5&#8243;][et_pb_text _builder_version=&#8221;4.5.6&#8243; header_2_font=&#8221;|||on|on||||&#8221;]<\/p>\n<h2>Required, Allowed &amp; Prohibited<\/h2>\n<p>Required:<\/p>\n<ul>\n<li>Your project must be coded in Python 3.6.x.<\/li>\n<li>Reference any code used in the &#8220;Allowed&#8221; section in your code. At minimum it should have the link\/filename\/video name of where it came from.<\/li>\n<\/ul>\n<p>Allowed:<\/p>\n<ul>\n<li>Your code may use standard Python libraries (except os).<\/li>\n<li>You may use the NumPy, SciPy, matplotlib and Pandas libraries. Be sure you are using the correct versions.<\/li>\n<li>Code provided by the instructor, or allowed by the instructor to be shared.<\/li>\n<\/ul>\n<p>Prohibited:<\/p>\n<ul>\n<li>Any use of global variables.<\/li>\n<li>Any libraries not listed in the &#8220;allowed&#8221; section above.<\/li>\n<li>Use of Python&#8217;s os module.<\/li>\n<li>Any use of plot.show()<\/li>\n<li>Absolute import statements of the <strong>current<\/strong> project folder such as <code>from 'martingale' import XXXX or import martingale.XXXX<\/code><\/li>\n<li>Extra directories (manually or code created)<\/li>\n<li>Extra files not listed in &#8220;WHAT TO TURN IN&#8221;<\/li>\n<li>Any code you did not write yourself (except for provided\/allowed by the instructor).<\/li>\n<li>Knights who say &#8220;neeee.&#8221;<\/li>\n<\/ul>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.4.6&#8243;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.4.6&#8243;][et_pb_text _builder_version=&#8221;4.4.6&#8243;]<\/p>\n<h2>FAQ<\/h2>\n<ul>\n<li><span><b>Q:<\/b><\/span> I\u2019m using a Mac. When I try to plot, I get a strange exception with a stack trace, including a mention of libtk and tkinter.<\/li>\n<li><span><b>A:<\/b><\/span> Run the following commands from the terminal to change the default back end<\/li>\n<\/ul>\n<p>[\/et_pb_text][et_pb_dmb_code_snippet code=&#8221;JCBta2RpciAtcCB+Ly5tYXRwbG90bGliCiQgZWNobyAiYmFja2VuZDogVGtBZ2ciID4gfi8ubWF0cGxvdGxpYi9tYXRwbG90bGlicmM=&#8221; _builder_version=&#8221;4.5.6&#8243;]JCBta2RpciAtcCB+Ly5tYXRwbG90bGliCiQgZWNobyAiYmFja2VuZDogVGtBZ2ciID4gfi8ubWF0cGxvdGxpYi9tYXRwbG90bGlicmM=[\/et_pb_dmb_code_snippet][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Project 1: MartingaleDue Date 08\/30\/2020 11:59PM Anywhere on Earth timeRevisions This assignment is subject to change up until 3 weeks prior to the due date. We do not anticipate changes; any changes will be logged in this section. 08\/21\/2020 Update small typos in Contents of Report 08\/22\/2020 Update Mac TKAgg matplotlib backend command Overview This [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":660,"menu_order":5,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"class_list":["post-20","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/lucylabs.gatech.edu\/ml4t\/wp-json\/wp\/v2\/pages\/20","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lucylabs.gatech.edu\/ml4t\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/lucylabs.gatech.edu\/ml4t\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/lucylabs.gatech.edu\/ml4t\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/lucylabs.gatech.edu\/ml4t\/wp-json\/wp\/v2\/comments?post=20"}],"version-history":[{"count":37,"href":"https:\/\/lucylabs.gatech.edu\/ml4t\/wp-json\/wp\/v2\/pages\/20\/revisions"}],"predecessor-version":[{"id":1140,"href":"https:\/\/lucylabs.gatech.edu\/ml4t\/wp-json\/wp\/v2\/pages\/20\/revisions\/1140"}],"up":[{"embeddable":true,"href":"https:\/\/lucylabs.gatech.edu\/ml4t\/wp-json\/wp\/v2\/pages\/660"}],"wp:attachment":[{"href":"https:\/\/lucylabs.gatech.edu\/ml4t\/wp-json\/wp\/v2\/media?parent=20"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}