├── .gitignore ├── .vscode └── settings.json ├── 0_Tools_Install_and_Setup ├── 0_Google_Colab │ ├── Google_Colab.md │ ├── IMLAI_Google_Colab_Intro.png │ └── linear_data.csv ├── 1_Python_Install_Setup_Test │ ├── IMLAI_Python_Install_Setup_Test.png │ └── Python_Install_and_Cmd_Line_Test.md ├── 2_Python_Virtual_Environments │ └── Windows │ │ ├── Python_Version.png │ │ ├── Python_Versions.png │ │ ├── Video_Intro.png │ │ ├── Windows_Python_Script_Files_For_VirtualEnv.png │ │ ├── Windows_Python_VENVs.png │ │ ├── Windows_Virtual_Environments.md │ │ ├── Windows_notes.txt │ │ ├── mkvirtualenv_name.png │ │ ├── workon_command_after.png │ │ ├── workon_command_before.png │ │ └── workon_venv_name_command.png ├── 3_Git_for_Windows │ ├── Git_For_Windows_Install_and_Usage.md │ └── IMLAI_Video_Intro.png ├── 4_VS_Code │ ├── Notes.txt │ └── VS_Code_Install_and_Usage.md └── Tools_Install_and_Setup_Overview.md ├── 1_Fake_Data_Creation ├── .vscode │ └── settings.json ├── 1_Fake_Single_Feature_Linear_Data.py ├── 2_Fake_Single_Feature_Nonlinear_Data.py ├── 3_Fake_Double_Feature_Linear_Data.py ├── 4_Fake_Double_Feature_Nonlinear_Data.py ├── 5_General_Numpy_Fake_Regression_Data.py ├── 6_General_Numpy_Fake_Classification_Data.py ├── AI_ML_DL_Akshay_Tondak.jpg ├── Fake_Multi_Feature_Regression_Data.py ├── Fake_Single_Feature_Linear_Data_with_Functional_Noise.py ├── dbl_feature_linear_data.csv ├── dbl_feature_non_linear_data.csv ├── fake_data_regression.csv ├── linear_data.csv ├── linear_data_var_noise.csv └── non_linear_data.csv ├── 2_Intro_To_Regression_Modeling ├── 1_Simple_Regression.py ├── 2_Simple_Regression_Engineered_Feature.py ├── 3_Simple_Regression_Dbl_Feature.py ├── 4_Simple_Regression_Dbl_Engineered_Feature.py ├── DB_Tools.py ├── General_Tools.py ├── List_Comp_Fun.py └── numpy_tester.py ├── 3_Missing_Data └── Imputation_Concepts │ ├── Missing_Data_1.png │ ├── Missing_Data_10.png │ ├── Missing_Data_11.png │ ├── Missing_Data_12.png │ ├── Missing_Data_13.png │ ├── Missing_Data_14.png │ ├── Missing_Data_2.png │ ├── Missing_Data_3.png │ ├── Missing_Data_4.png │ ├── Missing_Data_5.png │ ├── Missing_Data_6.png │ ├── Missing_Data_7.png │ ├── Missing_Data_8.png │ └── Missing_Data_9.png ├── 99_Project_Data ├── data_description.txt ├── diamonds.csv ├── sample_submission.csv ├── test.csv └── train.csv ├── LICENSE ├── README.md ├── fake_data_classification.json └── fake_data_regression.csv /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | pip-wheel-metadata/ 24 | share/python-wheels/ 25 | *.egg-info/ 26 | .installed.cfg 27 | *.egg 28 | MANIFEST 29 | 30 | # PyInstaller 31 | # Usually these files are written by a python script from a template 32 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 33 | *.manifest 34 | *.spec 35 | 36 | # Installer logs 37 | pip-log.txt 38 | pip-delete-this-directory.txt 39 | 40 | # Unit test / coverage reports 41 | htmlcov/ 42 | .tox/ 43 | .nox/ 44 | .coverage 45 | .coverage.* 46 | .cache 47 | nosetests.xml 48 | coverage.xml 49 | *.cover 50 | *.py,cover 51 | .hypothesis/ 52 | .pytest_cache/ 53 | 54 | # Translations 55 | *.mo 56 | *.pot 57 | 58 | # Django stuff: 59 | *.log 60 | local_settings.py 61 | db.sqlite3 62 | db.sqlite3-journal 63 | 64 | # Flask stuff: 65 | instance/ 66 | .webassets-cache 67 | 68 | # Scrapy stuff: 69 | .scrapy 70 | 71 | # Sphinx documentation 72 | docs/_build/ 73 | 74 | # PyBuilder 75 | target/ 76 | 77 | # Jupyter Notebook 78 | .ipynb_checkpoints 79 | 80 | # IPython 81 | profile_default/ 82 | ipython_config.py 83 | 84 | # pyenv 85 | .python-version 86 | 87 | # pipenv 88 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 89 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 90 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 91 | # install all needed dependencies. 92 | #Pipfile.lock 93 | 94 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 95 | __pypackages__/ 96 | 97 | # Celery stuff 98 | celerybeat-schedule 99 | celerybeat.pid 100 | 101 | # SageMath parsed files 102 | *.sage.py 103 | 104 | # Environments 105 | .env 106 | .venv 107 | env/ 108 | venv/ 109 | ENV/ 110 | env.bak/ 111 | venv.bak/ 112 | 113 | # Spyder project settings 114 | .spyderproject 115 | .spyproject 116 | 117 | # Rope project settings 118 | .ropeproject 119 | 120 | # mkdocs documentation 121 | /site 122 | 123 | # mypy 124 | .mypy_cache/ 125 | .dmypy.json 126 | dmypy.json 127 | 128 | # Pyre type checker 129 | .pyre/ 130 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "python.pythonPath": "C:\\Users\\24601\\envs\\py39std\\Scripts\\python.exe" 3 | } -------------------------------------------------------------------------------- /0_Tools_Install_and_Setup/0_Google_Colab/Google_Colab.md: -------------------------------------------------------------------------------- 1 | # Google Colab Instructions for Machine Learning Pipeline Class 2 | The link to code that Thom and Ghaith will create for you can be found [HERE](http://bit.ly/2NQwH63) 3 | 4 | The link to Thom's introductory video for basic Google Colab operations is here [Google Colab Intro](https://youtu.be/o0lRne13Ehw) 5 | -------------------------------------------------------------------------------- /0_Tools_Install_and_Setup/0_Google_Colab/IMLAI_Google_Colab_Intro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntegratedMLAI/Machine_Learning_Pipeline/3effcf0839c26f0c1494b9ddbfbb9d27ecf3fd00/0_Tools_Install_and_Setup/0_Google_Colab/IMLAI_Google_Colab_Intro.png -------------------------------------------------------------------------------- /0_Tools_Install_and_Setup/0_Google_Colab/linear_data.csv: -------------------------------------------------------------------------------- 1 | 0.0, -0.7401569931550833 2 | 0.1, 0.35295171214507653 3 | 0.2, -0.192544925343214 4 | 0.3, 0.8202523790594533 5 | 0.4, 0.05960775615340341 6 | 0.5, 1.1091150678670785 7 | 0.6, 1.2316967228840843 8 | 0.7, 2.017119597935298 9 | 0.8, 1.6772051075594705 10 | 0.9, 2.7018071081831536 11 | 1.0, 2.5967636063610047 12 | 1.1, 3.1702797207487907 13 | 1.2, 1.4247637290703228 14 | 1.3, 3.5225464380559 15 | 1.4, 3.308746076811982 16 | 1.5, 2.275341466990492 17 | 1.6, 3.570280711084182 18 | 1.7, 2.9070162287494297 19 | 1.8, 4.530632412357443 20 | 1.9, 2.8634602872086523 21 | 2.0, 4.398252187618997 22 | 2.1, 4.315823664562027 23 | 2.2, 3.5774984784703574 24 | 2.3, 4.9929301191265365 25 | 2.4, 3.979493138146572 26 | 2.5, 5.437534857749417 27 | 2.6, 5.784276360800623 28 | 2.7, 5.058582009069493 29 | 2.8, 5.698104445913876 30 | 2.9, 4.811559950126984 31 | 3.0, 6.293275536409537 32 | 3.1, 6.821679319585822 33 | 3.2, 6.6455218170198 34 | 3.3, 5.719923083017048 35 | 3.4, 7.640838816212169 36 | 3.5, 6.709795118266159 37 | 3.6, 6.794905345597912 38 | 3.7, 8.006269825321045 39 | 3.8, 7.707283672154704 40 | 3.9, 7.987502995078301 41 | 4.0, 8.000239387313515 42 | 4.1, 8.663644929513953 43 | 4.2, 8.709439384165089 44 | 4.3, 8.652430827030349 45 | 4.4, 8.660938160942736 46 | 4.5, 9.35738490406051 47 | 4.6, 9.909464946117469 48 | 4.7, 8.497636121856207 49 | 4.8, 9.102631435541507 50 | 4.9, 9.201793648958098 51 | 5.0, 10.85926277414066 52 | 5.1, 10.479097843499034 53 | 5.2, 9.662297423828424 54 | 5.3, 10.768125896211735 55 | 5.4, 11.261531749835788 56 | 5.5, 11.589601326162303 57 | 5.6, 11.563431843716055 58 | 5.7, 10.847178456086674 59 | 5.8, 11.811304380857305 60 | 5.9, 12.238981316247775 61 | 6.0, 12.467146774834113 62 | 6.1, 12.893833386911766 63 | 6.2, 11.740996074717597 64 | 6.3, 12.951702872231298 65 | 6.4, 12.99032343855073 66 | 6.5, 13.971102264878532 67 | 6.6, 13.311994143039644 68 | 6.7, 12.934911075967033 69 | 6.8, 12.878522781970588 70 | 6.9, 14.092257302273127 71 | 7.0, 13.722674026142027 72 | 7.1, 15.083427372959248 73 | 7.2, 14.389778676825603 74 | 7.3, 14.653385548402094 75 | 7.4, 13.991590234646761 76 | 7.5, 14.032374581998395 77 | 7.6, 15.950961499033006 78 | 7.7, 14.964760567854272 79 | 7.8, 14.784082803236657 80 | 7.9, 16.534356133431285 81 | 8.0, 15.40867798467725 82 | 8.1, 17.187323558448732 83 | 8.2, 15.54401006995718 84 | 8.3, 15.762854685556519 85 | 8.4, 17.239949772310997 86 | 8.5, 17.674755332505924 87 | 8.6, 17.403286327710255 88 | 8.7, 17.691194289576046 89 | 8.8, 17.883351147242372 90 | 8.9, 18.015796946064842 91 | 9.0, 17.619016545611437 92 | 9.1, 19.099254767762258 93 | 9.2, 17.542109497081253 94 | 9.3, 19.30218624400765 95 | 9.4, 18.233268456163202 96 | 9.5, 18.398658502184375 97 | 9.6, 19.967843948361537 98 | 9.7, 19.902372346901267 99 | 9.8, 19.210163111051756 100 | 9.9, 20.01379471025558 101 | -------------------------------------------------------------------------------- /0_Tools_Install_and_Setup/1_Python_Install_Setup_Test/IMLAI_Python_Install_Setup_Test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntegratedMLAI/Machine_Learning_Pipeline/3effcf0839c26f0c1494b9ddbfbb9d27ecf3fd00/0_Tools_Install_and_Setup/1_Python_Install_Setup_Test/IMLAI_Python_Install_Setup_Test.png -------------------------------------------------------------------------------- /0_Tools_Install_and_Setup/1_Python_Install_Setup_Test/Python_Install_and_Cmd_Line_Test.md: -------------------------------------------------------------------------------- 1 | # Installing Python And Testing Setup 2 | This is very basic for the most part, but it will also cover some important points on knowing where to find Windows path environment variables and how to change them and why you might want to change them. 3 | 4 | ## Installing Python 5 | You will want to install the latest stable version. As of this writing, that version is 3.9. 6 | 7 | The link to Thom's instructional video for a Python installation and checking environment variables and testing that the correct version of python is working properly is here [![Python Installation](IMLAI_Python_Install_Setup_Test.png)](https://youtu.be/UaSU4YLr7Fo "Python Installation Setup Test") -------------------------------------------------------------------------------- /0_Tools_Install_and_Setup/2_Python_Virtual_Environments/Windows/Python_Version.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntegratedMLAI/Machine_Learning_Pipeline/3effcf0839c26f0c1494b9ddbfbb9d27ecf3fd00/0_Tools_Install_and_Setup/2_Python_Virtual_Environments/Windows/Python_Version.png -------------------------------------------------------------------------------- /0_Tools_Install_and_Setup/2_Python_Virtual_Environments/Windows/Python_Versions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntegratedMLAI/Machine_Learning_Pipeline/3effcf0839c26f0c1494b9ddbfbb9d27ecf3fd00/0_Tools_Install_and_Setup/2_Python_Virtual_Environments/Windows/Python_Versions.png -------------------------------------------------------------------------------- /0_Tools_Install_and_Setup/2_Python_Virtual_Environments/Windows/Video_Intro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntegratedMLAI/Machine_Learning_Pipeline/3effcf0839c26f0c1494b9ddbfbb9d27ecf3fd00/0_Tools_Install_and_Setup/2_Python_Virtual_Environments/Windows/Video_Intro.png -------------------------------------------------------------------------------- /0_Tools_Install_and_Setup/2_Python_Virtual_Environments/Windows/Windows_Python_Script_Files_For_VirtualEnv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntegratedMLAI/Machine_Learning_Pipeline/3effcf0839c26f0c1494b9ddbfbb9d27ecf3fd00/0_Tools_Install_and_Setup/2_Python_Virtual_Environments/Windows/Windows_Python_Script_Files_For_VirtualEnv.png -------------------------------------------------------------------------------- /0_Tools_Install_and_Setup/2_Python_Virtual_Environments/Windows/Windows_Python_VENVs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntegratedMLAI/Machine_Learning_Pipeline/3effcf0839c26f0c1494b9ddbfbb9d27ecf3fd00/0_Tools_Install_and_Setup/2_Python_Virtual_Environments/Windows/Windows_Python_VENVs.png -------------------------------------------------------------------------------- /0_Tools_Install_and_Setup/2_Python_Virtual_Environments/Windows/Windows_Virtual_Environments.md: -------------------------------------------------------------------------------- 1 | # Managing Virtual Environments in Windows 2 | 3 | ## Prerequisites 4 | IF you have not yet installed python, go to python.org and install the latest stable python version for your OS. 5 | 6 | The link to Thom's instructional video for setting up and installing Python virtual environment wrapper for Windows [![Python Virtual Environments with VirtualEnvWrapper for Windows](Video_Intro.png)](https://youtu.be/JJTWJmoo-Gs "Python Virtual Environments with VirtualEnvWrapper for Windows") 7 | 8 | _______________ 9 | ## If You ONLY Have ONE Python Version Installed On Windows 10 | 1. You will find all your installed python versions in C:\Users\YourUserName\AppData\Local\Programs\Python 11 | 2. The way python versions appear on Thom's windows machine are show below ... 12 | 13 | ![Python Version On Thom's Machine](Python_Version.png) 14 | 15 | 3. If you only see a single Python version installed, follow instructions in this section. If you see more, I suggest going to the next section titled **If You Have Multiple Python Versions Installed On Windows** 16 | 4. When you install Python, the installation will ask you if you want to add the python executables to your path statement. If for some reason you did not do this, it's best to add `C:\Users\YourUserName\AppData\Local\Programs\Python\Python3x` 17 | to your path statement. You will also want to add 18 | C:\Users\YourUserName\AppData\Local\Programs\Python\Python3x\Scripts 19 | to your path statement. This will make everything below go much smoother. 20 | 5. pip can be defined multiple ways. My favorite definition is 21 | "preferred installer program". 22 | 6. `pip` is stored in 23 | `C:\Users\YourUserName\AppData\Local\Programs\Python\Python3x\Scripts` 24 | 7. If you look in that directory, you will find `pip3.exe` and `pip3.9.exe` 25 | 7. In each python x version scripts directory, you will find `pip3.x.exe` 26 | 8. From a terminal window (I recommend installing ConEmu for a great terminal program - it's the best that I have found so far), run 27 | `pip install virtualenvwrapper-win` 28 | 9. Once the pip install is done, you will see some new files in `C:\Users\YourUserName\AppData\Local\Programs\Python\Python39\Scripts` 29 | * rmvirtualenv.bat 30 | * virtualenv.exe 31 | * virtualenvwrapper.bat 32 | * vwenv.bat 33 | * whereis.bat 34 | * workon.bat 35 | 36 | ### Default Location Of Virtual Environments 37 | 1. If you have existing python virtual environments, they are likely here C:\Users\YourUserName\Envs 38 | 2. The image below shows the ones on my windows machine 39 | 40 | ![Thom's Virtual Environments](Windows_Python_VENVs.png) 41 | 42 | ### Activating Existing Virtual Environments 43 | 1. Let's open a command terminal and run ```$ workon``` 44 | 2. Notice below that it lists virtual environments in our holding directory 45 | 46 | ![workon command](workon_command_before.png) 47 | 48 | 3. What happens if we try to workon a virtual environment that does not yet exist? 49 | 50 | ![workon non existing env command](workon_venv_name_command.png) 51 | 52 | 4. To create a new virtual environment using our new python39 install, 53 | 54 | ![mkvirtualenv command](mkvirtualenv_name.png) 55 | 56 | 5. Let's just run ```$ workon``` to see if it shows up in our list 57 | 58 | ![workon command again](workon_command_after.png) 59 | 60 | 6. Now to actually workon that environment, we run ```$ workon py39std``` 61 | 7. That python environment will be activated and will show up with our command prompt. 62 | 8. To stop using an environment, run ```$ deactivate``` 63 | 64 | ### How To Install Virtual Environment Wrapper When You Have "ONE" Version Of Python On Your Machine 65 | 66 | ## If You Have "Multiple" Python Versions Installed On Windows 67 | 1. You will find all your installed python versions in C:\Users\YourUserName\AppData\Local\Programs\Python 68 | 2. The way python versions appear on Thom's windows machine are show below ... 69 | 70 | ![Python Versions On Thom's Machine](Python_Versions.png) 71 | 72 | 3. When you have multiple versions, your path can point to multiple Python directories, and you want to make sure that your system is using the pip for the version of Python that you are wanting to work with. 73 | _____________ 74 | ### How To Install Virtual Environment Wrapper For A Specific Version Of Python WHEN You Have "MULTIPLE" Python Versions 75 | 76 | When you have multiple Python versions, your path can point to multiple Python directories, and you want to make sure that your system is using the version of Python pip that you NEED to use. 77 | 78 | 1. Each Python installation has it's own version of pip as explained previously. 79 | 2. They are stored in `C:\Users\YourUserName\AppData\Local\Programs\Python\Python3x\Scripts` 80 | 3. In each python x version scripts directory, you will find `pip3.x.exe` 81 | 4. From a terminal window (Again, I recommend installing ConEmu), AND TO BE EXTRA CAREFUL, run 82 | `C:\Users\YourUserName\AppData\Local\Programs\Python\Python3x\Scripts\pip3.x install virtualenvwrapper-win` 83 | 5. Once the pip install is done, you will see some new files in C:\Users\YourUserName\AppData\Local\Programs\Python\Python39\Scripts 84 | * rmvirtualenv.bat 85 | * virtualenv.exe 86 | * virtualenvwrapper.bat 87 | * vwenv.bat 88 | * whereis.bat 89 | * workon.bat 90 | 91 | ### Default Location Of Virtual Environments 92 | 1. Just like the above instructions, if you have existing python virtual environments, they are likely here 93 | `C:\Users\YourUserName\Envs` 94 | 2. The image below shows the ones on my windows machine 95 | 96 | ![Thom's Virtual Environments](Windows_Python_VENVs.png) 97 | 98 | ### Activating Existing Virtual Environments 99 | 1. Let's open a command terminal and run ```$ workon``` 100 | 2. Notice below that it lists virtual environments in our holding directory 101 | 102 | ![workon command](workon_command_before.png) 103 | 104 | 3. What happens if we try to workon a virtual environment that does not yet exist? 105 | 106 | ![workon non existing env command](workon_venv_name_command.png) 107 | 108 | 4. To create a new virtual environment using our new python39 install, 109 | 110 | ![mkvirtualenv command](mkvirtualenv_name.png) 111 | 112 | 5. Let's just run ```$ workon``` to see if it shows up in our list 113 | 114 | ![workon command again](workon_command_after.png) 115 | 116 | 6. Now to actually workon that environment, we run ```$ workon py39std``` 117 | 7. That python environment will be activated and will show up with our command prompt. 118 | 8. To stop using an environment, run ```$ deactivate``` 119 | _________ 120 | ### Virtual Environments In Your IDE (VS CODE) 121 | In VS Code OR your chosen IDE, there will be a package that will allow you to switch between virtual environments AND to likely create virtual environments from within your IDE. Once you pick the package you prefer for this, read the documentation to know how to use those packages that help you choose your virtual environment. Those explanations are usually pretty clear, and you can web search for help if you need help. Many will have had the same issues as you. 122 | -------------------------------------------------------------------------------- /0_Tools_Install_and_Setup/2_Python_Virtual_Environments/Windows/Windows_notes.txt: -------------------------------------------------------------------------------- 1 | go to python.org and install a python version 2 | 3 | C:\Users\YourUserName\AppData\Local\Programs\Python 4 | See Python_Versions.png 5 | 6 | C:\Users\YourUserName\AppData\Local\Programs\Python\Python3x\Scripts 7 | pip3.x.exe 8 | 9 | pip3.x install virtualenvwrapper-win 10 | 11 | C:\Users\YourUserName\AppData\Local\Programs\Python\Python37\Scripts 12 | rmvirtualenv.bat 13 | virtualenv.exe 14 | virtualenvwrapper.bat 15 | vwenv.bat 16 | whereis.bat 17 | workon.bat 18 | 19 | C:\Users\YourUserName\Envs 20 | See Windows_Python_VENVs.png 21 | 22 | $ workon command 23 | See workon_command.png 24 | 25 | $ workon 26 | 27 | Pass a name to activate one of the following virtualenvs: 28 | ============================================================================== 29 | py37std 30 | py37web 31 | py38std 32 | sfb_env 33 | 34 | 35 | $ workon py39std 36 | 37 | virtualenv "py39std" does not exist. 38 | Create it with "mkvirtualenv " 39 | 40 | $ deactivate 41 | -------------------------------------------------------------------------------- /0_Tools_Install_and_Setup/2_Python_Virtual_Environments/Windows/mkvirtualenv_name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntegratedMLAI/Machine_Learning_Pipeline/3effcf0839c26f0c1494b9ddbfbb9d27ecf3fd00/0_Tools_Install_and_Setup/2_Python_Virtual_Environments/Windows/mkvirtualenv_name.png -------------------------------------------------------------------------------- /0_Tools_Install_and_Setup/2_Python_Virtual_Environments/Windows/workon_command_after.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntegratedMLAI/Machine_Learning_Pipeline/3effcf0839c26f0c1494b9ddbfbb9d27ecf3fd00/0_Tools_Install_and_Setup/2_Python_Virtual_Environments/Windows/workon_command_after.png -------------------------------------------------------------------------------- /0_Tools_Install_and_Setup/2_Python_Virtual_Environments/Windows/workon_command_before.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntegratedMLAI/Machine_Learning_Pipeline/3effcf0839c26f0c1494b9ddbfbb9d27ecf3fd00/0_Tools_Install_and_Setup/2_Python_Virtual_Environments/Windows/workon_command_before.png -------------------------------------------------------------------------------- /0_Tools_Install_and_Setup/2_Python_Virtual_Environments/Windows/workon_venv_name_command.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntegratedMLAI/Machine_Learning_Pipeline/3effcf0839c26f0c1494b9ddbfbb9d27ecf3fd00/0_Tools_Install_and_Setup/2_Python_Virtual_Environments/Windows/workon_venv_name_command.png -------------------------------------------------------------------------------- /0_Tools_Install_and_Setup/3_Git_for_Windows/Git_For_Windows_Install_and_Usage.md: -------------------------------------------------------------------------------- 1 | # Installing And Using Git For Windows 2 | Git is a file versioning system. It keeps track of your file version history. It's VERY powerful and was created by Linus Torvalds the creator of Linux. Git can seem complicated. However, using it on your own is quite easy. 3 | 4 | The link to Thom's instructional video for using Git, GitHub, SSH, Git Bash Shell, and Git within VS Code [![Git Operations In Windows](IMLAI_Video_Intro.png)](https://youtu.be/7zPTzOv4Ico "Git Operations In Windows") 5 | -------------------------------------------------------------------------------- /0_Tools_Install_and_Setup/3_Git_for_Windows/IMLAI_Video_Intro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntegratedMLAI/Machine_Learning_Pipeline/3effcf0839c26f0c1494b9ddbfbb9d27ecf3fd00/0_Tools_Install_and_Setup/3_Git_for_Windows/IMLAI_Video_Intro.png -------------------------------------------------------------------------------- /0_Tools_Install_and_Setup/4_VS_Code/Notes.txt: -------------------------------------------------------------------------------- 1 | Video 2: creating Python project, Classifier as example:https://youtu.be/2dLjHUJ3lZE 2 | Video 3: Creating virtual environment: https://youtu.be/IZOVSFwIpGo 3 | Video 4: Integration with other projects: https://youtu.be/BM3e0p0Iv7w 4 | Video 1 it is only about the installation.. 5 | i have some technical issues while publishing it .. 6 | anyway it is not hard to install this version of visual studio ... -------------------------------------------------------------------------------- /0_Tools_Install_and_Setup/4_VS_Code/VS_Code_Install_and_Usage.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntegratedMLAI/Machine_Learning_Pipeline/3effcf0839c26f0c1494b9ddbfbb9d27ecf3fd00/0_Tools_Install_and_Setup/4_VS_Code/VS_Code_Install_and_Usage.md -------------------------------------------------------------------------------- /0_Tools_Install_and_Setup/Tools_Install_and_Setup_Overview.md: -------------------------------------------------------------------------------- 1 | # Overview of Tools and Why We Will Use These 2 | 3 | ## Google Colab 4 | 0. Watch our Google Colab Demo in the `0_Google_Colab` directory. 5 | 1. Google Colab is a notebook method of using Python from the cloud. When you use Google Colab, you are not using your system to run Python. You are using Google servers to run Python. 6 | 2. Would you want to use it if you already know how to use Python on your own operating system (OS) from your command line and within an integrated development environment (IDE)? Yes, because you can use GPU's and even TPU's on Google Colab if and when you need them. 7 | 3. Google Colab is also a great way to collaborate on coding and program development remotely. 8 | 4. We will use Python in Google Colab in class along with using Python on your own systems in an IDE. 9 | 5. There are many good tutorials for Google Colab. 10 | 6. It's also quite easy to find specific help for specific actions for Google Colab using a web search. 11 | 7. We will show you the basics in the video in the `0_Google_Colab` directory. 12 | 8. There are many good tutorials for Google Colab if you want to go deeper in your understanding. 13 | 14 | ## Python 15 | 0. Watch our Python Install and Setup video in `1_Python` to see a Python installation and initial setup of Python. 16 | 1. Install the latest stable Python version for your system. IF you are using Linux, GREAT! We recommend using the version of Python that is on your linux distribution - YES, it's already installed. If you have not yet chosen a Linux Distribution, Thom prefers Linux Mint. It's built on top of Ubuntu. 17 | 2. While installing on Windows, do make sure to have the Python installation actions add Python to your Path Environment Variables. 18 | 3. Once Python is installed, we will guide you through some simple actions to test the installation in the video and in the instructions. You can find both of these in the `1_Python` directory. 19 | 20 | ## Python Virtual Environments 21 | Think of Python Virtual Environments like a container for your Python work. You can create MANY Python virtual environments, and each environment can be specialized for different kinds of Python work with different versions of Python even. 22 | 23 | 0. Watch our Python Virtual Environment video and instructions in the `2_Python_Virtual_Environments` directory. 24 | 1. We suggest using virtualenvwrapper. virtualenvwrapper simplifies your Python work. It provides nice ways to manage your virtual environments. However, you can manage them the way that your prefer. 25 | 2. By keeping your different types of Python work separate in separate environments, when you need to share your Python work with the world, it will be easier and cleaner to do so. 26 | 3. We will explain more about this throughout the class and you will see the reality of why this is important in your own data science work as you grow. 27 | 28 | ## The Preferred Installer Program for Python - Pip - Very Easy 29 | 1. We will show how to use pip at the system level and in virtual environments. Thus, we will cover some pip installs in the Python installation instructions and in the virtual environments instructions too. 30 | 2. Using pip is usually as easy as `pip install ` . 31 | 3. Sometimes the modules are not named as you would expect. 32 | 4. Simply do a google search for "How to python pip install such_and_such". 33 | 34 | ## Git for Windows 35 | Git is a file versioning system. It keeps track of your file version history. It's VERY powerful and was created by Linus Torvalds the creator of Linux. Git can seem complicated. However, using it on your own is quite easy. 36 | 37 | 0. Please watch the video in the `3_Git_for_Windows` directory. 38 | 1. We will be using git's most basic features. 39 | 2. Git takes minutes to learn and a LONG time to master, BUT, in my experience, it is worth learning to master it "over" time. 40 | 3. You don't need to learn all its features right away. 41 | 4. Using git as part of a major development team can be quite challenging for those that are not yet familiar with it, but, even in such situations, a "learn new concepts as you need to" approach is OK. 42 | 43 | ## VS Code - A Popular and Good Integrated Development Environment (IDE) 44 | VS Code is made by Microsoft. It's not open source, but it's free, and it's very popular and nice to use IDE. 45 | 46 | 0. Watch our install and setup video in the `4_VS_Code` directory 47 | 1. Download https://code.visualstudio.com/docs/?dv=win 48 | 2. Play around with options in the Welcome Screen 49 | 3. Install additional support for Python using the "Welcome Screen" 50 | 4. There are good introductory videos in the "Welcome Screen" 51 | 5. Tutorial https://www.youtube.com/watch?v=VqCgcpAypFQ 52 | 6. Of course, use additional tutorials that you wish or like better -------------------------------------------------------------------------------- /1_Fake_Data_Creation/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "python.pythonPath": "C:\\Users\\24601\\envs\\py38std\\Scripts\\python.exe" 3 | } -------------------------------------------------------------------------------- /1_Fake_Data_Creation/1_Fake_Single_Feature_Linear_Data.py: -------------------------------------------------------------------------------- 1 | import matplotlib.pyplot as plt 2 | import random 3 | 4 | num_pts = 100 5 | divider = num_pts / 10 6 | X = [x/divider for x in range(num_pts)] 7 | Y = [2.0 * x + (random.random() - 0.5) * 2 for x in X] 8 | 9 | print(X) 10 | print() 11 | print(Y) 12 | 13 | plt.scatter(X, Y) 14 | plt.title('This Is The Title') 15 | plt.xlabel('These Are The X Values') 16 | plt.ylabel('These Are The Y Values') 17 | plt.show() 18 | 19 | with open('./1_Fake_Data_Creation/linear_data.csv', 'w') as f: 20 | for i in range(len(X)): 21 | this_line = f'{X[i]}, {Y[i]}\n' 22 | f.write(this_line) 23 | -------------------------------------------------------------------------------- /1_Fake_Data_Creation/2_Fake_Single_Feature_Nonlinear_Data.py: -------------------------------------------------------------------------------- 1 | import matplotlib.pyplot as plt 2 | import random 3 | 4 | num_pts = 100 5 | divider = num_pts / 10 6 | X = [x/(divider) for x in range(num_pts)] 7 | Y = [0.2 * x ** 2 + (random.random() - 0.5) * 2 for x in X] 8 | 9 | plt.scatter(X, Y) 10 | plt.title('This Is The Title') 11 | plt.xlabel('These Are The X Values') 12 | plt.ylabel('These Are The Y Values') 13 | plt.show() 14 | 15 | with open('./1_Fake_Data_Creation/non_linear_data.csv', 'w') as f: 16 | for i in range(len(X)): 17 | this_line = f'{X[i]}, {Y[i]}\n' 18 | f.write(this_line) 19 | -------------------------------------------------------------------------------- /1_Fake_Data_Creation/3_Fake_Double_Feature_Linear_Data.py: -------------------------------------------------------------------------------- 1 | import matplotlib.pyplot as plt 2 | from mpl_toolkits.mplot3d import Axes3D 3 | import random 4 | 5 | num_pts = 100 6 | div1 = num_pts / 10 7 | div2 = num_pts / 3 8 | X = [[x/div1 for x in range(num_pts)], 9 | [x/div2 for x in range(num_pts)]] 10 | Y = [0 for _ in range(num_pts)] 11 | 12 | for i in range(len(X[0])): 13 | Y[i] = (1.50 * X[0][i] + 0.50 * X[1][i] + 14 | (random.random() - 0.5) * 3.0) 15 | 16 | fig = plt.figure() 17 | ax = plt.axes(projection='3d') 18 | 19 | ax.scatter3D(X[0], X[1], Y) 20 | ax.set_xlabel('X1 Values') 21 | ax.set_ylabel('X2 Values') 22 | ax.set_zlabel('Y Values') 23 | ax.set_title('3D Plot Of Linear Fake Data') 24 | 25 | plt.show() 26 | 27 | with open('./1_Fake_Data_Creation/dbl_feature_linear_data.csv', 'w') as f: 28 | for i in range(len(X[0])): 29 | this_line = f'{X[0][i]}, {X[0][i] ** 3}, {X[1][i]}, {X[1][i] ** 2}, {Y[i]}\n' 30 | f.write(this_line) -------------------------------------------------------------------------------- /1_Fake_Data_Creation/4_Fake_Double_Feature_Nonlinear_Data.py: -------------------------------------------------------------------------------- 1 | import matplotlib.pyplot as plt 2 | from mpl_toolkits.mplot3d import Axes3D 3 | import random 4 | 5 | num_pts = 1000 6 | div1 = num_pts / 10 7 | div2 = num_pts / 3 8 | X = [[x/div1 for x in range(num_pts)], 9 | [x/div2 for x in range(num_pts)]] 10 | Y = [0 for _ in range(num_pts)] 11 | 12 | for i in range(len(X[0])): 13 | # print(X[0][i], X[1][i]) 14 | Y[i] = ( 15 | 0.3600 * X[0][i] ** 2 + 16 | 0.0324 * X[1][i] ** 3 + 17 | (random.random() - 0.5) * 0) 18 | 19 | fig = plt.figure() 20 | ax = plt.axes(projection='3d') 21 | 22 | ax.scatter3D(X[0], X[1], Y) 23 | ax.set_xlabel('X1 Values') 24 | ax.set_ylabel('X2 Values') 25 | ax.set_zlabel('Y Values') 26 | ax.set_title('3D Plot Of Nonlinear Fake Data') 27 | 28 | plt.show() 29 | 30 | with open('./1_Fake_Data_Creation/dbl_feature_non_linear_data.csv', 'w') as f: 31 | for i in range(len(X[0])): 32 | this_line = f'{X[0][i]}, {X[1][i]}, {Y[i]}\n' 33 | f.write(this_line) -------------------------------------------------------------------------------- /1_Fake_Data_Creation/5_General_Numpy_Fake_Regression_Data.py: -------------------------------------------------------------------------------- 1 | """Data Acquisition And Fake Data Generation 2 | In this case, we will actually put models in functions 3 | to create fake regression data with noise, store it, and load it back. 4 | 5 | Our goals for creating good fake regression data are to: 6 | 1. create fake features; 7 | 2. create constant random noise OR create noise that varies as a 8 | function of features and/or labels as needed; 9 | 3. feed the fake features into a model that generates the labels 10 | 4. add the noise to the features 11 | 12 | The few ways that we will show will work for most cases. 13 | However, we PROMISE that you will run into something weird. 14 | Stay calm, py-thon, and search. Your growing coding and logic 15 | and concept skills will serve you well. Search multiple references 16 | for your issue, and you will get over your problem soon.""" 17 | 18 | # pip install plotly-express 19 | 20 | import matplotlib.pyplot as plt 21 | import numpy as np 22 | import pandas as pd 23 | # import plotly.express as px 24 | 25 | 26 | def feature_column(start, stop, num_pts): 27 | step = (stop - start)/num_pts 28 | the_pts = np.arange(start, stop, step) 29 | return the_pts 30 | 31 | def noise_envelope(Dims, Amp): 32 | return Amp * (2 * np.random.random_sample(Dims) - 1) 33 | 34 | def model(X): 35 | return (1.50 * X[:, 0] + 36 | 0.05 * X[:, 0] ** 2 + 37 | 0.03 * np.multiply(X[:, 0], X[:, 1]) + 38 | 0.75 * X[:, 1] + 39 | 0.01 * X[:, 1] ** 2) 40 | 41 | 42 | num_pts = 300 43 | X = np.zeros((num_pts, 2)) # print(X.shape) 44 | X[:, 0] = feature_column(0, 30, num_pts) 45 | X[:, 1] = 10 * np.sin(feature_column(0, np.pi, num_pts)) 46 | 47 | Y = model(X) + noise_envelope(num_pts, 7) 48 | 49 | fake_df = pd.DataFrame( data=np.hstack((X, Y.reshape(-1, 1))) ) 50 | fake_df.columns = ['x1', 'x2', 'y'] 51 | print(fake_df.head(7)) # show top 7 lines, default = 5 52 | print() 53 | 54 | print(fake_df.corr()) 55 | 56 | # fig = px.scatter_3d(fake_df, x='x1', y='x2', z='y') 57 | # fig.show() -------------------------------------------------------------------------------- /1_Fake_Data_Creation/6_General_Numpy_Fake_Classification_Data.py: -------------------------------------------------------------------------------- 1 | """Data Acquisition And Fake Data Generation 2 | In this case, we will actually put models in functions to create 3 | fake classification data with noise, store it, and load it back. 4 | 5 | Our goals for creating good fake regression data are to: 6 | 1. create fake features; 7 | 2. create constant random noise OR create noise that varies as a 8 | function of features and/or labels as needed; 9 | 3. feed the fake features into a model that generates the labels 10 | 4. add the noise to the features 11 | 12 | The few ways that we will show will work for most cases. 13 | However, we PROMISE that you will run into something weird. 14 | Stay calm, py-thon, and search. Your growing coding and logic 15 | and concept skills will serve you well. Search multiple references 16 | for your issue, and you will get over your problem soon.""" 17 | 18 | import matplotlib.pyplot as plt 19 | import numpy as np 20 | import pandas as pd 21 | import json 22 | 23 | def create_np_clusters(np_seeds, half_range, points_per_cluster): 24 | num_seeds = np_seeds.shape[0] 25 | num_dims = np_seeds.shape[1] - 1 26 | 27 | pts = np.empty((num_seeds * points_per_cluster, num_dims + 1)) 28 | labels = np.unique(np_seeds[:, 0]) 29 | for label in labels: 30 | centers = np_seeds[np_seeds[:, 0] == label, 1:] 31 | centers = np.tile(centers, (points_per_cluster, 1)) 32 | num_noise_points = centers.shape[0] 33 | base_noise = np.random.random_sample((num_noise_points, num_dims)) 34 | adjusted_noise = half_range * (2 * base_noise - 1) + centers 35 | cluster_array = np.zeros((num_noise_points, 1)) + label 36 | start = int(label * num_noise_points) 37 | stop = int((label + 1) * num_noise_points) 38 | pts[start:stop, :] = np.hstack((cluster_array, adjusted_noise)) 39 | 40 | return pts 41 | 42 | def scatter_plot_points(np_pts): 43 | num_pts = np_pts.shape[0] 44 | dims = np_pts.shape[1] - 1 45 | 46 | if dims == 2: 47 | plt.scatter(np_pts[:, 1], np_pts[:, 2], 48 | c=np_pts[:, 0].astype('int')) 49 | plt.xlabel('X1 Vals') 50 | plt.ylabel('X2 Vals') 51 | plt.title('Fake Data Points') 52 | elif dims == 3: 53 | fig = plt.figure() 54 | ax = plt.axes(projection='3d') 55 | 56 | X = [pts[i][1] for i in range(num_pts)] 57 | Y = [pts[i][2] for i in range(num_pts)] 58 | Z = [pts[i][3] for i in range(num_pts)] 59 | L = [pts[i][0] for i in range(num_pts)] 60 | 61 | ax.scatter3D(X, Y, Z, c=L) 62 | 63 | ax.set_xlabel('X1 Values') 64 | ax.set_ylabel('X2 Values') 65 | ax.set_zlabel('X3 Values') 66 | ax.set_title('3D Plot Of Fake Classification Data') 67 | 68 | plt.show() 69 | 70 | # seeds = [[1, 3, 8, 3], [2, 8, 3, 3], 71 | # [3, 3, 3, 8], [4, 8, 8, 8]] 72 | py_seeds = [[0, 3, 3], [1, 8, 8], [2, 3, 8], [3, 8, 3]] 73 | np_pts = create_np_clusters(np.array(py_seeds), 2.2, 100) 74 | print(np_pts[::40]) # Only show every 40th pt 75 | 76 | scatter_plot_points(np_pts) 77 | 78 | py_pts = np_pts.tolist() # json no like numpy objects 79 | with open(f'fake_data_classification.json', 'w') as f: 80 | json.dump(py_pts, f, ensure_ascii=False, indent=4) 81 | 82 | with open('fake_data_classification.json') as f: 83 | clusters = np.array(json.load(f)) 84 | 85 | print('Cluster Data') 86 | print(clusters[::20]) # only show every 20th point 87 | 88 | ### Another Model To Create Clusters 89 | 90 | num_seeds = 400 91 | num_groups = 2 92 | group_pts = int(num_seeds / num_groups) 93 | 94 | np_seeds = np.zeros((num_seeds, 3)) 95 | radians = np.arange(0, 2 * np.pi, (2 * np.pi) / group_pts) 96 | 97 | for group_num, radius in ((0, 2), (1, 1)): 98 | start = group_num * group_pts 99 | stop = (group_num + 1) * group_pts 100 | np_seeds[start:stop, 0] = group_num 101 | np_seeds[start:stop, 1] = radius * np.cos(radians) + 5 102 | np_seeds[start:stop, 2] = radius * np.sin(radians) + 5 103 | 104 | np_pts = create_np_clusters(np_seeds, 0.25, 2) 105 | print(np_pts[::80]) 106 | 107 | ## Plot The Model 108 | 109 | scatter_plot_points(np_pts) 110 | -------------------------------------------------------------------------------- /1_Fake_Data_Creation/AI_ML_DL_Akshay_Tondak.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntegratedMLAI/Machine_Learning_Pipeline/3effcf0839c26f0c1494b9ddbfbb9d27ecf3fd00/1_Fake_Data_Creation/AI_ML_DL_Akshay_Tondak.jpg -------------------------------------------------------------------------------- /1_Fake_Data_Creation/Fake_Multi_Feature_Regression_Data.py: -------------------------------------------------------------------------------- 1 | import matplotlib.pyplot as plt 2 | import random 3 | 4 | num_pts = 300 5 | div1 = num_pts / 10 6 | div2 = num_pts / 3 7 | X = [[x/div1 for x in range(num_pts)], 8 | [x/div2 for x in range(num_pts)]] 9 | Y = [0 for _ in range(num_pts)] 10 | 11 | for i in range(len(X[0])): 12 | Y[i] = ( 13 | 3.00 * X[0][i] ** 0.33 + 2.00 * X[1][i] ** 0.50 + 14 | 1.50 * X[0][i] + 0.25 * X[0][i] ** 2 + 15 | 0.50 * X[0][i] * X[1][i] + 0.10 * X[1][i] ** 3 + 16 | (random.random() - 0.5) * 5.0) 17 | 18 | fig = plt.figure() 19 | ax = plt.axes(projection='3d') 20 | 21 | ax.scatter3D(X[0], X[1], Y) 22 | ax.set_xlabel('X1 Values') 23 | ax.set_ylabel('X2 Values') 24 | ax.set_zlabel('Y Values') 25 | ax.set_title('3D Plot Of Linear Fake Data') 26 | 27 | plt.show() 28 | 29 | with open('fake_data_regression.csv', 'w') as f: 30 | for i in range(len(X[0])): 31 | this_line = f'{X[0][i]}, {X[1][i]}, {Y[i]}\n' 32 | f.write(this_line) -------------------------------------------------------------------------------- /1_Fake_Data_Creation/Fake_Single_Feature_Linear_Data_with_Functional_Noise.py: -------------------------------------------------------------------------------- 1 | import matplotlib.pyplot as plt 2 | import random 3 | import math 4 | 5 | 6 | def my_f(x, max): 7 | # return 2 8 | return x * max 9 | # return math.sin(1.5 * x) * max 10 | 11 | 12 | num_pts = 1000 13 | divider = num_pts / 10 14 | X = [x/divider for x in range(num_pts)] 15 | Y = [2.0 * x + (random.random() - 0.5) * my_f(x, 0.5) for x in X] 16 | 17 | plt.scatter(X, Y) 18 | plt.title('This Is The Title') 19 | plt.xlabel('These Are The X Values') 20 | plt.ylabel('These Are The Y Values') 21 | plt.show() 22 | 23 | with open('./1_Fake_Data_Creation/linear_data_var_noise.csv', 'w') as f: 24 | for i in range(len(X)): 25 | this_line = f'{X[i]}, {Y[i]}\n' 26 | f.write(this_line) 27 | -------------------------------------------------------------------------------- /1_Fake_Data_Creation/dbl_feature_linear_data.csv: -------------------------------------------------------------------------------- 1 | 0.0, 0.0, 0.0, 0.0, 0.5563417894496487 2 | 0.1, 0.0010000000000000002, 0.03, 0.0009, -0.7011602325626584 3 | 0.2, 0.008000000000000002, 0.06, 0.0036, -0.09929194295098365 4 | 0.3, 0.026999999999999996, 0.09, 0.0081, 0.595364641159051 5 | 0.4, 0.06400000000000002, 0.12, 0.0144, -0.3514686030015972 6 | 0.5, 0.125, 0.15, 0.0225, 0.8970875264027969 7 | 0.6, 0.21599999999999997, 0.18, 0.0324, 1.3333245390346868 8 | 0.7, 0.3429999999999999, 0.21, 0.04409999999999999, 0.9362680000711898 9 | 0.8, 0.5120000000000001, 0.24, 0.0576, 0.18406545267604524 10 | 0.9, 0.7290000000000001, 0.26999999999999996, 0.07289999999999998, 0.6141993275698026 11 | 1.0, 1.0, 0.3, 0.09, 1.9427590956994472 12 | 1.1, 1.3310000000000004, 0.32999999999999996, 0.10889999999999997, 0.3686182429163989 13 | 1.2, 1.7279999999999998, 0.36, 0.1296, 2.834131314467287 14 | 1.3, 2.197, 0.38999999999999996, 0.15209999999999996, 1.4707713852660447 15 | 1.4, 2.7439999999999993, 0.42, 0.17639999999999997, 1.6168196186772994 16 | 1.5, 3.375, 0.44999999999999996, 0.20249999999999996, 1.3021052719506148 17 | 1.6, 4.096000000000001, 0.48, 0.2304, 2.364228354049726 18 | 1.7, 4.912999999999999, 0.51, 0.2601, 3.8155749631673217 19 | 1.8, 5.832000000000001, 0.5399999999999999, 0.2915999999999999, 2.753581865574404 20 | 1.9, 6.858999999999999, 0.57, 0.32489999999999997, 2.830138417714538 21 | 2.0, 8.0, 0.6, 0.36, 3.2380624556173934 22 | 2.1, 9.261000000000001, 0.63, 0.39690000000000003, 3.299194435881881 23 | 2.2, 10.648000000000003, 0.6599999999999999, 0.4355999999999999, 2.529904741548422 24 | 2.3, 12.166999999999998, 0.69, 0.4760999999999999, 3.265895220909649 25 | 2.4, 13.823999999999998, 0.72, 0.5184, 5.175362921432781 26 | 2.5, 15.625, 0.75, 0.5625, 4.588350315062067 27 | 2.6, 17.576, 0.7799999999999999, 0.6083999999999998, 5.122919993715315 28 | 2.7, 19.683000000000003, 0.8099999999999999, 0.6560999999999999, 4.769678413857165 29 | 2.8, 21.951999999999995, 0.84, 0.7055999999999999, 5.577986376819572 30 | 2.9, 24.389, 0.8699999999999999, 0.7568999999999998, 5.490745511180153 31 | 3.0, 27.0, 0.8999999999999999, 0.8099999999999998, 6.431946116024889 32 | 3.1, 29.791000000000004, 0.9299999999999999, 0.8648999999999999, 6.406560916347888 33 | 3.2, 32.76800000000001, 0.96, 0.9216, 5.570916116497767 34 | 3.3, 35.937, 0.9899999999999999, 0.9800999999999997, 5.098882982489622 35 | 3.4, 39.303999999999995, 1.02, 1.0404, 4.303506707092408 36 | 3.5, 42.875, 1.0499999999999998, 1.1024999999999996, 4.962767878208855 37 | 3.6, 46.656000000000006, 1.0799999999999998, 1.1663999999999997, 6.840951175449144 38 | 3.7, 50.653000000000006, 1.1099999999999999, 1.2320999999999998, 7.107307134919034 39 | 3.8, 54.87199999999999, 1.14, 1.2995999999999999, 5.2500205066701735 40 | 3.9, 59.318999999999996, 1.17, 1.3688999999999998, 7.697409540828966 41 | 4.0, 64.0, 1.2, 1.44, 7.889131474559608 42 | 4.1, 68.92099999999998, 1.23, 1.5129, 6.453051021307591 43 | 4.2, 74.08800000000001, 1.26, 1.5876000000000001, 7.498961560970795 44 | 4.3, 79.50699999999999, 1.2899999999999998, 1.6640999999999995, 8.194923140229921 45 | 4.4, 85.18400000000003, 1.3199999999999998, 1.7423999999999995, 8.697128646766846 46 | 4.5, 91.125, 1.3499999999999999, 1.8224999999999996, 8.130174390280814 47 | 4.6, 97.33599999999998, 1.38, 1.9043999999999996, 6.27396121582858 48 | 4.7, 103.82300000000001, 1.41, 1.9880999999999998, 7.153615499861147 49 | 4.8, 110.59199999999998, 1.44, 2.0736, 8.15101798874914 50 | 4.9, 117.64900000000003, 1.47, 2.1609, 8.721483021371622 51 | 5.0, 125.0, 1.5, 2.25, 9.368906264745009 52 | 5.1, 132.65099999999998, 1.5299999999999998, 2.3408999999999995, 8.118271099993576 53 | 5.2, 140.608, 1.5599999999999998, 2.4335999999999993, 7.479017183177485 54 | 5.3, 148.87699999999998, 1.5899999999999999, 2.5280999999999993, 7.439349573387915 55 | 5.4, 157.46400000000003, 1.6199999999999999, 2.6243999999999996, 8.40110875708516 56 | 5.5, 166.375, 1.65, 2.7224999999999997, 8.013582665110338 57 | 5.6, 175.61599999999996, 1.68, 2.8223999999999996, 10.395245165873016 58 | 5.7, 185.193, 1.71, 2.9240999999999997, 8.439937767397037 59 | 5.8, 195.112, 1.7399999999999998, 3.027599999999999, 9.331749538674199 60 | 5.9, 205.37900000000005, 1.7699999999999998, 3.1328999999999994, 9.944295672226861 61 | 6.0, 216.0, 1.7999999999999998, 3.2399999999999993, 9.784853118868675 62 | 6.1, 226.98099999999997, 1.8299999999999998, 3.3488999999999995, 8.723140021978335 63 | 6.2, 238.32800000000003, 1.8599999999999999, 3.4595999999999996, 11.592362857442959 64 | 6.3, 250.04699999999997, 1.89, 3.5721, 11.337646763924536 65 | 6.4, 262.14400000000006, 1.92, 3.6864, 9.824225016996602 66 | 6.5, 274.625, 1.95, 3.8024999999999998, 10.937180147302222 67 | 6.6, 287.496, 1.9799999999999998, 3.920399999999999, 11.958060090582403 68 | 6.7, 300.76300000000003, 2.01, 4.040099999999999, 11.42063715044396 69 | 6.8, 314.43199999999996, 2.04, 4.1616, 10.006396436948107 70 | 6.9, 328.50900000000007, 2.07, 4.2848999999999995, 11.394075512774311 71 | 7.0, 343.0, 2.0999999999999996, 4.409999999999998, 11.285640459222176 72 | 7.1, 357.91099999999994, 2.13, 4.536899999999999, 12.44974023942802 73 | 7.2, 373.24800000000005, 2.1599999999999997, 4.665599999999999, 12.297691849418392 74 | 7.3, 389.017, 2.19, 4.7961, 13.314702111050297 75 | 7.4, 405.22400000000005, 2.2199999999999998, 4.928399999999999, 11.988789255203608 76 | 7.5, 421.875, 2.25, 5.0625, 13.30260775347249 77 | 7.6, 438.97599999999994, 2.28, 5.1983999999999995, 13.489489837593865 78 | 7.7, 456.533, 2.31, 5.3361, 12.792079531343466 79 | 7.8, 474.55199999999996, 2.34, 5.475599999999999, 12.49966245379353 80 | 7.9, 493.03900000000004, 2.3699999999999997, 5.6168999999999984, 14.516257017500433 81 | 8.0, 512.0, 2.4, 5.76, 13.508846061954547 82 | 8.1, 531.4409999999999, 2.4299999999999997, 5.904899999999999, 13.974255348284546 83 | 8.2, 551.3679999999998, 2.46, 6.0516, 13.11078491548559 84 | 8.3, 571.7870000000001, 2.4899999999999998, 6.200099999999999, 13.48407583349082 85 | 8.4, 592.7040000000001, 2.52, 6.3504000000000005, 14.05435625983561 86 | 8.5, 614.125, 2.55, 6.5024999999999995, 12.71402801999883 87 | 8.6, 636.0559999999999, 2.5799999999999996, 6.656399999999998, 13.272002042333964 88 | 8.7, 658.5029999999998, 2.61, 6.812099999999999, 15.60828183612906 89 | 8.8, 681.4720000000002, 2.6399999999999997, 6.969599999999998, 13.878535059920347 90 | 8.9, 704.969, 2.67, 7.1289, 14.777553168102363 91 | 9.0, 729.0, 2.6999999999999997, 7.289999999999998, 13.909990049728933 92 | 9.1, 753.5709999999999, 2.73, 7.4529, 14.617269428852595 93 | 9.2, 778.6879999999999, 2.76, 7.617599999999999, 14.673276230273128 94 | 9.3, 804.3570000000002, 2.7899999999999996, 7.784099999999998, 14.881163041856183 95 | 9.4, 830.5840000000001, 2.82, 7.952399999999999, 16.96656935912007 96 | 9.5, 857.375, 2.8499999999999996, 8.122499999999999, 14.38677256690728 97 | 9.6, 884.7359999999999, 2.88, 8.2944, 14.724871800421504 98 | 9.7, 912.6729999999998, 2.9099999999999997, 8.468099999999998, 16.282759045998354 99 | 9.8, 941.1920000000002, 2.94, 8.6436, 15.778424405267765 100 | 9.9, 970.2990000000001, 2.9699999999999998, 8.820899999999998, 17.421270818908134 101 | -------------------------------------------------------------------------------- /1_Fake_Data_Creation/fake_data_regression.csv: -------------------------------------------------------------------------------- 1 | 0.0, 0.0, -1.580488760265314 2 | 0.03333333333333333, 0.01, 0.15870919454486 3 | 0.06666666666666667, 0.02, 1.390524406999726 4 | 0.1, 0.03, 1.8633943076252035 5 | 0.13333333333333333, 0.04, 2.4460698747766965 6 | 0.16666666666666666, 0.05, 2.6378721675514427 7 | 0.2, 0.06, 1.4800849634852267 8 | 0.23333333333333334, 0.07, 0.9261472665347554 9 | 0.26666666666666666, 0.08, 1.6883361426728658 10 | 0.3, 0.09, 2.357570200950412 11 | 0.3333333333333333, 0.1, 4.400914936033317 12 | 0.36666666666666664, 0.11, 4.017043970847609 13 | 0.4, 0.12, 5.093255592965416 14 | 0.43333333333333335, 0.13, 5.537043925471545 15 | 0.4666666666666667, 0.14, 1.425029313177173 16 | 0.5, 0.15, 6.239155369195019 17 | 0.5333333333333333, 0.16, 6.100178729749089 18 | 0.5666666666666667, 0.17, 5.749047274307251 19 | 0.6, 0.18, 4.3041410749742 20 | 0.6333333333333333, 0.19, 5.011830525692979 21 | 0.6666666666666666, 0.2, 3.523804109435873 22 | 0.7, 0.21, 6.307810113057586 23 | 0.7333333333333333, 0.22, 6.825867391892803 24 | 0.7666666666666667, 0.23, 3.9327995858146667 25 | 0.8, 0.24, 6.145763429007516 26 | 0.8333333333333334, 0.25, 6.6268524585001645 27 | 0.8666666666666667, 0.26, 6.979890753622454 28 | 0.9, 0.27, 4.3349439790353195 29 | 0.9333333333333333, 0.28, 5.139789770811704 30 | 0.9666666666666667, 0.29, 3.5235629119928613 31 | 1.0, 0.3, 7.035520662906548 32 | 1.0333333333333334, 0.31, 4.009892533696224 33 | 1.0666666666666667, 0.32, 8.37094121266765 34 | 1.1, 0.33, 7.870001602337592 35 | 1.1333333333333333, 0.34, 7.306949066340097 36 | 1.1666666666666667, 0.35, 4.5315712469436145 37 | 1.2, 0.36, 6.637792433643704 38 | 1.2333333333333334, 0.37, 9.072037200884932 39 | 1.2666666666666666, 0.38, 5.024050281013678 40 | 1.3, 0.39, 6.496432177055476 41 | 1.3333333333333333, 0.4, 8.240718750911105 42 | 1.3666666666666667, 0.41, 9.11650566079898 43 | 1.4, 0.42, 6.023588572319803 44 | 1.4333333333333333, 0.43, 8.58155854114622 45 | 1.4666666666666666, 0.44, 7.923499718075469 46 | 1.5, 0.45, 9.527838247570843 47 | 1.5333333333333334, 0.46, 5.565234128225382 48 | 1.5666666666666667, 0.47, 10.375488196557308 49 | 1.6, 0.48, 9.184961410144366 50 | 1.6333333333333333, 0.49, 6.663059895784866 51 | 1.6666666666666667, 0.5, 6.419966295739913 52 | 1.7, 0.51, 9.377788403099208 53 | 1.7333333333333334, 0.52, 7.242861469602998 54 | 1.7666666666666666, 0.53, 8.249056391835712 55 | 1.8, 0.54, 8.157194449405424 56 | 1.8333333333333333, 0.55, 9.175483782354608 57 | 1.8666666666666667, 0.56, 10.929781145057198 58 | 1.9, 0.57, 7.984680651550812 59 | 1.9333333333333333, 0.58, 9.378322299117455 60 | 1.9666666666666666, 0.59, 10.360651547714486 61 | 2.0, 0.6, 9.829821689680468 62 | 2.033333333333333, 0.61, 9.561993398944576 63 | 2.066666666666667, 0.62, 8.562277002351097 64 | 2.1, 0.63, 11.025614321410039 65 | 2.1333333333333333, 0.64, 11.472169430406346 66 | 2.1666666666666665, 0.65, 10.490051968467276 67 | 2.2, 0.66, 11.089718959482514 68 | 2.2333333333333334, 0.67, 12.051700280809825 69 | 2.2666666666666666, 0.68, 8.89376973958898 70 | 2.3, 0.69, 10.575141463911502 71 | 2.3333333333333335, 0.7, 10.891253138901773 72 | 2.3666666666666667, 0.71, 13.457570603057741 73 | 2.4, 0.72, 12.487569164246931 74 | 2.433333333333333, 0.73, 11.073043802104557 75 | 2.466666666666667, 0.74, 12.037322232669263 76 | 2.5, 0.75, 10.674390473603365 77 | 2.533333333333333, 0.76, 11.367960340192402 78 | 2.566666666666667, 0.77, 11.640836106388269 79 | 2.6, 0.78, 13.322861396762043 80 | 2.6333333333333333, 0.79, 13.424707286050474 81 | 2.6666666666666665, 0.8, 14.079070827829392 82 | 2.7, 0.81, 14.195694855051958 83 | 2.7333333333333334, 0.82, 12.9251440948061 84 | 2.7666666666666666, 0.83, 13.754384544638693 85 | 2.8, 0.84, 11.677311350398531 86 | 2.8333333333333335, 0.85, 11.690217301778913 87 | 2.8666666666666667, 0.86, 13.969511316517796 88 | 2.9, 0.87, 12.809765132495622 89 | 2.933333333333333, 0.88, 15.727829861773985 90 | 2.966666666666667, 0.89, 15.206308756156528 91 | 3.0, 0.9, 12.142188422745003 92 | 3.033333333333333, 0.91, 12.402373947307577 93 | 3.066666666666667, 0.92, 12.895341660265487 94 | 3.1, 0.93, 14.42379666505037 95 | 3.1333333333333333, 0.94, 16.640900610944502 96 | 3.1666666666666665, 0.95, 16.41670859371123 97 | 3.2, 0.96, 17.151133123574038 98 | 3.2333333333333334, 0.97, 14.733989342867995 99 | 3.2666666666666666, 0.98, 14.122679484314975 100 | 3.3, 0.99, 13.383039027685872 101 | 3.3333333333333335, 1.0, 17.8790987573351 102 | 3.3666666666666667, 1.01, 13.858816152700921 103 | 3.4, 1.02, 18.60302756211834 104 | 3.433333333333333, 1.03, 15.738565461649474 105 | 3.466666666666667, 1.04, 16.11041020576981 106 | 3.5, 1.05, 17.972524356436264 107 | 3.533333333333333, 1.06, 15.46336857475907 108 | 3.566666666666667, 1.07, 15.493482154377304 109 | 3.6, 1.08, 18.74587496330028 110 | 3.6333333333333333, 1.09, 16.900579791972955 111 | 3.6666666666666665, 1.1, 19.344442459081144 112 | 3.7, 1.11, 20.184104014749746 113 | 3.7333333333333334, 1.12, 16.096941018682134 114 | 3.7666666666666666, 1.13, 18.757898810709644 115 | 3.8, 1.14, 19.07883489409696 116 | 3.8333333333333335, 1.15, 20.478835744731395 117 | 3.8666666666666667, 1.16, 18.755987601985588 118 | 3.9, 1.17, 20.39023087144121 119 | 3.933333333333333, 1.18, 19.272228022629122 120 | 3.966666666666667, 1.19, 18.679747549732564 121 | 4.0, 1.2, 19.728156054538413 122 | 4.033333333333333, 1.21, 21.24267807017678 123 | 4.066666666666666, 1.22, 17.57321865021114 124 | 4.1, 1.23, 22.16581806443818 125 | 4.133333333333334, 1.24, 20.39687764409245 126 | 4.166666666666667, 1.25, 19.508571713720148 127 | 4.2, 1.26, 23.07375848647532 128 | 4.233333333333333, 1.27, 20.21623019704746 129 | 4.266666666666667, 1.28, 21.88848207830711 130 | 4.3, 1.29, 21.67975542145398 131 | 4.333333333333333, 1.3, 21.242665650030126 132 | 4.366666666666666, 1.31, 21.138011218679978 133 | 4.4, 1.32, 21.00480902981787 134 | 4.433333333333334, 1.33, 19.767451751819454 135 | 4.466666666666667, 1.34, 20.946910443161286 136 | 4.5, 1.35, 22.55209202051293 137 | 4.533333333333333, 1.36, 23.769039100034963 138 | 4.566666666666666, 1.37, 24.594275643145544 139 | 4.6, 1.38, 20.737627188180678 140 | 4.633333333333334, 1.39, 20.64333529825234 141 | 4.666666666666667, 1.4, 23.17844892697523 142 | 4.7, 1.41, 25.681412498431783 143 | 4.733333333333333, 1.42, 24.319972691864802 144 | 4.766666666666667, 1.43, 25.024072693381044 145 | 4.8, 1.44, 22.752859187683978 146 | 4.833333333333333, 1.45, 25.748922735815302 147 | 4.866666666666666, 1.46, 22.8770610789708 148 | 4.9, 1.47, 23.613526488035884 149 | 4.933333333333334, 1.48, 26.73833983232479 150 | 4.966666666666667, 1.49, 25.8765059726527 151 | 5.0, 1.5, 26.05939467561902 152 | 5.033333333333333, 1.51, 25.731112159384583 153 | 5.066666666666666, 1.52, 28.058073576059943 154 | 5.1, 1.53, 25.68684465016436 155 | 5.133333333333334, 1.54, 28.671166686498402 156 | 5.166666666666667, 1.55, 27.863711740595658 157 | 5.2, 1.56, 27.796653063151705 158 | 5.233333333333333, 1.57, 28.29200301691864 159 | 5.266666666666667, 1.58, 25.862810923931374 160 | 5.3, 1.59, 26.958108144884445 161 | 5.333333333333333, 1.6, 26.639689409066253 162 | 5.366666666666666, 1.61, 29.04756761147455 163 | 5.4, 1.62, 29.314045197335098 164 | 5.433333333333334, 1.63, 28.21632044747914 165 | 5.466666666666667, 1.64, 28.889228146400022 166 | 5.5, 1.65, 26.7735296335335 167 | 5.533333333333333, 1.66, 29.811273193283593 168 | 5.566666666666666, 1.67, 30.914556417630067 169 | 5.6, 1.68, 31.629205663872256 170 | 5.633333333333334, 1.69, 28.344192069066235 171 | 5.666666666666667, 1.7, 30.25072365689024 172 | 5.7, 1.71, 27.89352223701347 173 | 5.733333333333333, 1.72, 30.181505812589982 174 | 5.766666666666667, 1.73, 31.994000468360092 175 | 5.8, 1.74, 28.45576270535498 176 | 5.833333333333333, 1.75, 29.914029532367163 177 | 5.866666666666666, 1.76, 32.8497003838677 178 | 5.9, 1.77, 31.214931723350215 179 | 5.933333333333334, 1.78, 29.716043714937854 180 | 5.966666666666667, 1.79, 29.87475641626005 181 | 6.0, 1.8, 32.58566536109596 182 | 6.033333333333333, 1.81, 32.33725153943825 183 | 6.066666666666666, 1.82, 34.42845679687803 184 | 6.1, 1.83, 34.16035315443741 185 | 6.133333333333334, 1.84, 32.76851024672129 186 | 6.166666666666667, 1.85, 33.43721687476169 187 | 6.2, 1.86, 33.826722902285454 188 | 6.233333333333333, 1.87, 35.50915427716619 189 | 6.266666666666667, 1.88, 35.929282269308494 190 | 6.3, 1.89, 35.85768015651103 191 | 6.333333333333333, 1.9, 33.153977375110294 192 | 6.366666666666666, 1.91, 34.97139293420337 193 | 6.4, 1.92, 33.75221933402597 194 | 6.433333333333334, 1.93, 37.734575557274454 195 | 6.466666666666667, 1.94, 36.60058033079866 196 | 6.5, 1.95, 36.49988950197172 197 | 6.533333333333333, 1.96, 35.15923852975166 198 | 6.566666666666666, 1.97, 35.27021367213815 199 | 6.6, 1.98, 36.35674595241544 200 | 6.633333333333334, 1.99, 38.873765219057155 201 | 6.666666666666667, 2.0, 37.93323981985347 202 | 6.7, 2.01, 37.35873227456135 203 | 6.733333333333333, 2.02, 39.47980789957967 204 | 6.766666666666667, 2.03, 39.52591102335174 205 | 6.8, 2.04, 37.31331805752697 206 | 6.833333333333333, 2.05, 39.61296183086106 207 | 6.866666666666666, 2.06, 37.68712794174907 208 | 6.9, 2.07, 37.556192883692425 209 | 6.933333333333334, 2.08, 39.548153340137276 210 | 6.966666666666667, 2.09, 39.28873775134324 211 | 7.0, 2.1, 38.04925623614528 212 | 7.033333333333333, 2.11, 40.47287839632217 213 | 7.066666666666666, 2.12, 41.997528193387126 214 | 7.1, 2.13, 41.14496198790607 215 | 7.133333333333334, 2.14, 42.743455332817526 216 | 7.166666666666667, 2.15, 41.715040412512636 217 | 7.2, 2.16, 41.280305165496344 218 | 7.233333333333333, 2.17, 40.648879471291394 219 | 7.266666666666667, 2.18, 41.459180834279195 220 | 7.3, 2.19, 39.62473172275511 221 | 7.333333333333333, 2.2, 40.59454219724073 222 | 7.366666666666666, 2.21, 44.3232971758232 223 | 7.4, 2.22, 42.215538076790935 224 | 7.433333333333334, 2.23, 41.31793360546045 225 | 7.466666666666667, 2.24, 45.35073113642464 226 | 7.5, 2.25, 46.082280558481536 227 | 7.533333333333333, 2.26, 44.228422686917185 228 | 7.566666666666666, 2.27, 43.13667303790424 229 | 7.6, 2.28, 43.745832214108965 230 | 7.633333333333334, 2.29, 46.11869810334958 231 | 7.666666666666667, 2.3, 47.46720138119376 232 | 7.7, 2.31, 43.76871406131572 233 | 7.733333333333333, 2.32, 47.51820903249324 234 | 7.766666666666667, 2.33, 44.660806991373924 235 | 7.8, 2.34, 43.90923037824717 236 | 7.833333333333333, 2.35, 47.11790606548243 237 | 7.866666666666666, 2.36, 48.63957200512386 238 | 7.9, 2.37, 49.122382307720095 239 | 7.933333333333334, 2.38, 47.424664359362495 240 | 7.966666666666667, 2.39, 50.215590381623045 241 | 8.0, 2.4, 49.05388289517193 242 | 8.033333333333333, 2.41, 46.23723529628793 243 | 8.066666666666666, 2.42, 50.5995706786678 244 | 8.1, 2.43, 49.060686292750326 245 | 8.133333333333333, 2.44, 47.99242752483029 246 | 8.166666666666666, 2.45, 51.76287849192928 247 | 8.2, 2.46, 49.80003823944521 248 | 8.233333333333333, 2.47, 48.371020484829536 249 | 8.266666666666667, 2.48, 48.8100124118076 250 | 8.3, 2.49, 52.87025637822671 251 | 8.333333333333334, 2.5, 53.082512228986154 252 | 8.366666666666667, 2.51, 49.0415635692653 253 | 8.4, 2.52, 53.538109956573834 254 | 8.433333333333334, 2.53, 50.663956575688516 255 | 8.466666666666667, 2.54, 50.38980618242721 256 | 8.5, 2.55, 51.331518995277264 257 | 8.533333333333333, 2.56, 55.270311136807464 258 | 8.566666666666666, 2.57, 55.33531731281228 259 | 8.6, 2.58, 53.99174008162174 260 | 8.633333333333333, 2.59, 52.35927230935748 261 | 8.666666666666666, 2.6, 51.85443844234787 262 | 8.7, 2.61, 56.58358231994586 263 | 8.733333333333333, 2.62, 57.054563300673976 264 | 8.766666666666667, 2.63, 53.99193096536172 265 | 8.8, 2.64, 54.46436565600161 266 | 8.833333333333334, 2.65, 57.261118396428586 267 | 8.866666666666667, 2.66, 55.132630897385596 268 | 8.9, 2.67, 57.89758332460272 269 | 8.933333333333334, 2.68, 56.549530237257756 270 | 8.966666666666667, 2.69, 54.662013261700096 271 | 9.0, 2.7, 59.80059186023751 272 | 9.033333333333333, 2.71, 56.75895483728395 273 | 9.066666666666666, 2.72, 60.371610096718875 274 | 9.1, 2.73, 55.84077276492617 275 | 9.133333333333333, 2.74, 57.03033944479596 276 | 9.166666666666666, 2.75, 60.87368719223982 277 | 9.2, 2.76, 61.50460177666874 278 | 9.233333333333333, 2.77, 60.94586600472021 279 | 9.266666666666667, 2.78, 58.306589080403505 280 | 9.3, 2.79, 59.39570051228334 281 | 9.333333333333334, 2.8, 59.19335856785126 282 | 9.366666666666667, 2.81, 63.00897583885593 283 | 9.4, 2.82, 60.27156129723895 284 | 9.433333333333334, 2.83, 60.04416293175699 285 | 9.466666666666667, 2.84, 60.68829367378346 286 | 9.5, 2.85, 64.69362828881584 287 | 9.533333333333333, 2.86, 61.07714582755453 288 | 9.566666666666666, 2.87, 65.4857897703286 289 | 9.6, 2.88, 63.19553854577592 290 | 9.633333333333333, 2.89, 64.56307467785743 291 | 9.666666666666666, 2.9, 65.65317673005785 292 | 9.7, 2.91, 62.75536839952868 293 | 9.733333333333333, 2.92, 62.657900244163905 294 | 9.766666666666667, 2.93, 63.87058669939911 295 | 9.8, 2.94, 65.37788777502782 296 | 9.833333333333334, 2.95, 64.19996449138551 297 | 9.866666666666667, 2.96, 66.88190341624171 298 | 9.9, 2.97, 68.87082163770351 299 | 9.933333333333334, 2.98, 64.74498838424638 300 | 9.966666666666667, 2.99, 66.07524095585566 301 | -------------------------------------------------------------------------------- /1_Fake_Data_Creation/linear_data.csv: -------------------------------------------------------------------------------- 1 | 0.0, 0.41753076187865723 2 | 0.1, 0.9077225677620944 3 | 0.2, 0.8468966189842763 4 | 0.3, 0.5334038128382167 5 | 0.4, 0.41084807432827786 6 | 0.5, 0.587433842732809 7 | 0.6, 1.4079527038513764 8 | 0.7, 1.922210076486513 9 | 0.8, 1.807611308904869 10 | 0.9, 2.102063017294209 11 | 1.0, 2.654721787954851 12 | 1.1, 2.193400888840457 13 | 1.2, 1.477607667696503 14 | 1.3, 3.398160707450889 15 | 1.4, 3.4854501380910126 16 | 1.5, 3.967945970833322 17 | 1.6, 3.9671162598636913 18 | 1.7, 4.033727321212096 19 | 1.8, 4.3961157363678725 20 | 1.9, 4.276886011842381 21 | 2.0, 3.8583441233097218 22 | 2.1, 4.8003830856492575 23 | 2.2, 3.857294814917048 24 | 2.3, 3.859675030585834 25 | 2.4, 5.499639377401624 26 | 2.5, 4.522185803876381 27 | 2.6, 6.076050164860872 28 | 2.7, 4.579146053892252 29 | 2.8, 6.12803595342564 30 | 2.9, 5.530042455467705 31 | 3.0, 5.16051955732586 32 | 3.1, 5.729951526441141 33 | 3.2, 7.319310999672492 34 | 3.3, 6.521464509402525 35 | 3.4, 6.464633904688723 36 | 3.5, 6.350441957059813 37 | 3.6, 7.055149728663322 38 | 3.7, 8.195866443235658 39 | 3.8, 7.663433081512983 40 | 3.9, 7.711872691756923 41 | 4.0, 7.644728901721089 42 | 4.1, 7.587955346665087 43 | 4.2, 9.327236297335514 44 | 4.3, 8.572799078058503 45 | 4.4, 7.871156294015572 46 | 4.5, 9.893952587891047 47 | 4.6, 8.766058874318768 48 | 4.7, 9.950868624832747 49 | 4.8, 10.034222277157353 50 | 4.9, 10.027907354143963 51 | 5.0, 10.322781304139554 52 | 5.1, 10.685786665619894 53 | 5.2, 10.937790374068037 54 | 5.3, 9.698280380048338 55 | 5.4, 11.464195557010218 56 | 5.5, 11.559721241512914 57 | 5.6, 11.96810761336459 58 | 5.7, 11.97948152585798 59 | 5.8, 10.634552418226225 60 | 5.9, 10.906424750825709 61 | 6.0, 12.321553557299177 62 | 6.1, 13.15739127411026 63 | 6.2, 13.239813741871469 64 | 6.3, 12.424461059942725 65 | 6.4, 12.39117944488581 66 | 6.5, 12.856461149290208 67 | 6.6, 13.164632770670282 68 | 6.7, 12.695814360711797 69 | 6.8, 14.315818287702076 70 | 6.9, 12.856400702204645 71 | 7.0, 14.746982864219389 72 | 7.1, 14.839531339107385 73 | 7.2, 14.663260066701007 74 | 7.3, 13.67066373212541 75 | 7.4, 15.056457094733924 76 | 7.5, 15.939629903447779 77 | 7.6, 15.879354871541516 78 | 7.7, 15.678436482244145 79 | 7.8, 14.987013859219156 80 | 7.9, 16.546549538925287 81 | 8.0, 16.243599472679886 82 | 8.1, 16.926627753929466 83 | 8.2, 16.851602195636367 84 | 8.3, 16.879001232102286 85 | 8.4, 16.79771142363802 86 | 8.5, 17.85189036166805 87 | 8.6, 17.156606742240644 88 | 8.7, 18.223849894393915 89 | 8.8, 17.340384167149928 90 | 8.9, 18.15182850040441 91 | 9.0, 18.433070205324395 92 | 9.1, 17.384627387840272 93 | 9.2, 18.396045523883576 94 | 9.3, 18.233361737180356 95 | 9.4, 19.55772853546567 96 | 9.5, 19.108985903374172 97 | 9.6, 19.82546772296371 98 | 9.7, 20.111890988435064 99 | 9.8, 19.42755943783563 100 | 9.9, 20.06366214027849 101 | -------------------------------------------------------------------------------- /1_Fake_Data_Creation/linear_data_var_noise.csv: -------------------------------------------------------------------------------- 1 | 0.0, 0.0 2 | 0.01, 0.02192318696811463 3 | 0.02, 0.035479333848638044 4 | 0.03, 0.054985281474734624 5 | 0.04, 0.08688051036930838 6 | 0.05, 0.10793310232503613 7 | 0.06, 0.13497343018570804 8 | 0.07, 0.14254175358448967 9 | 0.08, 0.17865807605861256 10 | 0.09, 0.19225114351529163 11 | 0.1, 0.19485211572742628 12 | 0.11, 0.23306409214429497 13 | 0.12, 0.2670675676978903 14 | 0.13, 0.27860174427808004 15 | 0.14, 0.2902860984788497 16 | 0.15, 0.32724189097031675 17 | 0.16, 0.30693307771201506 18 | 0.17, 0.356575422561102 19 | 0.18, 0.34423201570259804 20 | 0.19, 0.37085558811071856 21 | 0.2, 0.36518432269873935 22 | 0.21, 0.42936216245170683 23 | 0.22, 0.4630571291173308 24 | 0.23, 0.5010397291139302 25 | 0.24, 0.49255416680098346 26 | 0.25, 0.4873756880510144 27 | 0.26, 0.5038122166991419 28 | 0.27, 0.4924311823948243 29 | 0.28, 0.5357588216429143 30 | 0.29, 0.5813258767768466 31 | 0.3, 0.528032915902703 32 | 0.31, 0.5995540769838018 33 | 0.32, 0.6069706631608376 34 | 0.33, 0.608466678383247 35 | 0.34, 0.7472768171001443 36 | 0.35, 0.7084696026513104 37 | 0.36, 0.704202332182282 38 | 0.37, 0.6830785655571112 39 | 0.38, 0.7547152217912997 40 | 0.39, 0.7300425169870346 41 | 0.4, 0.8950990803305975 42 | 0.41, 0.7496319376845547 43 | 0.42, 0.915363020953615 44 | 0.43, 0.9021001549588819 45 | 0.44, 0.9778734398135429 46 | 0.45, 0.9443885540270059 47 | 0.46, 1.0147156102804347 48 | 0.47, 0.9800688099227128 49 | 0.48, 0.9429636542146561 50 | 0.49, 0.941941337504483 51 | 0.5, 0.894816002715128 52 | 0.51, 1.0627456044731696 53 | 0.52, 1.0709889577658502 54 | 0.53, 1.1399495418799455 55 | 0.54, 1.0604030416218546 56 | 0.55, 1.0850699957136702 57 | 0.56, 1.2197314437975504 58 | 0.57, 1.2666181029259054 59 | 0.58, 1.1534614493593898 60 | 0.59, 1.283247146188583 61 | 0.6, 1.319630143934133 62 | 0.61, 1.1347407734490635 63 | 0.62, 1.1398082713970723 64 | 0.63, 1.247458510111075 65 | 0.64, 1.3751541489601729 66 | 0.65, 1.4205231749990088 67 | 0.66, 1.439459265287601 68 | 0.67, 1.4658953731475064 69 | 0.68, 1.3844227783185306 70 | 0.69, 1.3733205550504743 71 | 0.7, 1.240599522263568 72 | 0.71, 1.494469501049988 73 | 0.72, 1.484636546355435 74 | 0.73, 1.3663982768646168 75 | 0.74, 1.3945004601734723 76 | 0.75, 1.3700119826558317 77 | 0.76, 1.6587099162923526 78 | 0.77, 1.6483413333294785 79 | 0.78, 1.7278939047117812 80 | 0.79, 1.6027166993134183 81 | 0.8, 1.7836409927325532 82 | 0.81, 1.5472363228461958 83 | 0.82, 1.7554443107963547 84 | 0.83, 1.7673425586733649 85 | 0.84, 1.771222010018725 86 | 0.85, 1.5423471999573313 87 | 0.86, 1.9069939418352357 88 | 0.87, 1.7122394871432876 89 | 0.88, 1.910357008475501 90 | 0.89, 1.8350784249990704 91 | 0.9, 1.9697350328801817 92 | 0.91, 1.6791170690848043 93 | 0.92, 1.922728548064806 94 | 0.93, 1.6452586477530786 95 | 0.94, 1.9907428788507886 96 | 0.95, 1.9691160099785725 97 | 0.96, 2.0531348437744956 98 | 0.97, 2.118114427048792 99 | 0.98, 2.0708054303005885 100 | 0.99, 2.187511320074811 101 | 1.0, 2.0311728659834523 102 | 1.01, 2.0403132830810797 103 | 1.02, 2.26950736534001 104 | 1.03, 2.0453545820155465 105 | 1.04, 2.229653368540723 106 | 1.05, 2.2887128394077347 107 | 1.06, 2.121529013730869 108 | 1.07, 1.9373063979122351 109 | 1.08, 1.9336777080531393 110 | 1.09, 2.2607566152554073 111 | 1.1, 2.3753201466088876 112 | 1.11, 2.4879477983271596 113 | 1.12, 2.3481554034979637 114 | 1.13, 2.047251934569811 115 | 1.14, 2.529741999794414 116 | 1.15, 2.124754897162344 117 | 1.16, 2.5014043048464574 118 | 1.17, 2.46505539626501 119 | 1.18, 2.1911637922607423 120 | 1.19, 2.42832518038627 121 | 1.2, 2.489868157551495 122 | 1.21, 2.2268504000203175 123 | 1.22, 2.725746414458787 124 | 1.23, 2.395407560162011 125 | 1.24, 2.2574117519249373 126 | 1.25, 2.5566380104342143 127 | 1.26, 2.470898342023963 128 | 1.27, 2.6544948402795883 129 | 1.28, 2.393331344561589 130 | 1.29, 2.430462967853831 131 | 1.3, 2.839220181950493 132 | 1.31, 2.585455305465433 133 | 1.32, 2.615233990082378 134 | 1.33, 2.6463825718048373 135 | 1.34, 2.437074862230047 136 | 1.35, 2.630712526281376 137 | 1.36, 2.4052281059912852 138 | 1.37, 2.6583102809407615 139 | 1.38, 2.4366499215745625 140 | 1.39, 2.4821426706651692 141 | 1.4, 2.589221515483691 142 | 1.41, 3.019681909359415 143 | 1.42, 2.507439379728274 144 | 1.43, 2.919624325180011 145 | 1.44, 3.149651435078934 146 | 1.45, 2.810186030519531 147 | 1.46, 2.728656820572677 148 | 1.47, 2.8007955018211104 149 | 1.48, 3.155055654444507 150 | 1.49, 2.8678620055483934 151 | 1.5, 3.357142645882861 152 | 1.51, 2.6807673857778944 153 | 1.52, 2.687226709458052 154 | 1.53, 2.9540400476454627 155 | 1.54, 2.719044606990239 156 | 1.55, 3.160871175578014 157 | 1.56, 2.9906576010648847 158 | 1.57, 3.388144261940457 159 | 1.58, 2.9161129576581986 160 | 1.59, 3.3351975092985047 161 | 1.6, 3.5301335343851585 162 | 1.61, 3.384145373804962 163 | 1.62, 3.1323125301249837 164 | 1.63, 3.002848431911081 165 | 1.64, 3.48886802088163 166 | 1.65, 3.1240993238455617 167 | 1.66, 3.0999909891966797 168 | 1.67, 3.6348990879065872 169 | 1.68, 3.2311479237173364 170 | 1.69, 3.104006880570415 171 | 1.7, 3.682125520492705 172 | 1.71, 3.3239847057548046 173 | 1.72, 3.7851872450246105 174 | 1.73, 3.1622980898270514 175 | 1.74, 3.8096687011741293 176 | 1.75, 3.1215458989468643 177 | 1.76, 3.8104239244911255 178 | 1.77, 3.294644730225359 179 | 1.78, 3.6688209143885873 180 | 1.79, 3.4603939855049215 181 | 1.8, 3.588310404481486 182 | 1.81, 3.6829232394119518 183 | 1.82, 3.8118423359150735 184 | 1.83, 3.8242695888163665 185 | 1.84, 3.7900408112446424 186 | 1.85, 4.075131828851016 187 | 1.86, 3.718055150992372 188 | 1.87, 3.9202268649044245 189 | 1.88, 4.186917240779756 190 | 1.89, 4.248190273302004 191 | 1.9, 4.125625050872175 192 | 1.91, 4.09594499647234 193 | 1.92, 3.672336462141929 194 | 1.93, 4.272686590772933 195 | 1.94, 3.4089381296386967 196 | 1.95, 4.108763309444158 197 | 1.96, 4.26750436370101 198 | 1.97, 3.578335311800403 199 | 1.98, 3.911909073153412 200 | 1.99, 3.6805879494327423 201 | 2.0, 3.880826080992412 202 | 2.01, 3.817484222742544 203 | 2.02, 3.6054419830561564 204 | 2.03, 4.34554720050808 205 | 2.04, 4.541566532531497 206 | 2.05, 3.741580490936994 207 | 2.06, 4.503600537809207 208 | 2.07, 4.381681065777905 209 | 2.08, 4.072404117138978 210 | 2.09, 4.422291345370566 211 | 2.1, 4.214282479407771 212 | 2.11, 3.8802193432329903 213 | 2.12, 4.252198161239969 214 | 2.13, 4.450467491533952 215 | 2.14, 4.701439693156635 216 | 2.15, 4.24501666991607 217 | 2.16, 4.323480336957321 218 | 2.17, 4.681303365921943 219 | 2.18, 3.927254426251727 220 | 2.19, 4.314328850157683 221 | 2.2, 4.1486130437499735 222 | 2.21, 4.849269977314748 223 | 2.22, 4.9202699251439 224 | 2.23, 3.995700212556833 225 | 2.24, 3.9863518163948957 226 | 2.25, 4.5310836651007795 227 | 2.26, 4.954763744143532 228 | 2.27, 4.046228812121081 229 | 2.28, 4.349137803288481 230 | 2.29, 4.162797717894159 231 | 2.3, 4.698416225870204 232 | 2.31, 5.026143227414447 233 | 2.32, 4.123078157480859 234 | 2.33, 4.512865630712732 235 | 2.34, 5.139903497913534 236 | 2.35, 5.006074528553321 237 | 2.36, 5.112931598272229 238 | 2.37, 4.227495425691284 239 | 2.38, 4.897705237780226 240 | 2.39, 5.005565609553805 241 | 2.4, 4.757058349014173 242 | 2.41, 4.7045376649531665 243 | 2.42, 5.1626748864439955 244 | 2.43, 5.191230089757346 245 | 2.44, 4.725110204796763 246 | 2.45, 4.893377377979799 247 | 2.46, 5.331537197170874 248 | 2.47, 4.626912890923149 249 | 2.48, 5.2436141378064205 250 | 2.49, 5.600718975227763 251 | 2.5, 5.588659936879155 252 | 2.51, 5.531856396132368 253 | 2.52, 4.951319405447227 254 | 2.53, 5.538783524840767 255 | 2.54, 5.309430667291307 256 | 2.55, 5.408653365320263 257 | 2.56, 5.728458830179032 258 | 2.57, 4.551249640266805 259 | 2.58, 4.601879405316558 260 | 2.59, 4.877187584196161 261 | 2.6, 4.578429103803589 262 | 2.61, 5.379316391816312 263 | 2.62, 4.808277720762436 264 | 2.63, 4.818853249999633 265 | 2.64, 5.650017450896103 266 | 2.65, 4.843446814443071 267 | 2.66, 5.380586301488187 268 | 2.67, 5.4833741348323395 269 | 2.68, 5.253161368636397 270 | 2.69, 5.303508513945109 271 | 2.7, 5.822579278538317 272 | 2.71, 4.974942002755603 273 | 2.72, 5.806257481871011 274 | 2.73, 5.700158548270906 275 | 2.74, 6.078952291271159 276 | 2.75, 5.551976015398456 277 | 2.76, 5.341633475396449 278 | 2.77, 5.12905179387928 279 | 2.78, 5.777177917533898 280 | 2.79, 6.2685060495696865 281 | 2.8, 5.243010908739061 282 | 2.81, 5.709339704618272 283 | 2.82, 5.539233152825956 284 | 2.83, 6.0126296958728185 285 | 2.84, 6.232798706195464 286 | 2.85, 5.607270848968778 287 | 2.86, 5.60896203500146 288 | 2.87, 5.9614519251784 289 | 2.88, 5.743208404089154 290 | 2.89, 5.852677684125999 291 | 2.9, 6.2197472794918065 292 | 2.91, 6.509047094354098 293 | 2.92, 5.691911858323547 294 | 2.93, 6.4238883943195955 295 | 2.94, 5.329042260748099 296 | 2.95, 5.819774656928159 297 | 2.96, 5.608187326586885 298 | 2.97, 5.2590282922226566 299 | 2.98, 5.797630053183798 300 | 2.99, 6.002777034099573 301 | 3.0, 6.53377096520752 302 | 3.01, 6.013761540722384 303 | 3.02, 5.714713135645985 304 | 3.03, 5.488656956430223 305 | 3.04, 6.088949497151946 306 | 3.05, 6.61024980467603 307 | 3.06, 6.2923278277448045 308 | 3.07, 5.677293971033715 309 | 3.08, 5.577165406899358 310 | 3.09, 6.798922854208493 311 | 3.1, 6.516544380331629 312 | 3.11, 6.926165362889413 313 | 3.12, 6.936643371759281 314 | 3.13, 5.9555360637310955 315 | 3.14, 6.778436905821295 316 | 3.15, 6.233178892764203 317 | 3.16, 5.577113506315155 318 | 3.17, 5.678373244670519 319 | 3.18, 6.373370954419257 320 | 3.19, 6.281439302345312 321 | 3.2, 6.655113574087012 322 | 3.21, 6.709131974934904 323 | 3.22, 6.277063159067207 324 | 3.23, 6.491010961134066 325 | 3.24, 5.875041156440849 326 | 3.25, 5.781025672794639 327 | 3.26, 6.594766029047357 328 | 3.27, 6.791208861484396 329 | 3.28, 6.055220526862031 330 | 3.29, 6.405524030029934 331 | 3.3, 6.658832853846162 332 | 3.31, 5.969320347691887 333 | 3.32, 7.08591383707037 334 | 3.33, 7.13883324929357 335 | 3.34, 6.438015840702218 336 | 3.35, 7.522953041616074 337 | 3.36, 7.287890033656074 338 | 3.37, 7.560407627565605 339 | 3.38, 7.395078388423764 340 | 3.39, 6.959169211181108 341 | 3.4, 6.689593364940857 342 | 3.41, 7.3680511508188005 343 | 3.42, 6.323811300907359 344 | 3.43, 6.845436292400307 345 | 3.44, 7.679847640933788 346 | 3.45, 7.69119723094446 347 | 3.46, 6.7146981410427315 348 | 3.47, 6.125951078371757 349 | 3.48, 6.273122581490397 350 | 3.49, 6.170816228861711 351 | 3.5, 6.196100561755552 352 | 3.51, 7.358555102719218 353 | 3.52, 6.956283771966174 354 | 3.53, 7.47925708621357 355 | 3.54, 6.788512345655756 356 | 3.55, 6.375365888972844 357 | 3.56, 6.856954889523175 358 | 3.57, 6.714554729836719 359 | 3.58, 7.070991602859334 360 | 3.59, 6.319246481761971 361 | 3.6, 7.377701867451451 362 | 3.61, 6.353380346846199 363 | 3.62, 6.418315664891047 364 | 3.63, 7.897542689791657 365 | 3.64, 7.862362199942532 366 | 3.65, 7.603858416240606 367 | 3.66, 7.09649198799448 368 | 3.67, 6.994199546764692 369 | 3.68, 7.593933818240412 370 | 3.69, 6.6085043371338 371 | 3.7, 6.997454296266182 372 | 3.71, 7.162128244766961 373 | 3.72, 6.889864893693968 374 | 3.73, 7.369525049858894 375 | 3.74, 8.30645341351401 376 | 3.75, 6.765810868867635 377 | 3.76, 8.436129898446639 378 | 3.77, 6.662348780792561 379 | 3.78, 7.858196835784823 380 | 3.79, 6.980016099730612 381 | 3.8, 8.340663320620795 382 | 3.81, 7.1329586819617035 383 | 3.82, 7.828308000482366 384 | 3.83, 6.733282926403577 385 | 3.84, 6.826648904369029 386 | 3.85, 7.6615347994558025 387 | 3.86, 7.440551682593089 388 | 3.87, 7.124514599517325 389 | 3.88, 8.53233976203488 390 | 3.89, 7.821914011886057 391 | 3.9, 8.707792461625717 392 | 3.91, 6.96803892117891 393 | 3.92, 7.461143956852918 394 | 3.93, 8.648500790096891 395 | 3.94, 8.140706616285614 396 | 3.95, 8.111265682416477 397 | 3.96, 8.306606858632893 398 | 3.97, 8.478136258073642 399 | 3.98, 8.808169718078261 400 | 3.99, 7.426616609310719 401 | 4.0, 8.467617944135949 402 | 4.01, 7.328881030692218 403 | 4.02, 7.628552775628096 404 | 4.03, 7.846475648965381 405 | 4.04, 8.302110907331056 406 | 4.05, 7.270884504613983 407 | 4.06, 8.721473691851864 408 | 4.07, 7.185768584857177 409 | 4.08, 8.881988690789974 410 | 4.09, 8.072394985194206 411 | 4.1, 8.373689687768035 412 | 4.11, 8.040910081808443 413 | 4.12, 7.248783383179684 414 | 4.13, 8.44454184947416 415 | 4.14, 9.262286070736844 416 | 4.15, 7.909858610844858 417 | 4.16, 8.319716121676839 418 | 4.17, 8.447581597107511 419 | 4.18, 9.186930787616905 420 | 4.19, 9.419556761218498 421 | 4.2, 8.98293092377197 422 | 4.21, 7.69577276180479 423 | 4.22, 8.246986207888838 424 | 4.23, 8.84858127543111 425 | 4.24, 7.711789954316476 426 | 4.25, 9.47550320851359 427 | 4.26, 8.614193763054196 428 | 4.27, 9.262590220214882 429 | 4.28, 8.465991113554692 430 | 4.29, 8.100811755301308 431 | 4.3, 8.377364357442998 432 | 4.31, 9.69283334506096 433 | 4.32, 9.71305743118669 434 | 4.33, 7.938138578109407 435 | 4.34, 9.678324545386882 436 | 4.35, 8.949981701055199 437 | 4.36, 7.820682436809182 438 | 4.37, 8.181378843432723 439 | 4.38, 8.362282825831025 440 | 4.39, 9.785943670966985 441 | 4.4, 9.19300072590693 442 | 4.41, 9.293225537522211 443 | 4.42, 8.603034837715276 444 | 4.43, 8.097238275787117 445 | 4.44, 8.03170590703586 446 | 4.45, 9.300137393294394 447 | 4.46, 8.60723554075879 448 | 4.47, 9.269644429574129 449 | 4.48, 8.04119458603749 450 | 4.49, 8.763408575162797 451 | 4.5, 8.780799476965466 452 | 4.51, 9.727093268323493 453 | 4.52, 9.759495049934554 454 | 4.53, 9.058964053023802 455 | 4.54, 9.014209636107289 456 | 4.55, 9.508442240167849 457 | 4.56, 10.115600659168251 458 | 4.57, 8.160188358218134 459 | 4.58, 8.546089195797965 460 | 4.59, 8.926159146605256 461 | 4.6, 9.549355004498514 462 | 4.61, 8.670858070097967 463 | 4.62, 8.778057233040611 464 | 4.63, 8.896575840780114 465 | 4.64, 9.732262587250295 466 | 4.65, 9.626872466244647 467 | 4.66, 8.310258742351184 468 | 4.67, 9.838628457108262 469 | 4.68, 8.958746387055285 470 | 4.69, 8.321299526755817 471 | 4.7, 9.828337936472321 472 | 4.71, 9.418068857260694 473 | 4.72, 9.718585273600604 474 | 4.73, 9.665560019968066 475 | 4.74, 10.0819743771889 476 | 4.75, 9.577152166956155 477 | 4.76, 8.910714856063773 478 | 4.77, 9.415695858363417 479 | 4.78, 8.557817386685375 480 | 4.79, 9.602950011295428 481 | 4.8, 10.657686384519533 482 | 4.81, 9.001521311806798 483 | 4.82, 9.000104295122592 484 | 4.83, 8.758429504318892 485 | 4.84, 9.0265029228873 486 | 4.85, 8.865509848354925 487 | 4.86, 9.893714324248151 488 | 4.87, 8.853826626643858 489 | 4.88, 10.712417434959201 490 | 4.89, 9.011787380228487 491 | 4.9, 10.969716347730156 492 | 4.91, 8.928729408034553 493 | 4.92, 10.421457217177714 494 | 4.93, 9.345037130743513 495 | 4.94, 10.742994285405898 496 | 4.95, 9.078521856300247 497 | 4.96, 10.005977399867058 498 | 4.97, 9.928370076945361 499 | 4.98, 9.085809216551283 500 | 4.99, 9.32575053665274 501 | 5.0, 10.912342273015405 502 | 5.01, 8.944518771898792 503 | 5.02, 9.078422397024095 504 | 5.03, 10.882302677941183 505 | 5.04, 9.584927730098546 506 | 5.05, 8.841113246504904 507 | 5.06, 10.075446189887973 508 | 5.07, 9.63630593102994 509 | 5.08, 9.438567658197956 510 | 5.09, 10.104116503391973 511 | 5.1, 9.429902172859158 512 | 5.11, 10.104261723846399 513 | 5.12, 9.642240833008195 514 | 5.13, 11.335744994403909 515 | 5.14, 11.151835585181335 516 | 5.15, 9.683849393517667 517 | 5.16, 10.031980506344507 518 | 5.17, 10.7009567782612 519 | 5.18, 9.435054778897372 520 | 5.19, 10.611848429122407 521 | 5.2, 9.504722124620839 522 | 5.21, 11.099661944077226 523 | 5.22, 9.317459661092634 524 | 5.23, 10.010190117763239 525 | 5.24, 11.405608107250847 526 | 5.25, 9.460860187813836 527 | 5.26, 10.072987554727874 528 | 5.27, 9.94688882879598 529 | 5.28, 9.440729376597126 530 | 5.29, 10.23835657519804 531 | 5.3, 10.322512448151912 532 | 5.31, 10.750347225689357 533 | 5.32, 9.793464662308178 534 | 5.33, 9.632581732988976 535 | 5.34, 11.807595845605912 536 | 5.35, 9.75826242661148 537 | 5.36, 10.300015603999489 538 | 5.37, 9.863167034704796 539 | 5.38, 10.114708066089026 540 | 5.39, 10.681775656216072 541 | 5.4, 10.620734222098351 542 | 5.41, 10.212712593299191 543 | 5.42, 12.169166131605394 544 | 5.43, 9.980301330143941 545 | 5.44, 12.06843661411931 546 | 5.45, 11.531910238227448 547 | 5.46, 11.740283299069132 548 | 5.47, 9.800966686714002 549 | 5.48, 10.0601522635933 550 | 5.49, 11.538652933366105 551 | 5.5, 11.008091083158519 552 | 5.51, 12.346309950232701 553 | 5.52, 10.901798968947196 554 | 5.53, 10.23646185416845 555 | 5.54, 10.81875861555951 556 | 5.55, 10.258969356405142 557 | 5.56, 9.732468409004417 558 | 5.57, 11.50334515084551 559 | 5.58, 10.654873797043493 560 | 5.59, 10.29161832335414 561 | 5.6, 10.861712817974592 562 | 5.61, 12.114971069548359 563 | 5.62, 9.924705624074022 564 | 5.63, 11.132663242709143 565 | 5.64, 10.375454714568113 566 | 5.65, 11.049161976732401 567 | 5.66, 11.000799786407818 568 | 5.67, 11.42869352561444 569 | 5.68, 10.604645983594525 570 | 5.69, 11.435658232711983 571 | 5.7, 10.53910779891623 572 | 5.71, 12.752413612585993 573 | 5.72, 12.315714546394869 574 | 5.73, 11.68059705501236 575 | 5.74, 10.392611549356522 576 | 5.75, 11.73294960421592 577 | 5.76, 11.804919683700172 578 | 5.77, 11.628666901606957 579 | 5.78, 12.829493214445392 580 | 5.79, 11.007467627129115 581 | 5.8, 11.73258664548447 582 | 5.81, 12.538617462718625 583 | 5.82, 12.126563557459177 584 | 5.83, 10.875558006380752 585 | 5.84, 13.023181786483892 586 | 5.85, 11.247276348672766 587 | 5.86, 13.157119719180008 588 | 5.87, 12.170423011169127 589 | 5.88, 12.615519728052965 590 | 5.89, 12.84674690311697 591 | 5.9, 11.110304621151062 592 | 5.91, 12.323090264444374 593 | 5.92, 13.236007631555466 594 | 5.93, 11.363709955751943 595 | 5.94, 10.758948058815907 596 | 5.95, 10.517345515892691 597 | 5.96, 12.941846741377068 598 | 5.97, 13.150510764266167 599 | 5.98, 10.659288451233293 600 | 5.99, 10.746120507302447 601 | 6.0, 11.83979220583895 602 | 6.01, 11.358643810188008 603 | 6.02, 11.248923586995666 604 | 6.03, 12.33989831227951 605 | 6.04, 11.837986040939034 606 | 6.05, 13.172693758883893 607 | 6.06, 12.529929882019585 608 | 6.07, 11.172557615159446 609 | 6.08, 13.26546873220342 610 | 6.09, 12.137894187807175 611 | 6.1, 12.712560165105138 612 | 6.11, 11.920588118366318 613 | 6.12, 12.300177375846868 614 | 6.13, 11.46095114771402 615 | 6.14, 11.313775024432939 616 | 6.15, 11.8686598602231 617 | 6.16, 12.367838616694545 618 | 6.17, 10.923995697950122 619 | 6.18, 13.351169740883062 620 | 6.19, 11.829106961938434 621 | 6.2, 12.21705823295433 622 | 6.21, 13.477692084950318 623 | 6.22, 12.081537051647205 624 | 6.23, 12.555491785879582 625 | 6.24, 12.176271924730639 626 | 6.25, 11.700380980192215 627 | 6.26, 12.012467679842537 628 | 6.27, 12.018398686048217 629 | 6.28, 13.819339364029656 630 | 6.29, 13.187374769883542 631 | 6.3, 14.045175616335442 632 | 6.31, 13.981563709460502 633 | 6.32, 13.963615808456863 634 | 6.33, 12.132471835585006 635 | 6.34, 11.62723107077122 636 | 6.35, 11.133793691740843 637 | 6.36, 11.552856942163759 638 | 6.37, 14.021730768940161 639 | 6.38, 12.659239725443614 640 | 6.39, 13.55431734952962 641 | 6.4, 13.250830910608224 642 | 6.41, 11.455499589493108 643 | 6.42, 14.318896789428901 644 | 6.43, 12.42882928511054 645 | 6.44, 14.277734280965191 646 | 6.45, 12.834164757015357 647 | 6.46, 11.373620443807567 648 | 6.47, 13.643532414806549 649 | 6.48, 12.15313212157192 650 | 6.49, 13.892590228272626 651 | 6.5, 12.783730992860338 652 | 6.51, 13.67141829536991 653 | 6.52, 12.742037686308894 654 | 6.53, 12.962259170629338 655 | 6.54, 11.718372332495633 656 | 6.55, 12.705394758231273 657 | 6.56, 12.013622969275001 658 | 6.57, 14.065254385017656 659 | 6.58, 12.684017431733054 660 | 6.59, 14.500004228473232 661 | 6.6, 13.106159259031585 662 | 6.61, 14.624360239280293 663 | 6.62, 12.403681867689968 664 | 6.63, 14.280407647575293 665 | 6.64, 12.235354978671433 666 | 6.65, 14.473797714679515 667 | 6.66, 14.711354957992812 668 | 6.67, 14.524259387350641 669 | 6.68, 13.393402025889081 670 | 6.69, 14.251830544747026 671 | 6.7, 14.324811058505356 672 | 6.71, 12.861789577501602 673 | 6.72, 13.285167871288872 674 | 6.73, 13.049437794594432 675 | 6.74, 13.352592146121115 676 | 6.75, 13.009681046082454 677 | 6.76, 13.426914959725966 678 | 6.77, 13.732461662847207 679 | 6.78, 14.882129508637904 680 | 6.79, 14.207764012858673 681 | 6.8, 12.426979311769049 682 | 6.81, 15.244626460986977 683 | 6.82, 15.170909833519932 684 | 6.83, 14.66636552621281 685 | 6.84, 12.734746603657003 686 | 6.85, 13.616804832486661 687 | 6.86, 12.882073705242059 688 | 6.87, 15.164957495274328 689 | 6.88, 13.890582603674952 690 | 6.89, 14.298062960286272 691 | 6.9, 14.812789517584003 692 | 6.91, 14.775341827031648 693 | 6.92, 14.73087895483617 694 | 6.93, 12.503010051407841 695 | 6.94, 13.448904098868189 696 | 6.95, 15.403869136823873 697 | 6.96, 12.390264818899107 698 | 6.97, 12.974165407358967 699 | 6.98, 12.575931255472005 700 | 6.99, 12.953438632468073 701 | 7.0, 14.080330316192196 702 | 7.01, 13.600171911024885 703 | 7.02, 14.02053364424361 704 | 7.03, 14.711198364969436 705 | 7.04, 15.41264093836945 706 | 7.05, 14.50619178077744 707 | 7.06, 12.82532860391388 708 | 7.07, 15.236028492384929 709 | 7.08, 15.363871216278193 710 | 7.09, 13.839042026898811 711 | 7.1, 14.13803901151461 712 | 7.11, 13.161184036734866 713 | 7.12, 14.369617312261523 714 | 7.13, 14.874947274170262 715 | 7.14, 13.039484364802387 716 | 7.15, 14.652884139962401 717 | 7.16, 13.680291012860561 718 | 7.17, 13.370701348915286 719 | 7.18, 13.99516547510714 720 | 7.19, 15.573240220914837 721 | 7.2, 13.17514834800259 722 | 7.21, 13.296855016163127 723 | 7.22, 15.223142782532024 724 | 7.23, 15.80905676755086 725 | 7.24, 13.17892822703695 726 | 7.25, 14.881959789268226 727 | 7.26, 13.325929319940563 728 | 7.27, 12.857465166156029 729 | 7.28, 14.039967489936554 730 | 7.29, 13.294115783609644 731 | 7.3, 15.15943438997553 732 | 7.31, 13.481690278203052 733 | 7.32, 14.953205619944455 734 | 7.33, 13.738160308554972 735 | 7.34, 12.973589900136279 736 | 7.35, 15.438682359672718 737 | 7.36, 14.924811120772759 738 | 7.37, 14.888477502647138 739 | 7.38, 13.509693184525156 740 | 7.39, 13.799127215447626 741 | 7.4, 15.239401580813071 742 | 7.41, 14.185513185409059 743 | 7.42, 15.555055796061602 744 | 7.43, 15.99976892741095 745 | 7.44, 14.116491909644115 746 | 7.45, 14.54072961696089 747 | 7.46, 14.857768947198478 748 | 7.47, 13.194367899904751 749 | 7.48, 16.314158049984094 750 | 7.49, 13.503262824249216 751 | 7.5, 15.37828842883809 752 | 7.51, 13.52753829168695 753 | 7.52, 13.4057958237164 754 | 7.53, 15.637163391333267 755 | 7.54, 15.76677149961548 756 | 7.55, 14.156108242033314 757 | 7.56, 16.291355573814634 758 | 7.57, 16.12371735178295 759 | 7.58, 16.47459888970349 760 | 7.59, 15.791833949571018 761 | 7.6, 15.114243623823183 762 | 7.61, 15.418112103788243 763 | 7.62, 15.219579194432194 764 | 7.63, 14.187062817920893 765 | 7.64, 13.609685697144117 766 | 7.65, 15.7865437293973 767 | 7.66, 14.31387312456556 768 | 7.67, 14.312513893487424 769 | 7.68, 16.931483141326712 770 | 7.69, 15.951272470733189 771 | 7.7, 14.047703659147912 772 | 7.71, 14.93830746964164 773 | 7.72, 13.54035045442637 774 | 7.73, 15.56406037146454 775 | 7.74, 16.121791556853164 776 | 7.75, 13.698912560655511 777 | 7.76, 15.879773325401489 778 | 7.77, 14.18459815795303 779 | 7.78, 13.90630503895816 780 | 7.79, 15.311796216980273 781 | 7.8, 14.470758144639158 782 | 7.81, 14.001913989530497 783 | 7.82, 15.355969488473681 784 | 7.83, 16.613373270637656 785 | 7.84, 17.024656274983727 786 | 7.85, 17.06442506841246 787 | 7.86, 16.50492803902042 788 | 7.87, 17.398898644218793 789 | 7.88, 14.864370922267716 790 | 7.89, 16.76840474458873 791 | 7.9, 15.986873735076829 792 | 7.91, 16.22051322896614 793 | 7.92, 16.412457611223484 794 | 7.93, 15.934533516211504 795 | 7.94, 17.531007939051502 796 | 7.95, 16.553237751526325 797 | 7.96, 14.79229442614657 798 | 7.97, 17.646764353457456 799 | 7.98, 15.059615898316126 800 | 7.99, 14.0017891845253 801 | 8.0, 17.401405967320102 802 | 8.01, 17.20182591649983 803 | 8.02, 17.115939199591296 804 | 8.03, 14.343831526042898 805 | 8.04, 16.786999888262688 806 | 8.05, 16.30606087128781 807 | 8.06, 17.862257955617853 808 | 8.07, 14.388681763344007 809 | 8.08, 16.49160180731734 810 | 8.09, 16.165925226203235 811 | 8.1, 17.56181579799322 812 | 8.11, 14.25521394829313 813 | 8.12, 14.564998442667637 814 | 8.13, 15.18354343221166 815 | 8.14, 16.6944100750431 816 | 8.15, 16.018847789018952 817 | 8.16, 15.97413643540525 818 | 8.17, 17.459626412367847 819 | 8.18, 17.9926248797597 820 | 8.19, 14.454486136107276 821 | 8.2, 17.2525493655051 822 | 8.21, 16.309860340071815 823 | 8.22, 16.867176823824735 824 | 8.23, 15.961362286334662 825 | 8.24, 15.210427212785417 826 | 8.25, 18.33494005482013 827 | 8.26, 17.34495038449323 828 | 8.27, 15.609309163373206 829 | 8.28, 16.793442541127167 830 | 8.29, 16.544773893272755 831 | 8.3, 17.115147822184042 832 | 8.31, 15.673972215376399 833 | 8.32, 16.176976000755676 834 | 8.33, 14.622611848669393 835 | 8.34, 16.293124596670257 836 | 8.35, 16.14919795232616 837 | 8.36, 17.634397871733597 838 | 8.37, 15.231959252735049 839 | 8.38, 17.915784323009774 840 | 8.39, 15.983099472053194 841 | 8.4, 14.742293980597923 842 | 8.41, 17.647041904607985 843 | 8.42, 16.478712673591914 844 | 8.43, 15.861432854034863 845 | 8.44, 16.06406543726116 846 | 8.45, 18.010658471905465 847 | 8.46, 16.976049084712464 848 | 8.47, 15.592996644294995 849 | 8.48, 18.75981314641868 850 | 8.49, 17.290959036667047 851 | 8.5, 18.979203272962966 852 | 8.51, 16.2594197239842 853 | 8.52, 16.94091793966334 854 | 8.53, 17.476996544892877 855 | 8.54, 16.18878285201009 856 | 8.55, 17.900823402945086 857 | 8.56, 15.895135253264877 858 | 8.57, 15.272092489557407 859 | 8.58, 18.7797206404664 860 | 8.59, 17.13356612843789 861 | 8.6, 16.160255877062323 862 | 8.61, 19.02055056379122 863 | 8.62, 16.349593657159517 864 | 8.63, 15.791498598432089 865 | 8.64, 15.957063814275374 866 | 8.65, 16.033146278822223 867 | 8.66, 18.81060865743338 868 | 8.67, 18.28373130370808 869 | 8.68, 18.981869737477602 870 | 8.69, 19.41653612371787 871 | 8.7, 18.32262514912354 872 | 8.71, 18.696163107144326 873 | 8.72, 16.96162564057852 874 | 8.73, 17.344716036458244 875 | 8.74, 15.42030110989484 876 | 8.75, 17.27803334298179 877 | 8.76, 16.68088985703207 878 | 8.77, 19.178102791741484 879 | 8.78, 16.254822098548654 880 | 8.79, 17.531616376944452 881 | 8.8, 17.673076589323603 882 | 8.81, 16.01795897382565 883 | 8.82, 16.737114069435894 884 | 8.83, 19.32121488602987 885 | 8.84, 16.27454650541157 886 | 8.85, 16.794714205351045 887 | 8.86, 17.684120216164217 888 | 8.87, 18.246303980377817 889 | 8.88, 19.75912390969669 890 | 8.89, 18.179543663949886 891 | 8.9, 15.714273157537116 892 | 8.91, 16.994548987991273 893 | 8.92, 16.55230726235475 894 | 8.93, 18.994614832864045 895 | 8.94, 18.248988558621967 896 | 8.95, 19.919468213425432 897 | 8.96, 16.60582029843388 898 | 8.97, 17.50550720263993 899 | 8.98, 18.183066568377917 900 | 8.99, 16.34184540308632 901 | 9.0, 18.494880666860844 902 | 9.01, 17.139547926543305 903 | 9.02, 20.26615100020311 904 | 9.03, 19.85002085564153 905 | 9.04, 16.4334244698127 906 | 9.05, 19.135592744220723 907 | 9.06, 16.633750649645993 908 | 9.07, 19.994377836428548 909 | 9.08, 17.04126300848308 910 | 9.09, 20.256563292282255 911 | 9.1, 20.03032571166123 912 | 9.11, 20.480281975285877 913 | 9.12, 18.953421188927898 914 | 9.13, 18.48149720008971 915 | 9.14, 17.407810422891863 916 | 9.15, 17.395371766513616 917 | 9.16, 18.98647567985942 918 | 9.17, 20.062189697319166 919 | 9.18, 19.899176915207445 920 | 9.19, 17.857432803939638 921 | 9.2, 20.158721097645987 922 | 9.21, 16.43962994190558 923 | 9.22, 17.115389311509436 924 | 9.23, 16.502422157859495 925 | 9.24, 16.63645725382407 926 | 9.25, 18.60258058196557 927 | 9.26, 16.704587001820972 928 | 9.27, 18.84121763689461 929 | 9.28, 20.682827260978815 930 | 9.29, 17.891770068685528 931 | 9.3, 18.95886233631796 932 | 9.31, 19.083377746743846 933 | 9.32, 19.89536948623752 934 | 9.33, 17.521812911189123 935 | 9.34, 20.480532518957496 936 | 9.35, 18.11963324764736 937 | 9.36, 19.719496747871208 938 | 9.37, 20.912345524858235 939 | 9.38, 18.496591565948673 940 | 9.39, 19.374290278757027 941 | 9.4, 19.199061759420996 942 | 9.41, 20.783219031488606 943 | 9.42, 19.341205470064917 944 | 9.43, 19.931032521874645 945 | 9.44, 20.52213581532736 946 | 9.45, 18.859721858582144 947 | 9.46, 19.921810126060166 948 | 9.47, 17.36724623659853 949 | 9.48, 19.30849883036426 950 | 9.49, 17.6092510034936 951 | 9.5, 17.829444719909297 952 | 9.51, 19.368378213794053 953 | 9.52, 18.905372884563935 954 | 9.53, 19.401098835084973 955 | 9.54, 20.526485944839752 956 | 9.55, 19.37520327608647 957 | 9.56, 18.034362286331003 958 | 9.57, 20.579950900415557 959 | 9.58, 21.132361177735376 960 | 9.59, 19.27901624199999 961 | 9.6, 21.485560859208313 962 | 9.61, 17.0669761685166 963 | 9.62, 21.082523521936903 964 | 9.63, 17.685293266787443 965 | 9.64, 17.776600999918493 966 | 9.65, 17.10139013305907 967 | 9.66, 16.985983829806756 968 | 9.67, 18.73483064172688 969 | 9.68, 21.307227417587622 970 | 9.69, 20.68462429057452 971 | 9.7, 17.62836595838001 972 | 9.71, 20.004742204173535 973 | 9.72, 20.436768552699384 974 | 9.73, 19.679888706780662 975 | 9.74, 17.28554859379228 976 | 9.75, 18.841781505028422 977 | 9.76, 20.067489420739822 978 | 9.77, 19.44374602311021 979 | 9.78, 21.971679316598497 980 | 9.79, 19.24862189440969 981 | 9.8, 19.77778058021572 982 | 9.81, 20.229945079774588 983 | 9.82, 18.951901062946092 984 | 9.83, 20.237365378969642 985 | 9.84, 19.23925489880861 986 | 9.85, 20.19369324992712 987 | 9.86, 21.720205146961813 988 | 9.87, 22.12556925090116 989 | 9.88, 20.97827374600632 990 | 9.89, 20.262473207774832 991 | 9.9, 21.57722964489031 992 | 9.91, 18.68572743246992 993 | 9.92, 17.98957267008309 994 | 9.93, 18.574357805778007 995 | 9.94, 18.47237984525359 996 | 9.95, 18.24467712256057 997 | 9.96, 19.396632386184283 998 | 9.97, 21.943612999957132 999 | 9.98, 21.74273351664563 1000 | 9.99, 17.644628773454272 1001 | -------------------------------------------------------------------------------- /1_Fake_Data_Creation/non_linear_data.csv: -------------------------------------------------------------------------------- 1 | 0.0, -0.626461850894608 2 | 0.1, 0.7089081186222375 3 | 0.2, 0.3895428324579264 4 | 0.3, -0.7137207768327105 5 | 0.4, 0.2970666752471913 6 | 0.5, -0.900695244663988 7 | 0.6, 0.4094648983288191 8 | 0.7, 0.5509214663312941 9 | 0.8, 0.9346040973790725 10 | 0.9, 0.9963415025208654 11 | 1.0, 0.8195344047927364 12 | 1.1, 0.8850310774180756 13 | 1.2, 0.3032645296221205 14 | 1.3, -0.33881719716441916 15 | 1.4, 0.9522853089754717 16 | 1.5, 0.5775153621732572 17 | 1.6, -0.46103390517941756 18 | 1.7, 1.083470536834532 19 | 1.8, 0.3893812437603348 20 | 1.9, 0.42483453599092025 21 | 2.0, 0.6025582660962057 22 | 2.1, 0.20572117298345383 23 | 2.2, 1.7788040178738256 24 | 2.3, 0.4484138743353965 25 | 2.4, 1.2159355696817316 26 | 2.5, 1.3506691738311238 27 | 2.6, 0.8012104046044377 28 | 2.7, 1.8953772239243738 29 | 2.8, 1.0774235997946022 30 | 2.9, 1.2875733191705279 31 | 3.0, 1.2858802278918724 32 | 3.1, 2.788109271116883 33 | 3.2, 2.6113274341264283 34 | 3.3, 2.0832223984876697 35 | 3.4, 1.4952462820403085 36 | 3.5, 2.810864221958867 37 | 3.6, 2.5696843802825624 38 | 3.7, 2.6605239752048706 39 | 3.8, 2.5387552170178624 40 | 3.9, 3.9613774414321092 41 | 4.0, 3.7444589235119 42 | 4.1, 4.0411313730322425 43 | 4.2, 4.135984169540479 44 | 4.3, 4.0142309059624335 45 | 4.4, 4.44150805470087 46 | 4.5, 3.41020605113913 47 | 4.6, 3.35042778526761 48 | 4.7, 4.393607493153923 49 | 4.8, 4.143183581298954 50 | 4.9, 4.043065471661971 51 | 5.0, 4.132386982139012 52 | 5.1, 4.252534479335153 53 | 5.2, 5.174781179104407 54 | 5.3, 6.455561020088048 55 | 5.4, 6.001984618808758 56 | 5.5, 6.292322641106403 57 | 5.6, 5.830318253402246 58 | 5.7, 6.163710752242671 59 | 5.8, 7.395859414209846 60 | 5.9, 6.44700409422723 61 | 6.0, 6.92502290738191 62 | 6.1, 7.839340985002335 63 | 6.2, 7.9829019517518685 64 | 6.3, 7.270803934637834 65 | 6.4, 8.573793882156615 66 | 6.5, 8.321024825688529 67 | 6.6, 8.180317865607183 68 | 6.7, 8.136458243741787 69 | 6.8, 10.136853733007777 70 | 6.9, 10.407198032300062 71 | 7.0, 10.657125913085457 72 | 7.1, 9.765397793033756 73 | 7.2, 9.550157748815364 74 | 7.3, 10.492743750530185 75 | 7.4, 11.748612683365053 76 | 7.5, 11.108641933892123 77 | 7.6, 12.087386398132965 78 | 7.7, 11.649833782479769 79 | 7.8, 12.879560803414632 80 | 7.9, 12.14890388318889 81 | 8.0, 12.928165815210248 82 | 8.1, 12.175218510444513 83 | 8.2, 12.78778633844598 84 | 8.3, 14.173375015718793 85 | 8.4, 14.107248354268025 86 | 8.5, 13.504319805771805 87 | 8.6, 14.13756796384686 88 | 8.7, 15.219453514693425 89 | 8.8, 15.241975268415956 90 | 8.9, 15.205943614892742 91 | 9.0, 16.149226874973074 92 | 9.1, 15.950293300564647 93 | 9.2, 16.413507329134834 94 | 9.3, 18.081651621092885 95 | 9.4, 17.781758281123214 96 | 9.5, 18.602300984475246 97 | 9.6, 18.7387926345817 98 | 9.7, 18.881590395528047 99 | 9.8, 19.18258026733236 100 | 9.9, 20.569905877007802 101 | -------------------------------------------------------------------------------- /2_Intro_To_Regression_Modeling/1_Simple_Regression.py: -------------------------------------------------------------------------------- 1 | import pandas as pd 2 | import numpy as np 3 | import numpy.random as nr 4 | import sklearn.model_selection as ms 5 | import matplotlib.pyplot as plt 6 | import General_Tools as gt 7 | import sys 8 | 9 | from sklearn.linear_model import LinearRegression 10 | 11 | """ Load the Fake Data Into a Pandas DataFrame """ 12 | df_XY = pd.read_csv( 13 | "./1_Fake_Data_Creation/linear_data.csv", header=None) 14 | df_XY.columns = ['X', 'Y'] 15 | print("The Data Frame with X and Y:") 16 | print(df_XY) 17 | print() 18 | 19 | """ Convert the DataFrame to a Values Array """ 20 | XY_Values = df_XY.values 21 | print("Just The X and Y Values") 22 | print(XY_Values) 23 | print() 24 | 25 | """ Split the X and Y from the XY_Values """ 26 | X = XY_Values[:, 0:1] 27 | Y = XY_Values[:, -1] 28 | print("The X and Y Values Separately:") 29 | print("The X Values") 30 | print(X) 31 | print() 32 | print("The Y Values") 33 | print(Y) 34 | print() 35 | 36 | """ Randomize 100 Indices and Split into Train and Test """ 37 | nr.seed(9988) 38 | total_pt_cnt = X.shape[0] 39 | num_test_pts = int(total_pt_cnt / 4) 40 | indx = range(total_pt_cnt) 41 | indx = ms.train_test_split(indx, test_size = num_test_pts) 42 | print("Inspecting the Indices Used for Train and Test Sets") 43 | print(f'Train Set Size: {len(indx[0])}, Test Set Size: {len(indx[1])}') 44 | print() 45 | print("Train Set Indices") 46 | print(indx[0]) 47 | print() 48 | print("Test Set Indices") 49 | print(indx[1]) 50 | print() 51 | 52 | """ Format the 1D Data Arrays Back to 2D Arrays """ 53 | x_train = X[indx[0]].reshape(-1, 1) 54 | y_train = Y[indx[0]].reshape(-1, 1) 55 | x_test = X[indx[1]].reshape(-1, 1) 56 | y_test = Y[indx[1]].reshape(-1, 1) 57 | 58 | """ Visualize What We Have for Train and Test """ 59 | plt.scatter(x_train, y_train, color='b') 60 | plt.scatter(x_test, y_test, color='r') 61 | plt.title('Train Data (Blue) and Test Data (Red)') 62 | plt.xlabel('X Values') 63 | plt.ylabel('Y Values') 64 | plt.show() 65 | 66 | """ Load the Linear Regression Model 67 | and Fit using Training Data """ 68 | mod = LinearRegression(fit_intercept = True) 69 | mod.fit(x_train, y_train) 70 | print("The Model Coefficients:") 71 | print(f'The Y Intercept: {mod.intercept_}') 72 | print(f'The Slope / Model Weight: {mod.coef_}') 73 | print() 74 | 75 | y_pred = mod.predict(x_test) 76 | print("Model Performance Metrics:") 77 | gt.print_metrics(y_test, y_pred, 1) 78 | 79 | plt.scatter(x_test, y_test, color='b') 80 | plt.plot(x_test, y_pred, color='r') 81 | plt.title('Predictions vs. Test Data') 82 | plt.xlabel('X Values') 83 | plt.ylabel('Y Values') 84 | plt.show() 85 | -------------------------------------------------------------------------------- /2_Intro_To_Regression_Modeling/2_Simple_Regression_Engineered_Feature.py: -------------------------------------------------------------------------------- 1 | import pandas as pd 2 | import numpy as np 3 | import numpy.random as nr 4 | import sklearn.model_selection as ms 5 | import matplotlib.pyplot as plt 6 | import General_Tools as gt 7 | 8 | from sklearn.linear_model import LinearRegression 9 | 10 | """ Load the Fake Data Into a Pandas DataFrame """ 11 | df_XY = pd.read_csv( 12 | "./1_Fake_Data_Creation/non_linear_data.csv", header=None) 13 | df_XY.columns = ['X', 'Y'] 14 | print("The Data Frame with X and Y:") 15 | print(df_XY) 16 | print() 17 | 18 | """ Convert the DataFrame to a Values Array """ 19 | XY_Values = df_XY.values 20 | print("Just The X and Y Values:") 21 | print(XY_Values) 22 | print() 23 | 24 | """ Split the X and Y from the XY_Values """ 25 | X0 = XY_Values[:, 0] 26 | XSq = X0 ** 2 27 | X = np.vstack((X0, XSq)) 28 | X = np.transpose(X) 29 | Y = XY_Values[:, -1] 30 | print("The X and Y Values Separately") 31 | print("The X Values") 32 | print(X) 33 | print() 34 | print("The Y Values") 35 | print(Y) 36 | print() 37 | 38 | """ Randomize 100 Indices and Split into Train and Test """ 39 | nr.seed(9988) 40 | total_pt_cnt = X.shape[0] 41 | num_test_pts = int(total_pt_cnt / 4) 42 | indx = range(X.shape[0]) 43 | indx = ms.train_test_split(indx, test_size = num_test_pts) 44 | print("Inspecting the Indices Used for Train and Test Sets") 45 | print(f'Train Set Size: {len(indx[0])}, Test Set Size: {len(indx[1])}') 46 | print() 47 | print("Train Set Indices") 48 | indx[0] # .sort() 49 | print(indx[0]) 50 | print() 51 | print("Test Set Indices") 52 | indx[1].sort() 53 | print(indx[1]) 54 | print() 55 | 56 | """ Format the 1D Data Arrays Back to 2D Arrays """ 57 | x_train = X[indx[0], :] # .reshape(-1, 1) 58 | y_train = Y[indx[0]].reshape(-1, 1) 59 | x_test = X[indx[1], :] # .reshape(-1, 1) 60 | y_test = Y[indx[1]].reshape(-1, 1) 61 | 62 | """ Visualize What We Have for Train and Test """ 63 | plt.scatter(x_train[:, 0], y_train, color='b') 64 | plt.scatter(x_test[:, 0], y_test, color='r') 65 | plt.title('Train Data (Blue) and Test Data (Red)') 66 | plt.xlabel('X Values') 67 | plt.ylabel('Y Values') 68 | plt.show() 69 | 70 | """ Load the Linear Regression Model 71 | and Fit with Training Data """ 72 | mod = LinearRegression(fit_intercept = True) 73 | mod.fit(x_train, y_train) 74 | print("The Model Coefficients:") 75 | print(f'The Y Intercept: {mod.intercept_}') 76 | print(f'The Slope / Model Weight: {mod.coef_}') 77 | print() 78 | 79 | y_pred = mod.predict(x_test) 80 | print("The Model Performance Metrics:") 81 | gt.print_metrics(y_test, y_pred, 1) 82 | 83 | plt.scatter(x_test[:, 0], y_test, color='b') 84 | plt.plot(x_test[:, 0], y_pred, color='r') 85 | plt.title('Predictions vs. Test Data') 86 | plt.xlabel('X Values') 87 | plt.ylabel('Y Values') 88 | plt.show() -------------------------------------------------------------------------------- /2_Intro_To_Regression_Modeling/3_Simple_Regression_Dbl_Feature.py: -------------------------------------------------------------------------------- 1 | import pandas as pd 2 | import numpy as np 3 | import numpy.random as nr 4 | import sklearn.model_selection as ms 5 | import matplotlib.pyplot as plt 6 | from mpl_toolkits.mplot3d import Axes3D 7 | import General_Tools as gt 8 | 9 | from sklearn.linear_model import LinearRegression 10 | 11 | """ Load the Fake Data Into a Pandas DataFrame """ 12 | df_XY = pd.read_csv( 13 | "./1_Fake_Data_Creation/dbl_feature_linear_data.csv", header=None) 14 | df_XY.columns = ['X1', 'X1-3', 'X2', 'X2-2', 'Y'] 15 | print("The Data Frame with X and Y:") 16 | print(df_XY) 17 | print() 18 | 19 | """ Convert the DataFrame to a Values Array """ 20 | XY_Values = df_XY.values 21 | print("Just The X and Y Values:") 22 | print(XY_Values) 23 | print() 24 | 25 | """ Split the X and Y from the XY_Values """ 26 | X = XY_Values[:, [0, 2, 3]] 27 | Y = XY_Values[:, -1] 28 | print("The X and Y Values Separately") 29 | print("The X Values") 30 | print(X) 31 | print() 32 | print("The Y Values") 33 | print(Y) 34 | print() 35 | 36 | """ Randomize 100 Indices and Split into Train and Test """ 37 | nr.seed(9988) 38 | total_pt_cnt = X.shape[0] 39 | num_test_pts = int(total_pt_cnt / 4) 40 | indx = range(X.shape[0]) 41 | indx = ms.train_test_split(indx, test_size = num_test_pts) 42 | print("Inspecting the Indices Used for Train and Test Sets") 43 | print(f'Train Set Size: {len(indx[0])}, Test Set Size: {len(indx[1])}') 44 | print() 45 | print("Train Set Indices") 46 | indx[0].sort() 47 | print(indx[0]) 48 | print() 49 | print("Test Set Indices") 50 | indx[1].sort() 51 | print(indx[1]) 52 | print() 53 | 54 | """ Format the 1D Data Arrays Back to 2D Arrays """ 55 | x_train = X[indx[0], :] # .reshape(-1, 1) 56 | y_train = Y[indx[0]] # .reshape(-1, 1) 57 | x_test = X[indx[1], :] # .reshape(-1, 1) 58 | y_test = Y[indx[1]] # .reshape(-1, 1) 59 | 60 | """ Visualize What We Have for Train and Test """ 61 | fig = plt.figure() 62 | ax = plt.axes(projection='3d') 63 | 64 | ax.scatter3D(x_train[:, 0], x_train[:, 1], y_train, color='b') 65 | ax.scatter3D(x_test[:, 0], x_test[:, 1], y_test, color='r') 66 | ax.set_xlabel('X1 Values') 67 | ax.set_ylabel('X2 Values') 68 | ax.set_zlabel('Y Values') 69 | ax.set_title('3D Plot Of Linear Fake Data') 70 | 71 | plt.show() 72 | 73 | """ Load the Linear Regression Model 74 | and Fit with Training Data """ 75 | mod = LinearRegression( 76 | fit_intercept=False, 77 | normalize=False, 78 | positive=False) 79 | mod.fit(x_train, y_train) 80 | print("The Model Coefficients:") 81 | print(f'The Y Intercept: {mod.intercept_}') 82 | print(f'The Slope / Model Weight: {mod.coef_}') 83 | print() 84 | 85 | y_pred = mod.predict(x_test) 86 | print("The Model Performance Metrics:") 87 | gt.print_metrics(y_test, y_pred, 1) 88 | 89 | fig = plt.figure() 90 | ax = plt.axes(projection='3d') 91 | 92 | ax.scatter3D(x_test[:, 0], x_test[:, 1], y_test, 'blue') 93 | ax.plot3D(x_test[:, 0], x_test[:, 1], y_pred, 'red') 94 | ax.set_xlabel('X1 Values') 95 | ax.set_ylabel('X2 Values') 96 | ax.set_zlabel('Y Values') 97 | ax.set_title('3D Plot Of Linear Fake Data') 98 | plt.show() 99 | -------------------------------------------------------------------------------- /2_Intro_To_Regression_Modeling/4_Simple_Regression_Dbl_Engineered_Feature.py: -------------------------------------------------------------------------------- 1 | import pandas as pd 2 | import numpy as np 3 | import numpy.random as nr 4 | import sklearn.model_selection as ms 5 | import matplotlib.pyplot as plt 6 | from mpl_toolkits.mplot3d import Axes3D 7 | import General_Tools as gt 8 | import sys 9 | 10 | from sklearn.linear_model import LinearRegression 11 | 12 | """ Load the Fake Data Into a Pandas DataFrame """ 13 | df_XY = pd.read_csv( 14 | "./1_Fake_Data_Creation/dbl_feature_non_linear_data.csv", header=None) 15 | df_XY.columns = ['X1', 'X2', 'Y'] 16 | print("The Data Frame with X and Y:") 17 | print(df_XY) 18 | print() 19 | 20 | """ Convert the DataFrame to a Values Array """ 21 | XY_Values = df_XY.values 22 | print("Just The X and Y Values:") 23 | print(XY_Values) 24 | print() 25 | 26 | """ Split the X and Y from the XY_Values """ 27 | X = XY_Values[:, 0:2] 28 | X = np.vstack((X[:,0], X[:,0]**2, X[:,1], X[:,1]**3)) 29 | X = np.transpose(X) 30 | Y = XY_Values[:, -1].reshape(-1, 1) 31 | print("The X and Y Values Separately") 32 | print("The Dimensions of the X Values") 33 | print(X.shape) 34 | print() 35 | print("The Dimensions of the Y Values") 36 | print(Y.shape) 37 | print() 38 | 39 | """ Randomize 100 Indices and Split into Train and Test """ 40 | nr.seed(9988) 41 | total_pt_cnt = X.shape[0] 42 | num_test_pts = int(total_pt_cnt / 4) 43 | indx = range(X.shape[0]) 44 | indx = ms.train_test_split(indx, test_size = num_test_pts) 45 | print("Inspecting the Indices Used for Train and Test Sets") 46 | print(f'Train Set Size: {len(indx[0])}, Test Set Size: {len(indx[1])}') 47 | print() 48 | print("Train Set Indices") 49 | indx[0].sort() 50 | print(indx[0]) 51 | print() 52 | print("Test Set Indices") 53 | indx[1].sort() 54 | print(indx[1]) 55 | print() 56 | 57 | """ Format the 1D Data Arrays Back to 2D Arrays """ 58 | x_train = X[indx[0], :] # .reshape(-1, 1) 59 | y_train = Y[indx[0]] # .reshape(-1, 1) 60 | x_test = X[indx[1], :] # .reshape(-1, 1) 61 | y_test = Y[indx[1]] # .reshape(-1, 1) 62 | 63 | """ Visualize What We Have for Train and Test """ 64 | fig = plt.figure() 65 | ax = plt.axes(projection='3d') 66 | 67 | ax.scatter3D(x_train[:, 0], x_train[:, 1], y_train, color='b') 68 | ax.scatter3D(x_test[:, 0], x_test[:, 1], y_test, color='r') 69 | ax.set_xlabel('X1 Values') 70 | ax.set_ylabel('X2 Values') 71 | ax.set_zlabel('Y Values') 72 | ax.set_title('3D Plot Of Linear Fake Data') 73 | plt.show() 74 | 75 | """ Load the Linear Regression Model 76 | and Fit with Training Data """ 77 | mod = LinearRegression( 78 | fit_intercept=False,normalize=False) 79 | mod.fit(x_train, y_train) 80 | print("The Model Coefficients:") 81 | print(f'The Y Intercept: {mod.intercept_}') 82 | print(f'The Slope / Model Weight: {mod.coef_}') 83 | print() 84 | 85 | y_pred = mod.predict(x_test).reshape(-1) 86 | print("The Model Performance Metrics:") 87 | gt.print_metrics(y_test, y_pred, 1) 88 | 89 | fig = plt.figure() 90 | ax = plt.axes(projection='3d') 91 | 92 | ax.scatter3D(x_test[:, 0], x_test[:, 1], y_test, 'blue') 93 | ax.plot3D(x_test[:, 0], x_test[:, 1], y_pred, 'red') 94 | ax.set_xlabel('X1 Values') 95 | ax.set_ylabel('X2 Values') 96 | ax.set_zlabel('Y Values') 97 | ax.set_title('3D Plot Of Linear Fake Data') 98 | plt.show() 99 | -------------------------------------------------------------------------------- /2_Intro_To_Regression_Modeling/DB_Tools.py: -------------------------------------------------------------------------------- 1 | import pyodbc 2 | import platform 3 | 4 | 5 | class DB: 6 | """ A small class to connect to and provide the cursor to a database """ 7 | def __init__(self, database='my_database_name'): 8 | self.database = database 9 | computer_name = platform.node() 10 | if computer_name == 'computer_name_1': 11 | self.conn = pyodbc.connect( 12 | driver='{SQL Server Native Client 11.0}', server='server_1', 13 | database=self.database, 14 | user='db_admin_username', password='db_admin_password') 15 | elif computer_name == 'computer_name_2': 16 | self.conn = pyodbc.connect( 17 | driver='{SQL Server Native Client 11.0}', server='server_2', 18 | database=self.database, 19 | trusted_connection='yes') 20 | 21 | self.cursor = self.conn.cursor() 22 | 23 | 24 | db = DB() 25 | # now you can use db.cursor and pass it around inside your app -------------------------------------------------------------------------------- /2_Intro_To_Regression_Modeling/General_Tools.py: -------------------------------------------------------------------------------- 1 | import sklearn.metrics as sklm 2 | import math 3 | 4 | def print_metrics(y_test, y_pred, n_params): 5 | ## First compute R^2 and the adjusted R^2 6 | ## Print the usual metrics and the R^2 values 7 | MSE = sklm.mean_squared_error(y_test, y_pred) 8 | RMSE = math.sqrt(sklm.mean_squared_error(y_test, y_pred)) 9 | MAE = sklm.mean_absolute_error(y_test, y_pred) 10 | MedAE = sklm.median_absolute_error(y_test, y_pred) 11 | r2 = sklm.r2_score(y_test, y_pred) 12 | r2_adj = (r2 - (n_params - 1) / 13 | (y_test.shape[0] - n_params) * (1 - r2)) 14 | 15 | print('Mean Square Error = ' + str(MSE)) 16 | print('Root Mean Square Error = ' + str(RMSE)) 17 | print('Mean Absolute Error = ' + str(MAE)) 18 | print('Median Absolute Error = ' + str(MedAE)) 19 | print('R^2 = ' + str(r2)) 20 | print('Adjusted R^2 = ' + str(r2_adj)) -------------------------------------------------------------------------------- /2_Intro_To_Regression_Modeling/List_Comp_Fun.py: -------------------------------------------------------------------------------- 1 | # Accomplish something in 4 lines of Python Code 2 | my_list_1 = [] 3 | 4 | for i in range(10): 5 | if i % 2 == 0: 6 | my_list_1.append(i) 7 | 8 | # Do same with 1 line using list comprehension 9 | my_list_2 = [i for i in range(10) if i % 2 == 0] 10 | 11 | # Store boolean state of the lists being equal 12 | status = my_list_1 == my_list_2 13 | 14 | # Assert equal lists with stored boolean 15 | assert status, 'lists do not equal' 16 | 17 | # Report boolean state of lists being equal 18 | print(f'T/F: The lists are equal: {status}') 19 | -------------------------------------------------------------------------------- /2_Intro_To_Regression_Modeling/numpy_tester.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | X = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) 4 | print() 5 | print(type(X)) 6 | print(X.shape) 7 | print() 8 | X0 = X[:, 1].reshape(-1, 1) 9 | print(X0.shape) 10 | print(X0) 11 | -------------------------------------------------------------------------------- /3_Missing_Data/Imputation_Concepts/Missing_Data_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntegratedMLAI/Machine_Learning_Pipeline/3effcf0839c26f0c1494b9ddbfbb9d27ecf3fd00/3_Missing_Data/Imputation_Concepts/Missing_Data_1.png -------------------------------------------------------------------------------- /3_Missing_Data/Imputation_Concepts/Missing_Data_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntegratedMLAI/Machine_Learning_Pipeline/3effcf0839c26f0c1494b9ddbfbb9d27ecf3fd00/3_Missing_Data/Imputation_Concepts/Missing_Data_10.png -------------------------------------------------------------------------------- /3_Missing_Data/Imputation_Concepts/Missing_Data_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntegratedMLAI/Machine_Learning_Pipeline/3effcf0839c26f0c1494b9ddbfbb9d27ecf3fd00/3_Missing_Data/Imputation_Concepts/Missing_Data_11.png -------------------------------------------------------------------------------- /3_Missing_Data/Imputation_Concepts/Missing_Data_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntegratedMLAI/Machine_Learning_Pipeline/3effcf0839c26f0c1494b9ddbfbb9d27ecf3fd00/3_Missing_Data/Imputation_Concepts/Missing_Data_12.png -------------------------------------------------------------------------------- /3_Missing_Data/Imputation_Concepts/Missing_Data_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntegratedMLAI/Machine_Learning_Pipeline/3effcf0839c26f0c1494b9ddbfbb9d27ecf3fd00/3_Missing_Data/Imputation_Concepts/Missing_Data_13.png -------------------------------------------------------------------------------- /3_Missing_Data/Imputation_Concepts/Missing_Data_14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntegratedMLAI/Machine_Learning_Pipeline/3effcf0839c26f0c1494b9ddbfbb9d27ecf3fd00/3_Missing_Data/Imputation_Concepts/Missing_Data_14.png -------------------------------------------------------------------------------- /3_Missing_Data/Imputation_Concepts/Missing_Data_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntegratedMLAI/Machine_Learning_Pipeline/3effcf0839c26f0c1494b9ddbfbb9d27ecf3fd00/3_Missing_Data/Imputation_Concepts/Missing_Data_2.png -------------------------------------------------------------------------------- /3_Missing_Data/Imputation_Concepts/Missing_Data_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntegratedMLAI/Machine_Learning_Pipeline/3effcf0839c26f0c1494b9ddbfbb9d27ecf3fd00/3_Missing_Data/Imputation_Concepts/Missing_Data_3.png -------------------------------------------------------------------------------- /3_Missing_Data/Imputation_Concepts/Missing_Data_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntegratedMLAI/Machine_Learning_Pipeline/3effcf0839c26f0c1494b9ddbfbb9d27ecf3fd00/3_Missing_Data/Imputation_Concepts/Missing_Data_4.png -------------------------------------------------------------------------------- /3_Missing_Data/Imputation_Concepts/Missing_Data_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntegratedMLAI/Machine_Learning_Pipeline/3effcf0839c26f0c1494b9ddbfbb9d27ecf3fd00/3_Missing_Data/Imputation_Concepts/Missing_Data_5.png -------------------------------------------------------------------------------- /3_Missing_Data/Imputation_Concepts/Missing_Data_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntegratedMLAI/Machine_Learning_Pipeline/3effcf0839c26f0c1494b9ddbfbb9d27ecf3fd00/3_Missing_Data/Imputation_Concepts/Missing_Data_6.png -------------------------------------------------------------------------------- /3_Missing_Data/Imputation_Concepts/Missing_Data_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntegratedMLAI/Machine_Learning_Pipeline/3effcf0839c26f0c1494b9ddbfbb9d27ecf3fd00/3_Missing_Data/Imputation_Concepts/Missing_Data_7.png -------------------------------------------------------------------------------- /3_Missing_Data/Imputation_Concepts/Missing_Data_8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntegratedMLAI/Machine_Learning_Pipeline/3effcf0839c26f0c1494b9ddbfbb9d27ecf3fd00/3_Missing_Data/Imputation_Concepts/Missing_Data_8.png -------------------------------------------------------------------------------- /3_Missing_Data/Imputation_Concepts/Missing_Data_9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IntegratedMLAI/Machine_Learning_Pipeline/3effcf0839c26f0c1494b9ddbfbb9d27ecf3fd00/3_Missing_Data/Imputation_Concepts/Missing_Data_9.png -------------------------------------------------------------------------------- /99_Project_Data/data_description.txt: -------------------------------------------------------------------------------- 1 | MSSubClass: Identifies the type of dwelling involved in the sale. 2 | 3 | 20 1-STORY 1946 & NEWER ALL STYLES 4 | 30 1-STORY 1945 & OLDER 5 | 40 1-STORY W/FINISHED ATTIC ALL AGES 6 | 45 1-1/2 STORY - UNFINISHED ALL AGES 7 | 50 1-1/2 STORY FINISHED ALL AGES 8 | 60 2-STORY 1946 & NEWER 9 | 70 2-STORY 1945 & OLDER 10 | 75 2-1/2 STORY ALL AGES 11 | 80 SPLIT OR MULTI-LEVEL 12 | 85 SPLIT FOYER 13 | 90 DUPLEX - ALL STYLES AND AGES 14 | 120 1-STORY PUD (Planned Unit Development) - 1946 & NEWER 15 | 150 1-1/2 STORY PUD - ALL AGES 16 | 160 2-STORY PUD - 1946 & NEWER 17 | 180 PUD - MULTILEVEL - INCL SPLIT LEV/FOYER 18 | 190 2 FAMILY CONVERSION - ALL STYLES AND AGES 19 | 20 | MSZoning: Identifies the general zoning classification of the sale. 21 | 22 | A Agriculture 23 | C Commercial 24 | FV Floating Village Residential 25 | I Industrial 26 | RH Residential High Density 27 | RL Residential Low Density 28 | RP Residential Low Density Park 29 | RM Residential Medium Density 30 | 31 | LotFrontage: Linear feet of street connected to property 32 | 33 | LotArea: Lot size in square feet 34 | 35 | Street: Type of road access to property 36 | 37 | Grvl Gravel 38 | Pave Paved 39 | 40 | Alley: Type of alley access to property 41 | 42 | Grvl Gravel 43 | Pave Paved 44 | NA No alley access 45 | 46 | LotShape: General shape of property 47 | 48 | Reg Regular 49 | IR1 Slightly irregular 50 | IR2 Moderately Irregular 51 | IR3 Irregular 52 | 53 | LandContour: Flatness of the property 54 | 55 | Lvl Near Flat/Level 56 | Bnk Banked - Quick and significant rise from street grade to building 57 | HLS Hillside - Significant slope from side to side 58 | Low Depression 59 | 60 | Utilities: Type of utilities available 61 | 62 | AllPub All public Utilities (E,G,W,& S) 63 | NoSewr Electricity, Gas, and Water (Septic Tank) 64 | NoSeWa Electricity and Gas Only 65 | ELO Electricity only 66 | 67 | LotConfig: Lot configuration 68 | 69 | Inside Inside lot 70 | Corner Corner lot 71 | CulDSac Cul-de-sac 72 | FR2 Frontage on 2 sides of property 73 | FR3 Frontage on 3 sides of property 74 | 75 | LandSlope: Slope of property 76 | 77 | Gtl Gentle slope 78 | Mod Moderate Slope 79 | Sev Severe Slope 80 | 81 | Neighborhood: Physical locations within Ames city limits 82 | 83 | Blmngtn Bloomington Heights 84 | Blueste Bluestem 85 | BrDale Briardale 86 | BrkSide Brookside 87 | ClearCr Clear Creek 88 | CollgCr College Creek 89 | Crawfor Crawford 90 | Edwards Edwards 91 | Gilbert Gilbert 92 | IDOTRR Iowa DOT and Rail Road 93 | MeadowV Meadow Village 94 | Mitchel Mitchell 95 | Names North Ames 96 | NoRidge Northridge 97 | NPkVill Northpark Villa 98 | NridgHt Northridge Heights 99 | NWAmes Northwest Ames 100 | OldTown Old Town 101 | SWISU South & West of Iowa State University 102 | Sawyer Sawyer 103 | SawyerW Sawyer West 104 | Somerst Somerset 105 | StoneBr Stone Brook 106 | Timber Timberland 107 | Veenker Veenker 108 | 109 | Condition1: Proximity to various conditions 110 | 111 | Artery Adjacent to arterial street 112 | Feedr Adjacent to feeder street 113 | Norm Normal 114 | RRNn Within 200' of North-South Railroad 115 | RRAn Adjacent to North-South Railroad 116 | PosN Near positive off-site feature--park, greenbelt, etc. 117 | PosA Adjacent to postive off-site feature 118 | RRNe Within 200' of East-West Railroad 119 | RRAe Adjacent to East-West Railroad 120 | 121 | Condition2: Proximity to various conditions (if more than one is present) 122 | 123 | Artery Adjacent to arterial street 124 | Feedr Adjacent to feeder street 125 | Norm Normal 126 | RRNn Within 200' of North-South Railroad 127 | RRAn Adjacent to North-South Railroad 128 | PosN Near positive off-site feature--park, greenbelt, etc. 129 | PosA Adjacent to postive off-site feature 130 | RRNe Within 200' of East-West Railroad 131 | RRAe Adjacent to East-West Railroad 132 | 133 | BldgType: Type of dwelling 134 | 135 | 1Fam Single-family Detached 136 | 2FmCon Two-family Conversion; originally built as one-family dwelling 137 | Duplx Duplex 138 | TwnhsE Townhouse End Unit 139 | TwnhsI Townhouse Inside Unit 140 | 141 | HouseStyle: Style of dwelling 142 | 143 | 1Story One story 144 | 1.5Fin One and one-half story: 2nd level finished 145 | 1.5Unf One and one-half story: 2nd level unfinished 146 | 2Story Two story 147 | 2.5Fin Two and one-half story: 2nd level finished 148 | 2.5Unf Two and one-half story: 2nd level unfinished 149 | SFoyer Split Foyer 150 | SLvl Split Level 151 | 152 | OverallQual: Rates the overall material and finish of the house 153 | 154 | 10 Very Excellent 155 | 9 Excellent 156 | 8 Very Good 157 | 7 Good 158 | 6 Above Average 159 | 5 Average 160 | 4 Below Average 161 | 3 Fair 162 | 2 Poor 163 | 1 Very Poor 164 | 165 | OverallCond: Rates the overall condition of the house 166 | 167 | 10 Very Excellent 168 | 9 Excellent 169 | 8 Very Good 170 | 7 Good 171 | 6 Above Average 172 | 5 Average 173 | 4 Below Average 174 | 3 Fair 175 | 2 Poor 176 | 1 Very Poor 177 | 178 | YearBuilt: Original construction date 179 | 180 | YearRemodAdd: Remodel date (same as construction date if no remodeling or additions) 181 | 182 | RoofStyle: Type of roof 183 | 184 | Flat Flat 185 | Gable Gable 186 | Gambrel Gabrel (Barn) 187 | Hip Hip 188 | Mansard Mansard 189 | Shed Shed 190 | 191 | RoofMatl: Roof material 192 | 193 | ClyTile Clay or Tile 194 | CompShg Standard (Composite) Shingle 195 | Membran Membrane 196 | Metal Metal 197 | Roll Roll 198 | Tar&Grv Gravel & Tar 199 | WdShake Wood Shakes 200 | WdShngl Wood Shingles 201 | 202 | Exterior1st: Exterior covering on house 203 | 204 | AsbShng Asbestos Shingles 205 | AsphShn Asphalt Shingles 206 | BrkComm Brick Common 207 | BrkFace Brick Face 208 | CBlock Cinder Block 209 | CemntBd Cement Board 210 | HdBoard Hard Board 211 | ImStucc Imitation Stucco 212 | MetalSd Metal Siding 213 | Other Other 214 | Plywood Plywood 215 | PreCast PreCast 216 | Stone Stone 217 | Stucco Stucco 218 | VinylSd Vinyl Siding 219 | Wd Sdng Wood Siding 220 | WdShing Wood Shingles 221 | 222 | Exterior2nd: Exterior covering on house (if more than one material) 223 | 224 | AsbShng Asbestos Shingles 225 | AsphShn Asphalt Shingles 226 | BrkComm Brick Common 227 | BrkFace Brick Face 228 | CBlock Cinder Block 229 | CemntBd Cement Board 230 | HdBoard Hard Board 231 | ImStucc Imitation Stucco 232 | MetalSd Metal Siding 233 | Other Other 234 | Plywood Plywood 235 | PreCast PreCast 236 | Stone Stone 237 | Stucco Stucco 238 | VinylSd Vinyl Siding 239 | Wd Sdng Wood Siding 240 | WdShing Wood Shingles 241 | 242 | MasVnrType: Masonry veneer type 243 | 244 | BrkCmn Brick Common 245 | BrkFace Brick Face 246 | CBlock Cinder Block 247 | None None 248 | Stone Stone 249 | 250 | MasVnrArea: Masonry veneer area in square feet 251 | 252 | ExterQual: Evaluates the quality of the material on the exterior 253 | 254 | Ex Excellent 255 | Gd Good 256 | TA Average/Typical 257 | Fa Fair 258 | Po Poor 259 | 260 | ExterCond: Evaluates the present condition of the material on the exterior 261 | 262 | Ex Excellent 263 | Gd Good 264 | TA Average/Typical 265 | Fa Fair 266 | Po Poor 267 | 268 | Foundation: Type of foundation 269 | 270 | BrkTil Brick & Tile 271 | CBlock Cinder Block 272 | PConc Poured Contrete 273 | Slab Slab 274 | Stone Stone 275 | Wood Wood 276 | 277 | BsmtQual: Evaluates the height of the basement 278 | 279 | Ex Excellent (100+ inches) 280 | Gd Good (90-99 inches) 281 | TA Typical (80-89 inches) 282 | Fa Fair (70-79 inches) 283 | Po Poor (<70 inches 284 | NA No Basement 285 | 286 | BsmtCond: Evaluates the general condition of the basement 287 | 288 | Ex Excellent 289 | Gd Good 290 | TA Typical - slight dampness allowed 291 | Fa Fair - dampness or some cracking or settling 292 | Po Poor - Severe cracking, settling, or wetness 293 | NA No Basement 294 | 295 | BsmtExposure: Refers to walkout or garden level walls 296 | 297 | Gd Good Exposure 298 | Av Average Exposure (split levels or foyers typically score average or above) 299 | Mn Mimimum Exposure 300 | No No Exposure 301 | NA No Basement 302 | 303 | BsmtFinType1: Rating of basement finished area 304 | 305 | GLQ Good Living Quarters 306 | ALQ Average Living Quarters 307 | BLQ Below Average Living Quarters 308 | Rec Average Rec Room 309 | LwQ Low Quality 310 | Unf Unfinshed 311 | NA No Basement 312 | 313 | BsmtFinSF1: Type 1 finished square feet 314 | 315 | BsmtFinType2: Rating of basement finished area (if multiple types) 316 | 317 | GLQ Good Living Quarters 318 | ALQ Average Living Quarters 319 | BLQ Below Average Living Quarters 320 | Rec Average Rec Room 321 | LwQ Low Quality 322 | Unf Unfinshed 323 | NA No Basement 324 | 325 | BsmtFinSF2: Type 2 finished square feet 326 | 327 | BsmtUnfSF: Unfinished square feet of basement area 328 | 329 | TotalBsmtSF: Total square feet of basement area 330 | 331 | Heating: Type of heating 332 | 333 | Floor Floor Furnace 334 | GasA Gas forced warm air furnace 335 | GasW Gas hot water or steam heat 336 | Grav Gravity furnace 337 | OthW Hot water or steam heat other than gas 338 | Wall Wall furnace 339 | 340 | HeatingQC: Heating quality and condition 341 | 342 | Ex Excellent 343 | Gd Good 344 | TA Average/Typical 345 | Fa Fair 346 | Po Poor 347 | 348 | CentralAir: Central air conditioning 349 | 350 | N No 351 | Y Yes 352 | 353 | Electrical: Electrical system 354 | 355 | SBrkr Standard Circuit Breakers & Romex 356 | FuseA Fuse Box over 60 AMP and all Romex wiring (Average) 357 | FuseF 60 AMP Fuse Box and mostly Romex wiring (Fair) 358 | FuseP 60 AMP Fuse Box and mostly knob & tube wiring (poor) 359 | Mix Mixed 360 | 361 | 1stFlrSF: First Floor square feet 362 | 363 | 2ndFlrSF: Second floor square feet 364 | 365 | LowQualFinSF: Low quality finished square feet (all floors) 366 | 367 | GrLivArea: Above grade (ground) living area square feet 368 | 369 | BsmtFullBath: Basement full bathrooms 370 | 371 | BsmtHalfBath: Basement half bathrooms 372 | 373 | FullBath: Full bathrooms above grade 374 | 375 | HalfBath: Half baths above grade 376 | 377 | Bedroom: Bedrooms above grade (does NOT include basement bedrooms) 378 | 379 | Kitchen: Kitchens above grade 380 | 381 | KitchenQual: Kitchen quality 382 | 383 | Ex Excellent 384 | Gd Good 385 | TA Typical/Average 386 | Fa Fair 387 | Po Poor 388 | 389 | TotRmsAbvGrd: Total rooms above grade (does not include bathrooms) 390 | 391 | Functional: Home functionality (Assume typical unless deductions are warranted) 392 | 393 | Typ Typical Functionality 394 | Min1 Minor Deductions 1 395 | Min2 Minor Deductions 2 396 | Mod Moderate Deductions 397 | Maj1 Major Deductions 1 398 | Maj2 Major Deductions 2 399 | Sev Severely Damaged 400 | Sal Salvage only 401 | 402 | Fireplaces: Number of fireplaces 403 | 404 | FireplaceQu: Fireplace quality 405 | 406 | Ex Excellent - Exceptional Masonry Fireplace 407 | Gd Good - Masonry Fireplace in main level 408 | TA Average - Prefabricated Fireplace in main living area or Masonry Fireplace in basement 409 | Fa Fair - Prefabricated Fireplace in basement 410 | Po Poor - Ben Franklin Stove 411 | NA No Fireplace 412 | 413 | GarageType: Garage location 414 | 415 | 2Types More than one type of garage 416 | Attchd Attached to home 417 | Basment Basement Garage 418 | BuiltIn Built-In (Garage part of house - typically has room above garage) 419 | CarPort Car Port 420 | Detchd Detached from home 421 | NA No Garage 422 | 423 | GarageYrBlt: Year garage was built 424 | 425 | GarageFinish: Interior finish of the garage 426 | 427 | Fin Finished 428 | RFn Rough Finished 429 | Unf Unfinished 430 | NA No Garage 431 | 432 | GarageCars: Size of garage in car capacity 433 | 434 | GarageArea: Size of garage in square feet 435 | 436 | GarageQual: Garage quality 437 | 438 | Ex Excellent 439 | Gd Good 440 | TA Typical/Average 441 | Fa Fair 442 | Po Poor 443 | NA No Garage 444 | 445 | GarageCond: Garage condition 446 | 447 | Ex Excellent 448 | Gd Good 449 | TA Typical/Average 450 | Fa Fair 451 | Po Poor 452 | NA No Garage 453 | 454 | PavedDrive: Paved driveway 455 | 456 | Y Paved 457 | P Partial Pavement 458 | N Dirt/Gravel 459 | 460 | WoodDeckSF: Wood deck area in square feet 461 | 462 | OpenPorchSF: Open porch area in square feet 463 | 464 | EnclosedPorch: Enclosed porch area in square feet 465 | 466 | 3SsnPorch: Three season porch area in square feet 467 | 468 | ScreenPorch: Screen porch area in square feet 469 | 470 | PoolArea: Pool area in square feet 471 | 472 | PoolQC: Pool quality 473 | 474 | Ex Excellent 475 | Gd Good 476 | TA Average/Typical 477 | Fa Fair 478 | NA No Pool 479 | 480 | Fence: Fence quality 481 | 482 | GdPrv Good Privacy 483 | MnPrv Minimum Privacy 484 | GdWo Good Wood 485 | MnWw Minimum Wood/Wire 486 | NA No Fence 487 | 488 | MiscFeature: Miscellaneous feature not covered in other categories 489 | 490 | Elev Elevator 491 | Gar2 2nd Garage (if not described in garage section) 492 | Othr Other 493 | Shed Shed (over 100 SF) 494 | TenC Tennis Court 495 | NA None 496 | 497 | MiscVal: $Value of miscellaneous feature 498 | 499 | MoSold: Month Sold (MM) 500 | 501 | YrSold: Year Sold (YYYY) 502 | 503 | SaleType: Type of sale 504 | 505 | WD Warranty Deed - Conventional 506 | CWD Warranty Deed - Cash 507 | VWD Warranty Deed - VA Loan 508 | New Home just constructed and sold 509 | COD Court Officer Deed/Estate 510 | Con Contract 15% Down payment regular terms 511 | ConLw Contract Low Down payment and low interest 512 | ConLI Contract Low Interest 513 | ConLD Contract Low Down 514 | Oth Other 515 | 516 | SaleCondition: Condition of sale 517 | 518 | Normal Normal Sale 519 | Abnorml Abnormal Sale - trade, foreclosure, short sale 520 | AdjLand Adjoining Land Purchase 521 | Alloca Allocation - two linked properties with separate deeds, typically condo with a garage unit 522 | Family Sale between family members 523 | Partial Home was not completed when last assessed (associated with New Homes) 524 | -------------------------------------------------------------------------------- /99_Project_Data/sample_submission.csv: -------------------------------------------------------------------------------- 1 | Id,SalePrice 2 | 1461,169277.0524984 3 | 1462,187758.393988768 4 | 1463,183583.683569555 5 | 1464,179317.47751083 6 | 1465,150730.079976501 7 | 1466,177150.989247307 8 | 1467,172070.659229164 9 | 1468,175110.956519547 10 | 1469,162011.698831665 11 | 1470,160726.247831419 12 | 1471,157933.279456005 13 | 1472,145291.245020389 14 | 1473,159672.017631819 15 | 1474,164167.518301885 16 | 1475,150891.638244053 17 | 1476,179460.96518734 18 | 1477,185034.62891405 19 | 1478,182352.192644656 20 | 1479,183053.458213802 21 | 1480,187823.339254278 22 | 1481,186544.114327568 23 | 1482,158230.77520516 24 | 1483,190552.829321091 25 | 1484,147183.67487199 26 | 1485,185855.300905493 27 | 1486,174350.470676986 28 | 1487,201740.620690863 29 | 1488,162986.378895754 30 | 1489,162330.199085679 31 | 1490,165845.938616539 32 | 1491,180929.622876974 33 | 1492,163481.501519718 34 | 1493,187798.076714233 35 | 1494,198822.198942566 36 | 1495,194868.409899858 37 | 1496,152605.298564403 38 | 1497,147797.702836811 39 | 1498,150521.96899297 40 | 1499,146991.630153739 41 | 1500,150306.307814534 42 | 1501,151164.372534604 43 | 1502,151133.706960953 44 | 1503,156214.042540726 45 | 1504,171992.760735142 46 | 1505,173214.912549738 47 | 1506,192429.187345783 48 | 1507,190878.69508543 49 | 1508,194542.544135519 50 | 1509,191849.439072822 51 | 1510,176363.773907793 52 | 1511,176954.185412429 53 | 1512,176521.216975696 54 | 1513,179436.704810176 55 | 1514,220079.756777048 56 | 1515,175502.918109444 57 | 1516,188321.073833569 58 | 1517,163276.324450004 59 | 1518,185911.366293097 60 | 1519,171392.830997252 61 | 1520,174418.207020775 62 | 1521,179682.709603774 63 | 1522,179423.751581665 64 | 1523,171756.918091777 65 | 1524,166849.638174419 66 | 1525,181122.168676666 67 | 1526,170934.462746566 68 | 1527,159738.292580329 69 | 1528,174445.759557658 70 | 1529,174706.363659627 71 | 1530,164507.672539365 72 | 1531,163602.512172832 73 | 1532,154126.270249525 74 | 1533,171104.853481351 75 | 1534,167735.39270528 76 | 1535,183003.613338104 77 | 1536,172580.381161499 78 | 1537,165407.889104689 79 | 1538,176363.773907793 80 | 1539,175182.950898522 81 | 1540,190757.177789246 82 | 1541,167186.995771991 83 | 1542,167839.376779276 84 | 1543,173912.421165137 85 | 1544,154034.917445551 86 | 1545,156002.955794336 87 | 1546,168173.94329857 88 | 1547,168882.437104132 89 | 1548,168173.94329857 90 | 1549,157580.177551642 91 | 1550,181922.15256011 92 | 1551,155134.227842592 93 | 1552,188885.573319552 94 | 1553,183963.193012381 95 | 1554,161298.762306335 96 | 1555,188613.66763056 97 | 1556,175080.111822945 98 | 1557,174744.400305232 99 | 1558,168175.911336919 100 | 1559,182333.472575006 101 | 1560,158307.206742274 102 | 1561,193053.055502348 103 | 1562,175031.089987177 104 | 1563,160713.294602908 105 | 1564,173186.215014436 106 | 1565,191736.7598055 107 | 1566,170401.630997116 108 | 1567,164626.577880222 109 | 1568,205469.409444832 110 | 1569,209561.784211885 111 | 1570,182271.503072356 112 | 1571,178081.549427793 113 | 1572,178425.956138831 114 | 1573,162015.318511503 115 | 1574,181722.420373045 116 | 1575,156705.730169433 117 | 1576,182902.420342386 118 | 1577,157574.595395085 119 | 1578,184380.739100813 120 | 1579,169364.469225677 121 | 1580,175846.179822063 122 | 1581,189673.295302136 123 | 1582,174401.317715566 124 | 1583,179021.448718583 125 | 1584,189196.845337149 126 | 1585,139647.095720655 127 | 1586,161468.198288911 128 | 1587,171557.32317862 129 | 1588,179447.36804185 130 | 1589,169611.619017694 131 | 1590,172088.872655744 132 | 1591,171190.624128768 133 | 1592,154850.508361878 134 | 1593,158617.655719941 135 | 1594,209258.33693701 136 | 1595,177939.027626751 137 | 1596,194631.100299584 138 | 1597,213618.871562568 139 | 1598,198342.504228533 140 | 1599,138607.971472497 141 | 1600,150778.958976731 142 | 1601,146966.230339786 143 | 1602,162182.59620952 144 | 1603,176825.940961269 145 | 1604,152799.812402444 146 | 1605,180322.322067129 147 | 1606,177508.027228367 148 | 1607,208029.642652019 149 | 1608,181987.282510201 150 | 1609,160172.72797397 151 | 1610,176761.317654248 152 | 1611,176515.497545231 153 | 1612,176270.453065471 154 | 1613,183050.846258475 155 | 1614,150011.102062216 156 | 1615,159270.537808667 157 | 1616,163419.663729346 158 | 1617,163399.983345859 159 | 1618,173364.161505756 160 | 1619,169556.835902417 161 | 1620,183690.595995738 162 | 1621,176980.914909382 163 | 1622,204773.36222471 164 | 1623,174728.655998442 165 | 1624,181873.458244461 166 | 1625,177322.000823979 167 | 1626,193927.939041863 168 | 1627,181715.622732304 169 | 1628,199270.841200324 170 | 1629,177109.589956218 171 | 1630,153909.578271486 172 | 1631,162931.203336223 173 | 1632,166386.7567182 174 | 1633,173719.30379824 175 | 1634,179757.925656704 176 | 1635,179007.601964376 177 | 1636,180370.808623106 178 | 1637,185102.616730563 179 | 1638,198825.563452058 180 | 1639,184294.576009142 181 | 1640,200443.7920562 182 | 1641,181294.784484153 183 | 1642,174354.336267919 184 | 1643,172023.677781517 185 | 1644,181666.922855025 186 | 1645,179024.491269586 187 | 1646,178324.191575907 188 | 1647,184534.676687694 189 | 1648,159397.250378784 190 | 1649,178430.966728182 191 | 1650,177743.799385967 192 | 1651,179395.305519087 193 | 1652,151713.38474815 194 | 1653,151713.38474815 195 | 1654,168434.977996215 196 | 1655,153999.100311019 197 | 1656,164096.097354123 198 | 1657,166335.403036551 199 | 1658,163020.725375757 200 | 1659,155862.510668829 201 | 1660,182760.651095509 202 | 1661,201912.270622883 203 | 1662,185988.233987516 204 | 1663,183778.44888032 205 | 1664,170935.85921771 206 | 1665,184468.908382254 207 | 1666,191569.089663229 208 | 1667,232991.025583822 209 | 1668,180980.721388278 210 | 1669,164279.13048219 211 | 1670,183859.460411109 212 | 1671,185922.465682076 213 | 1672,191742.778119363 214 | 1673,199954.072465842 215 | 1674,180690.274752587 216 | 1675,163099.3096358 217 | 1676,140791.922472443 218 | 1677,166481.86647592 219 | 1678,172080.434496773 220 | 1679,191719.161659178 221 | 1680,160741.098612515 222 | 1681,157829.546854733 223 | 1682,196896.748596341 224 | 1683,159675.423990355 225 | 1684,182084.790901946 226 | 1685,179233.926374487 227 | 1686,155774.270901623 228 | 1687,181354.326716058 229 | 1688,179605.563663918 230 | 1689,181609.34866147 231 | 1690,178221.531623281 232 | 1691,175559.920735795 233 | 1692,200328.822792041 234 | 1693,178630.060559899 235 | 1694,177174.535221728 236 | 1695,172515.687368714 237 | 1696,204032.992922943 238 | 1697,176023.232787689 239 | 1698,202202.073341595 240 | 1699,181734.480075862 241 | 1700,183982.158993126 242 | 1701,188007.94241481 243 | 1702,185922.966763517 244 | 1703,183978.544874918 245 | 1704,177199.618638821 246 | 1705,181878.647956764 247 | 1706,173622.088728263 248 | 1707,180728.168562655 249 | 1708,176477.026606328 250 | 1709,184282.266697609 251 | 1710,162062.47538448 252 | 1711,182550.070992189 253 | 1712,180987.949624695 254 | 1713,178173.79762147 255 | 1714,179980.635948606 256 | 1715,173257.637826205 257 | 1716,177271.291059307 258 | 1717,175338.355442312 259 | 1718,177548.140549508 260 | 1719,175969.91662932 261 | 1720,175011.481953462 262 | 1721,185199.372568143 263 | 1722,188514.050228937 264 | 1723,185080.145268797 265 | 1724,157304.402574096 266 | 1725,194260.859481297 267 | 1726,181262.329995106 268 | 1727,157003.292706732 269 | 1728,182924.499359899 270 | 1729,181902.586375439 271 | 1730,188985.371708134 272 | 1731,185290.904495068 273 | 1732,177304.425752748 274 | 1733,166274.900490809 275 | 1734,177807.420530107 276 | 1735,180330.624816201 277 | 1736,179069.112234629 278 | 1737,175943.371816948 279 | 1738,185199.050609653 280 | 1739,167350.910824524 281 | 1740,149315.311876449 282 | 1741,139010.847766793 283 | 1742,155412.151845447 284 | 1743,171308.313985441 285 | 1744,176220.543265638 286 | 1745,177643.434991809 287 | 1746,187222.653264601 288 | 1747,185635.132083154 289 | 1748,206492.534215854 290 | 1749,181681.021081956 291 | 1750,180500.198072685 292 | 1751,206486.17086841 293 | 1752,161334.301195429 294 | 1753,176156.558313965 295 | 1754,191642.223478994 296 | 1755,191945.808027777 297 | 1756,164146.306037354 298 | 1757,179883.057071096 299 | 1758,178071.137668844 300 | 1759,188241.637896875 301 | 1760,174559.656173171 302 | 1761,182347.363042264 303 | 1762,191507.251872857 304 | 1763,199751.865597358 305 | 1764,162106.416145131 306 | 1765,164575.982314367 307 | 1766,179176.352180931 308 | 1767,177327.403857584 309 | 1768,177818.083761781 310 | 1769,186965.204048443 311 | 1770,178762.742169197 312 | 1771,183322.866146283 313 | 1772,178903.295931891 314 | 1773,186570.129421778 315 | 1774,199144.242829024 316 | 1775,172154.713310956 317 | 1776,177444.019201603 318 | 1777,166200.938073485 319 | 1778,158995.770555632 320 | 1779,168273.282454755 321 | 1780,189680.453052788 322 | 1781,181681.021081956 323 | 1782,160277.142643643 324 | 1783,197318.54715833 325 | 1784,162228.935604196 326 | 1785,187340.455456083 327 | 1786,181065.347037275 328 | 1787,190233.609102705 329 | 1788,157929.594852031 330 | 1789,168557.001935469 331 | 1790,160805.584645628 332 | 1791,221648.391978216 333 | 1792,180539.88079815 334 | 1793,182105.616283853 335 | 1794,166380.852603154 336 | 1795,178942.155617426 337 | 1796,162804.747800461 338 | 1797,183077.684392615 339 | 1798,171728.4720292 340 | 1799,164786.741540638 341 | 1800,177427.267170302 342 | 1801,197318.54715833 343 | 1802,178658.114178223 344 | 1803,185437.320523764 345 | 1804,169759.652489529 346 | 1805,173986.635055186 347 | 1806,168607.664289468 348 | 1807,194138.519145183 349 | 1808,192502.440921994 350 | 1809,176746.969818601 351 | 1810,177604.891703134 352 | 1811,193283.746584832 353 | 1812,181627.061006609 354 | 1813,169071.62025834 355 | 1814,167398.006470987 356 | 1815,150106.505141704 357 | 1816,159650.304285848 358 | 1817,179471.23597476 359 | 1818,177109.589956218 360 | 1819,166558.113328453 361 | 1820,153796.714319583 362 | 1821,174520.152570658 363 | 1822,196297.95829524 364 | 1823,169100.681601175 365 | 1824,176911.319164431 366 | 1825,169234.6454828 367 | 1826,172386.297919134 368 | 1827,156031.904802362 369 | 1828,168202.892306596 370 | 1829,166505.984017547 371 | 1830,176507.37022149 372 | 1831,180116.752553161 373 | 1832,183072.740591406 374 | 1833,189595.964677698 375 | 1834,167523.919076265 376 | 1835,210817.775863413 377 | 1836,172942.930813351 378 | 1837,145286.278144089 379 | 1838,176468.653371492 380 | 1839,159040.069562187 381 | 1840,178518.204332507 382 | 1841,169163.980786825 383 | 1842,189786.685274579 384 | 1843,181246.728523853 385 | 1844,176349.927153587 386 | 1845,205266.631009142 387 | 1846,187397.993362224 388 | 1847,208943.427726113 389 | 1848,165014.532907657 390 | 1849,182492.037566236 391 | 1850,161718.71259042 392 | 1851,180084.118941162 393 | 1852,178534.950802179 394 | 1853,151217.259961305 395 | 1854,156342.717587562 396 | 1855,188511.443835239 397 | 1856,183570.337896789 398 | 1857,225810.160292177 399 | 1858,214217.401131694 400 | 1859,187665.64101603 401 | 1860,161157.177744039 402 | 1861,187643.992594193 403 | 1862,228156.372839158 404 | 1863,220449.534665317 405 | 1864,220522.352084222 406 | 1865,156647.763531624 407 | 1866,187388.833374873 408 | 1867,178640.723791573 409 | 1868,180847.216739049 410 | 1869,159505.170529478 411 | 1870,164305.538020654 412 | 1871,180181.19673723 413 | 1872,184602.734989972 414 | 1873,193440.372174434 415 | 1874,184199.788209911 416 | 1875,196241.892907637 417 | 1876,175588.618271096 418 | 1877,179503.046546829 419 | 1878,183658.076582555 420 | 1879,193700.976276404 421 | 1880,165399.62450704 422 | 1881,186847.944787446 423 | 1882,198127.73287817 424 | 1883,183320.898107934 425 | 1884,181613.606696657 426 | 1885,178298.791761954 427 | 1886,185733.534000593 428 | 1887,180008.188485489 429 | 1888,175127.59621604 430 | 1889,183467.176862723 431 | 1890,182705.546021743 432 | 1891,152324.943593181 433 | 1892,169878.515981342 434 | 1893,183735.975076576 435 | 1894,224118.280105941 436 | 1895,169355.202465146 437 | 1896,180054.276407441 438 | 1897,174081.601977368 439 | 1898,168494.985022146 440 | 1899,181871.598843299 441 | 1900,173554.489658383 442 | 1901,169805.382165577 443 | 1902,176192.990728755 444 | 1903,204264.39284654 445 | 1904,169630.906956928 446 | 1905,185724.838807268 447 | 1906,195699.036281861 448 | 1907,189494.276162169 449 | 1908,149607.905673439 450 | 1909,154650.199045978 451 | 1910,151579.558140433 452 | 1911,185147.380531144 453 | 1912,196314.53120359 454 | 1913,210802.395364155 455 | 1914,166271.2863726 456 | 1915,154865.359142973 457 | 1916,173575.5052865 458 | 1917,179399.563554274 459 | 1918,164280.776562049 460 | 1919,171247.48948121 461 | 1920,166878.587182445 462 | 1921,188129.459710994 463 | 1922,183517.34369691 464 | 1923,175522.026925727 465 | 1924,190060.105331152 466 | 1925,174179.824771856 467 | 1926,171059.523675194 468 | 1927,183004.186769318 469 | 1928,183601.647387418 470 | 1929,163539.327185998 471 | 1930,164677.676391525 472 | 1931,162395.073865424 473 | 1932,182207.6323195 474 | 1933,192223.939790304 475 | 1934,176391.829390125 476 | 1935,181913.179121348 477 | 1936,179136.097888261 478 | 1937,196595.568243212 479 | 1938,194822.365690957 480 | 1939,148356.669440918 481 | 1940,160387.604263899 482 | 1941,181276.500571809 483 | 1942,192474.817899346 484 | 1943,157699.907796437 485 | 1944,215785.540813051 486 | 1945,181824.300998793 487 | 1946,221813.00948166 488 | 1947,165281.292597397 489 | 1948,255629.49047034 490 | 1949,173154.590990955 491 | 1950,183884.65246539 492 | 1951,200210.353608489 493 | 1952,186599.221265342 494 | 1953,192718.532696106 495 | 1954,178628.665952764 496 | 1955,180650.342418406 497 | 1956,206003.107947263 498 | 1957,166457.67844853 499 | 1958,202916.221653487 500 | 1959,192463.969983091 501 | 1960,171775.497189898 502 | 1961,175249.222149411 503 | 1962,147086.59893993 504 | 1963,149709.672100371 505 | 1964,171411.404533743 506 | 1965,178188.964799425 507 | 1966,156491.711373235 508 | 1967,180953.241201168 509 | 1968,203909.759061135 510 | 1969,175470.149087545 511 | 1970,205578.333622415 512 | 1971,199428.857699441 513 | 1972,187599.163869476 514 | 1973,192265.198109864 515 | 1974,196666.554897677 516 | 1975,155537.862252682 517 | 1976,169543.240620935 518 | 1977,202487.010170501 519 | 1978,208232.716273485 520 | 1979,173621.195202569 521 | 1980,172414.608571812 522 | 1981,164400.75641556 523 | 1982,160480.424024781 524 | 1983,156060.853810389 525 | 1984,157437.192820581 526 | 1985,158163.720929772 527 | 1986,154849.043268978 528 | 1987,152186.609341561 529 | 1988,180340.215399228 530 | 1989,178344.62451356 531 | 1990,190170.382266827 532 | 1991,168092.975480832 533 | 1992,178757.912566805 534 | 1993,174518.256882082 535 | 1994,198168.490116289 536 | 1995,176882.693978902 537 | 1996,183801.672896251 538 | 1997,196400.046680661 539 | 1998,172281.605004025 540 | 1999,196380.366297173 541 | 2000,198228.354306682 542 | 2001,195556.581268962 543 | 2002,186453.264469043 544 | 2003,181869.381196234 545 | 2004,175610.840124147 546 | 2005,183438.730800145 547 | 2006,179584.488673295 548 | 2007,182386.152242034 549 | 2008,160750.367237054 550 | 2009,182477.505046008 551 | 2010,187720.359207171 552 | 2011,187201.942081511 553 | 2012,176385.102235149 554 | 2013,175901.787841278 555 | 2014,182584.280198283 556 | 2015,195664.686104237 557 | 2016,181420.346494222 558 | 2017,176676.04995228 559 | 2018,181594.678867334 560 | 2019,178521.747964951 561 | 2020,175895.883726231 562 | 2021,168468.005916477 563 | 2022,200973.129447888 564 | 2023,197030.641992202 565 | 2024,192867.417844592 566 | 2025,196449.247639381 567 | 2026,141684.196398607 568 | 2027,153353.334123901 569 | 2028,151143.549016705 570 | 2029,163753.087114229 571 | 2030,158682.460013921 572 | 2031,144959.835250915 573 | 2032,160144.390548579 574 | 2033,156286.534303521 575 | 2034,165726.707619571 576 | 2035,182427.481047359 577 | 2036,173310.56154032 578 | 2037,173310.56154032 579 | 2038,151556.01403002 580 | 2039,158908.146068683 581 | 2040,209834.383092536 582 | 2041,192410.516550815 583 | 2042,174026.247294886 584 | 2043,195499.830115336 585 | 2044,200918.018812493 586 | 2045,207243.616023976 587 | 2046,196149.783851876 588 | 2047,192097.914850217 589 | 2048,178570.948923671 590 | 2049,228617.968325428 591 | 2050,199929.884438451 592 | 2051,160206.365612859 593 | 2052,179854.431885567 594 | 2053,185987.340461822 595 | 2054,161122.505607926 596 | 2055,175949.342720138 597 | 2056,183683.590595324 598 | 2057,176401.34762338 599 | 2058,205832.532527897 600 | 2059,177799.799849436 601 | 2060,167565.362080406 602 | 2061,186348.958436557 603 | 2062,179782.759465081 604 | 2063,169837.623333323 605 | 2064,178817.275675758 606 | 2065,174444.479149339 607 | 2066,192834.968917174 608 | 2067,196564.717984981 609 | 2068,206977.567039357 610 | 2069,157054.253944128 611 | 2070,175142.948078577 612 | 2071,159932.1643654 613 | 2072,182801.408333628 614 | 2073,181510.375176825 615 | 2074,181613.035129451 616 | 2075,186920.512597635 617 | 2076,157950.170625222 618 | 2077,176115.159022876 619 | 2078,182744.514344465 620 | 2079,180660.683691591 621 | 2080,160775.629777099 622 | 2081,186711.715848082 623 | 2082,223581.758190888 624 | 2083,172330.943236652 625 | 2084,163474.633393212 626 | 2085,175308.263299874 627 | 2086,187462.725306432 628 | 2087,180655.101535034 629 | 2088,152121.98603454 630 | 2089,159856.233909727 631 | 2090,186559.854936737 632 | 2091,183962.550959411 633 | 2092,162107.168699296 634 | 2093,162582.288981283 635 | 2094,154407.701597409 636 | 2095,181625.666399474 637 | 2096,164810.609473548 638 | 2097,176429.401241704 639 | 2098,179188.089925259 640 | 2099,145997.635377703 641 | 2100,218676.768270367 642 | 2101,188323.861214226 643 | 2102,168690.0722914 644 | 2103,165088.746797705 645 | 2104,191435.007885166 646 | 2105,168864.404664512 647 | 2106,176041.882371574 648 | 2107,215911.674390325 649 | 2108,167388.238629016 650 | 2109,163854.786753017 651 | 2110,163299.477980171 652 | 2111,178298.214633119 653 | 2112,176376.586164775 654 | 2113,170211.043976522 655 | 2114,170818.344786366 656 | 2115,174388.867432503 657 | 2116,161112.987374671 658 | 2117,172179.082325307 659 | 2118,157798.309713876 660 | 2119,169106.151422924 661 | 2120,170129.531364292 662 | 2121,157680.227412949 663 | 2122,162690.209131977 664 | 2123,146968.379365095 665 | 2124,181507.721372455 666 | 2125,191215.589752983 667 | 2126,189432.689844522 668 | 2127,207271.484957719 669 | 2128,170030.807488363 670 | 2129,148409.806476335 671 | 2130,193850.613979055 672 | 2131,193808.319298263 673 | 2132,166300.235380627 674 | 2133,163474.633393212 675 | 2134,177473.606564978 676 | 2135,157443.925537187 677 | 2136,180681.007992057 678 | 2137,183463.17030026 679 | 2138,182481.763081195 680 | 2139,193717.15117887 681 | 2140,182782.55099007 682 | 2141,175530.651633287 683 | 2142,177804.057884623 684 | 2143,159448.670848577 685 | 2144,181338.976717529 686 | 2145,178553.558537021 687 | 2146,162820.928264556 688 | 2147,188832.479997186 689 | 2148,164682.185899437 690 | 2149,181549.735943801 691 | 2150,199158.097008868 692 | 2151,152889.520990566 693 | 2152,181150.551679116 694 | 2153,181416.732376013 695 | 2154,164391.238182305 696 | 2155,185421.046498812 697 | 2156,193981.327550004 698 | 2157,178824.324789223 699 | 2158,209270.051606246 700 | 2159,177801.266806344 701 | 2160,179053.762236101 702 | 2161,178762.170601992 703 | 2162,184655.300458183 704 | 2163,191284.655779772 705 | 2164,179598.085818785 706 | 2165,167517.628078595 707 | 2166,182873.903794044 708 | 2167,177484.91371363 709 | 2168,188444.597319524 710 | 2169,179184.153848562 711 | 2170,184365.175780982 712 | 2171,184479.322005212 713 | 2172,182927.863869391 714 | 2173,178611.639373646 715 | 2174,181943.343613558 716 | 2175,175080.614768394 717 | 2176,190720.794649138 718 | 2177,198422.868144723 719 | 2178,184482.11308349 720 | 2179,139214.952187861 721 | 2180,169233.113601757 722 | 2181,180664.118686848 723 | 2182,178818.742632666 724 | 2183,180422.049969947 725 | 2184,178601.93645581 726 | 2185,183083.159775993 727 | 2186,173163.101499699 728 | 2187,185968.161159774 729 | 2188,171226.050683054 730 | 2189,281643.976116786 731 | 2190,160031.711281258 732 | 2191,162775.979779394 733 | 2192,160735.445970193 734 | 2193,166646.109048572 735 | 2194,188384.548444549 736 | 2195,165830.697255197 737 | 2196,182138.358533039 738 | 2197,171595.397975647 739 | 2198,160337.079183809 740 | 2199,191215.088671543 741 | 2200,166956.093232213 742 | 2201,186581.830878692 743 | 2202,176450.548582099 744 | 2203,193743.194909801 745 | 2204,198882.566078408 746 | 2205,176385.102235149 747 | 2206,162447.639333636 748 | 2207,193782.555676777 749 | 2208,183653.890897141 750 | 2209,210578.623546866 751 | 2210,158527.164107319 752 | 2211,163081.025723456 753 | 2212,174388.867432503 754 | 2213,191905.870131966 755 | 2214,174388.867432503 756 | 2215,161642.711648983 757 | 2216,186939.507215101 758 | 2217,172482.165792649 759 | 2218,159695.999763546 760 | 2219,157230.369671007 761 | 2220,179188.089925259 762 | 2221,157972.82120994 763 | 2222,156804.951429181 764 | 2223,211491.972463654 765 | 2224,186537.246201062 766 | 2225,200468.161070551 767 | 2226,182241.340444154 768 | 2227,157342.225898399 769 | 2228,182022.387105998 770 | 2229,181244.510876788 771 | 2230,178556.671573788 772 | 2231,189547.199876284 773 | 2232,187948.65165563 774 | 2233,194107.287565956 775 | 2234,183521.710369283 776 | 2235,183682.123638416 777 | 2236,178483.353073443 778 | 2237,184003.879764736 779 | 2238,171318.59033449 780 | 2239,162039.754313997 781 | 2240,154846.252190699 782 | 2241,194822.365690957 783 | 2242,169788.738771463 784 | 2243,178891.554489941 785 | 2244,152084.772428865 786 | 2245,139169.86642879 787 | 2246,192439.536044606 788 | 2247,161067.859766557 789 | 2248,158762.648504781 790 | 2249,175569.690441774 791 | 2250,183659.795012187 792 | 2251,280618.132617258 793 | 2252,180051.809151659 794 | 2253,176519.18031559 795 | 2254,179028.429210291 796 | 2255,177161.583857224 797 | 2256,180081.508849842 798 | 2257,205895.254584712 799 | 2258,183389.78131415 800 | 2259,178543.647859512 801 | 2260,194798.320499104 802 | 2261,162845.613675766 803 | 2262,148103.867006579 804 | 2263,201016.171121215 805 | 2264,277936.12694354 806 | 2265,249768.279823405 807 | 2266,161596.052159825 808 | 2267,158011.114889899 809 | 2268,194089.683858004 810 | 2269,181733.336941451 811 | 2270,182852.32772198 812 | 2271,189893.003058465 813 | 2272,194650.210979875 814 | 2273,187904.461286262 815 | 2274,171774.925622692 816 | 2275,177998.685921479 817 | 2276,175648.484325498 818 | 2277,196918.071362067 819 | 2278,184299.838071218 820 | 2279,182379.855682734 821 | 2280,184050.725802482 822 | 2281,158296.975970284 823 | 2282,175053.355553278 824 | 2283,162293.376090644 825 | 2284,186328.880047186 826 | 2285,151422.116936538 827 | 2286,181969.358707768 828 | 2287,189122.67702416 829 | 2288,185645.475220346 830 | 2289,182829.898109257 831 | 2290,195848.788183328 832 | 2291,198785.059550672 833 | 2292,181676.126555428 834 | 2293,194131.012663328 835 | 2294,201416.004864508 836 | 2295,185096.577205616 837 | 2296,195158.972598372 838 | 2297,184795.783735112 839 | 2298,189168.263864671 840 | 2299,216855.260149095 841 | 2300,184946.642483576 842 | 2301,189317.51282069 843 | 2302,180803.277842406 844 | 2303,175061.18585763 845 | 2304,179074.839090732 846 | 2305,145708.764336107 847 | 2306,142398.022752011 848 | 2307,161474.534863641 849 | 2308,157025.945155458 850 | 2309,163424.037827357 851 | 2310,164692.778645345 852 | 2311,152163.2443541 853 | 2312,192383.215486656 854 | 2313,182520.230322476 855 | 2314,187254.507549722 856 | 2315,176489.659740359 857 | 2316,181520.466841293 858 | 2317,186414.978214721 859 | 2318,185197.764639705 860 | 2319,178657.794083741 861 | 2320,179731.198023759 862 | 2321,161748.271317074 863 | 2322,158608.749069322 864 | 2323,178807.370559878 865 | 2324,184187.158803897 866 | 2325,181686.10402108 867 | 2326,190311.050228337 868 | 2327,192252.496354076 869 | 2328,193954.849525775 870 | 2329,181044.201560887 871 | 2330,180258.131219792 872 | 2331,199641.657313834 873 | 2332,197530.775205517 874 | 2333,191777.196949138 875 | 2334,195779.543033588 876 | 2335,202112.046522999 877 | 2336,192343.34807661 878 | 2337,185191.359443218 879 | 2338,186760.207965688 880 | 2339,177733.78193528 881 | 2340,164430.391189608 882 | 2341,185299.601552401 883 | 2342,186414.012339254 884 | 2343,176401.921054593 885 | 2344,182381.322639642 886 | 2345,176334.184710805 887 | 2346,184901.735847457 888 | 2347,180085.766885029 889 | 2348,184901.735847457 890 | 2349,183967.561548763 891 | 2350,193046.301574659 892 | 2351,168538.969495849 893 | 2352,170157.842016969 894 | 2353,196559.709259637 895 | 2354,177133.709361852 896 | 2355,181553.279576244 897 | 2356,185770.606634739 898 | 2357,177017.595099274 899 | 2358,184123.358536806 900 | 2359,165970.357492196 901 | 2360,158151.985049452 902 | 2361,177086.476441481 903 | 2362,196373.896176551 904 | 2363,172465.707083115 905 | 2364,168590.782409896 906 | 2365,158820.474171061 907 | 2366,151611.37057651 908 | 2367,152125.028585543 909 | 2368,158404.073081048 910 | 2369,160692.078640755 911 | 2370,170175.22684199 912 | 2371,169854.436591138 913 | 2372,183410.785819008 914 | 2373,180347.194026928 915 | 2374,178930.528374292 916 | 2375,153346.220086301 917 | 2376,182675.204270589 918 | 2377,180770.649792036 919 | 2378,188714.148087543 920 | 2379,191393.608594076 921 | 2380,174016.157494425 922 | 2381,183189.685319552 923 | 2382,183621.508757866 924 | 2383,168991.29635758 925 | 2384,185306.650665866 926 | 2385,189030.680303208 927 | 2386,179208.665698449 928 | 2387,174901.452792889 929 | 2388,168337.406544343 930 | 2389,158234.96461859 931 | 2390,179562.453368834 932 | 2391,174176.391640607 933 | 2392,173931.531845427 934 | 2393,184111.729429665 935 | 2394,179374.482001188 936 | 2395,207348.811884535 937 | 2396,186983.419339031 938 | 2397,206779.094049527 939 | 2398,177472.074683935 940 | 2399,156727.948324862 941 | 2400,157090.568462479 942 | 2401,160387.032696693 943 | 2402,172410.28005086 944 | 2403,191603.365657467 945 | 2404,182152.207151253 946 | 2405,180161.697340702 947 | 2406,169652.235284283 948 | 2407,182503.520140218 949 | 2408,179714.630677039 950 | 2409,180282.570719908 951 | 2410,192600.338060371 952 | 2411,166115.491248565 953 | 2412,186379.553524443 954 | 2413,184361.992258449 955 | 2414,186220.965458121 956 | 2415,198176.47090687 957 | 2416,168437.776500131 958 | 2417,178003.582312015 959 | 2418,179180.469244588 960 | 2419,191930.561104806 961 | 2420,175590.266214964 962 | 2421,176713.19307219 963 | 2422,180159.090947005 964 | 2423,188090.100808026 965 | 2424,186184.717727913 966 | 2425,223055.588672278 967 | 2426,158270.753116401 968 | 2427,184733.12846644 969 | 2428,199926.378957429 970 | 2429,175075.785166001 971 | 2430,180917.925148076 972 | 2431,182067.760625207 973 | 2432,178238.60191545 974 | 2433,173454.944606532 975 | 2434,176821.936262814 976 | 2435,183642.191304235 977 | 2436,177254.582741058 978 | 2437,168715.950111702 979 | 2438,180096.931198144 980 | 2439,160620.728178758 981 | 2440,175286.544392273 982 | 2441,153494.783276297 983 | 2442,156407.65915545 984 | 2443,162162.525245786 985 | 2444,166809.886827197 986 | 2445,172929.156408918 987 | 2446,193514.330894137 988 | 2447,181612.141603756 989 | 2448,191745.386377068 990 | 2449,171369.325038261 991 | 2450,184425.470567051 992 | 2451,170563.252355189 993 | 2452,184522.369240168 994 | 2453,164968.947931153 995 | 2454,157939.621592364 996 | 2455,151520.381580069 997 | 2456,176129.508722531 998 | 2457,171112.978971478 999 | 2458,169762.081624282 1000 | 2459,162246.828936295 1001 | 2460,171339.303381589 1002 | 2461,189034.753653813 1003 | 2462,175758.873595981 1004 | 2463,163351.721489893 1005 | 2464,189806.546645026 1006 | 2465,175370.990918319 1007 | 2466,196895.599900301 1008 | 2467,176905.917994834 1009 | 2468,176866.557227858 1010 | 2469,163590.677170026 1011 | 2470,212693.502958393 1012 | 2471,192686.931747717 1013 | 2472,181578.684951827 1014 | 2473,166475.457581812 1015 | 2474,185998.255166219 1016 | 2475,185527.714877908 1017 | 2476,159027.118197683 1018 | 2477,181169.654933769 1019 | 2478,176732.915304722 1020 | 2479,191619.294648838 1021 | 2480,189114.303789324 1022 | 2481,180934.635330334 1023 | 2482,164573.372223048 1024 | 2483,173902.011270196 1025 | 2484,165625.127741229 1026 | 2485,179555.219570787 1027 | 2486,196899.720661579 1028 | 2487,207566.12470446 1029 | 2488,163899.981149274 1030 | 2489,189179.428177786 1031 | 2490,193892.880023125 1032 | 2491,178980.874331431 1033 | 2492,179749.876244365 1034 | 2493,197999.674975598 1035 | 2494,203717.470295797 1036 | 2495,185249.261156892 1037 | 2496,201691.208274848 1038 | 2497,181956.548314794 1039 | 2498,171895.936275806 1040 | 2499,187245.168439419 1041 | 2500,157816.77461318 1042 | 2501,191702.912573325 1043 | 2502,198599.420028908 1044 | 2503,187193.313676329 1045 | 2504,220514.993999535 1046 | 2505,181814.527595192 1047 | 2506,183750.755371907 1048 | 2507,183000.431679579 1049 | 2508,185830.971906573 1050 | 2509,185497.872344187 1051 | 2510,179613.437681321 1052 | 2511,164454.967963631 1053 | 2512,185127.237217638 1054 | 2513,178750.613844623 1055 | 2514,160927.61044889 1056 | 2515,192562.808057836 1057 | 2516,180990.24148554 1058 | 2517,180064.941503122 1059 | 2518,196070.997393789 1060 | 2519,180352.919019023 1061 | 2520,183367.953769362 1062 | 2521,176734.841494027 1063 | 2522,180848.220765939 1064 | 2523,187806.059368823 1065 | 2524,180521.52640004 1066 | 2525,181502.754496154 1067 | 2526,174525.87942676 1068 | 2527,188927.984063168 1069 | 2528,184728.870431253 1070 | 2529,179857.975518011 1071 | 2530,180962.868071609 1072 | 2531,179194.066390078 1073 | 2532,179591.789259484 1074 | 2533,180638.463702549 1075 | 2534,185846.215131922 1076 | 2535,195174.031139141 1077 | 2536,192474.56829063 1078 | 2537,164200.595496827 1079 | 2538,178403.094096818 1080 | 2539,170774.84018302 1081 | 2540,179879.945898337 1082 | 2541,177668.192752792 1083 | 2542,180174.328610725 1084 | 2543,170643.303572141 1085 | 2544,165448.004289838 1086 | 2545,195531.754886222 1087 | 2546,165314.177682121 1088 | 2547,172532.757660882 1089 | 2548,203310.218069877 1090 | 2549,175090.062515883 1091 | 2550,230841.338626282 1092 | 2551,155225.19006632 1093 | 2552,168322.342441945 1094 | 2553,165956.259265265 1095 | 2554,193956.817564124 1096 | 2555,171070.367893827 1097 | 2556,166285.243628001 1098 | 2557,182875.801346628 1099 | 2558,218108.536769738 1100 | 2559,174378.777632042 1101 | 2560,164731.316372391 1102 | 2561,156969.695083273 1103 | 2562,173388.854342604 1104 | 2563,177559.628685119 1105 | 2564,194297.789279905 1106 | 2565,174894.588364005 1107 | 2566,196544.144075798 1108 | 2567,179036.158528149 1109 | 2568,211423.986511149 1110 | 2569,208156.398935188 1111 | 2570,159233.941347257 1112 | 2571,210820.115134931 1113 | 2572,140196.10979821 1114 | 2573,198678.469082978 1115 | 2574,186818.610760803 1116 | 2575,175044.797633861 1117 | 2576,180031.162892704 1118 | 2577,176889.171525162 1119 | 2578,159638.856165666 1120 | 2579,154287.264375509 1121 | 2580,191885.618181273 1122 | 2581,177503.378612934 1123 | 2582,166548.31684976 1124 | 2583,164475.14942856 1125 | 2584,167484.744857879 1126 | 2585,188683.160555403 1127 | 2586,162243.399502668 1128 | 2587,180807.213919103 1129 | 2588,176279.079637039 1130 | 2589,163438.959094218 1131 | 2590,161495.5393685 1132 | 2591,216032.303722443 1133 | 2592,176632.181541401 1134 | 2593,168743.001567144 1135 | 2594,183810.11848086 1136 | 2595,156794.36054728 1137 | 2596,169136.43011395 1138 | 2597,183203.318752456 1139 | 2598,213252.926930889 1140 | 2599,190550.327866959 1141 | 2600,234707.209860273 1142 | 2601,135751.318892816 1143 | 2602,164228.45886894 1144 | 2603,153219.437030419 1145 | 2604,164210.746523801 1146 | 2605,163883.229117973 1147 | 2606,154892.776269956 1148 | 2607,197092.08733832 1149 | 2608,228148.376399122 1150 | 2609,178680.587503997 1151 | 2610,165643.341167808 1152 | 2611,222406.642660249 1153 | 2612,184021.843582599 1154 | 2613,170871.094939159 1155 | 2614,189562.873697309 1156 | 2615,170591.884966356 1157 | 2616,172934.351682851 1158 | 2617,186425.069879189 1159 | 2618,218648.131133006 1160 | 2619,183035.606761141 1161 | 2620,178378.906069427 1162 | 2621,184516.716597846 1163 | 2622,181419.5253183 1164 | 2623,196858.923438425 1165 | 2624,189228.701486278 1166 | 2625,208973.380761028 1167 | 2626,180269.86896412 1168 | 2627,159488.713683953 1169 | 2628,191490.299507521 1170 | 2629,228684.245137946 1171 | 2630,201842.998700429 1172 | 2631,209242.82289186 1173 | 2632,202357.62258493 1174 | 2633,168238.61218265 1175 | 2634,202524.12465369 1176 | 2635,170588.771929588 1177 | 2636,198375.31512987 1178 | 2637,170636.827889889 1179 | 2638,181991.079479377 1180 | 2639,183994.54251844 1181 | 2640,182951.482193584 1182 | 2641,174126.297156192 1183 | 2642,170575.496742588 1184 | 2643,175332.239869971 1185 | 2644,167522.061539111 1186 | 2645,168095.583738538 1187 | 2646,154406.415627461 1188 | 2647,170996.973346087 1189 | 2648,159056.890245639 1190 | 2649,181373.6165193 1191 | 2650,152272.560975937 1192 | 2651,168664.346821336 1193 | 2652,211007.008292301 1194 | 2653,182909.515032911 1195 | 2654,203926.829353303 1196 | 2655,179082.825442944 1197 | 2656,206260.099795032 1198 | 2657,181732.443415757 1199 | 2658,189698.740693148 1200 | 2659,203074.34678979 1201 | 2660,201670.634365666 1202 | 2661,173756.812589691 1203 | 2662,181387.076390881 1204 | 2663,184859.155270535 1205 | 2664,158313.615666777 1206 | 2665,151951.955409666 1207 | 2666,162537.52704471 1208 | 2667,178998.337067854 1209 | 2668,186732.584943041 1210 | 2669,187323.318406165 1211 | 2670,199437.232798284 1212 | 2671,185546.680858653 1213 | 2672,161595.015798593 1214 | 2673,154672.422763036 1215 | 2674,159355.710116165 1216 | 2675,155919.014077746 1217 | 2676,182424.87095604 1218 | 2677,178100.589622319 1219 | 2678,202577.900044456 1220 | 2679,177862.778940605 1221 | 2680,182056.024744887 1222 | 2681,191403.199177104 1223 | 2682,196264.754980043 1224 | 2683,209375.003419718 1225 | 2684,196691.81930173 1226 | 2685,192458.431539585 1227 | 2686,182242.80926507 1228 | 2687,183259.503900506 1229 | 2688,188108.243748841 1230 | 2689,171418.640195797 1231 | 2690,194698.882220432 1232 | 2691,174841.84007522 1233 | 2692,172965.476488899 1234 | 2693,189386.323677132 1235 | 2694,185682.618340257 1236 | 2695,176412.012719061 1237 | 2696,174976.489722867 1238 | 2697,180718.581707643 1239 | 2698,186131.188248242 1240 | 2699,165220.786354033 1241 | 2700,164115.893800435 1242 | 2701,182125.729127024 1243 | 2702,182285.140233276 1244 | 2703,196325.442210366 1245 | 2704,164865.215329881 1246 | 2705,182694.492209823 1247 | 2706,185425.485520958 1248 | 2707,171414.7041191 1249 | 2708,183433.472466085 1250 | 2709,176844.981155794 1251 | 2710,180568.187753206 1252 | 2711,185948.625475832 1253 | 2712,189388.291715481 1254 | 2713,142754.489165865 1255 | 2714,156106.800760811 1256 | 2715,155895.397617561 1257 | 2716,159851.977738548 1258 | 2717,185157.832305524 1259 | 2718,180716.291710805 1260 | 2719,176901.093954071 1261 | 2720,181017.222455218 1262 | 2721,183269.159407668 1263 | 2722,193550.830097069 1264 | 2723,170625.842699726 1265 | 2724,182012.405942725 1266 | 2725,179162.507290733 1267 | 2726,183269.159407668 1268 | 2727,180589.836175042 1269 | 2728,181465.935198741 1270 | 2729,196053.029878304 1271 | 2730,183421.020319014 1272 | 2731,167926.839083612 1273 | 2732,168027.530997889 1274 | 2733,182164.26685407 1275 | 2734,172469.071592608 1276 | 2735,181059.374300472 1277 | 2736,182997.570115536 1278 | 2737,166140.504179894 1279 | 2738,198515.546934075 1280 | 2739,193789.648503294 1281 | 2740,173550.025727531 1282 | 2741,176487.943174734 1283 | 2742,188813.302559147 1284 | 2743,178531.911979192 1285 | 2744,182145.731469001 1286 | 2745,179196.465024103 1287 | 2746,169618.349900686 1288 | 2747,170010.168655046 1289 | 2748,181739.671652174 1290 | 2749,172846.934955574 1291 | 2750,195560.8830172 1292 | 2751,180358.114292956 1293 | 2752,211817.702818093 1294 | 2753,176170.128686742 1295 | 2754,234492.248263699 1296 | 2755,182450.956536015 1297 | 2756,174902.068073146 1298 | 2757,173684.174293738 1299 | 2758,147196.673677562 1300 | 2759,175231.189709791 1301 | 2760,193417.64740633 1302 | 2761,183313.601249761 1303 | 2762,180882.250849082 1304 | 2763,186735.697979808 1305 | 2764,172922.865411247 1306 | 2765,202551.677190573 1307 | 2766,190485.634074173 1308 | 2767,173439.49362151 1309 | 2768,196613.598849219 1310 | 2769,178152.259700828 1311 | 2770,174519.904825949 1312 | 2771,172627.796932837 1313 | 2772,173732.689486435 1314 | 2773,209219.844787023 1315 | 2774,181059.374300472 1316 | 2775,188515.443002459 1317 | 2776,182164.26685407 1318 | 2777,188137.901597981 1319 | 2778,158893.54306269 1320 | 2779,189579.65066771 1321 | 2780,165229.803505847 1322 | 2781,162186.071220207 1323 | 2782,166374.879866351 1324 | 2783,161665.184974757 1325 | 2784,175079.328798445 1326 | 2785,203840.874021305 1327 | 2786,152129.078861057 1328 | 2787,181012.141380101 1329 | 2788,161305.53503837 1330 | 2789,203326.392972343 1331 | 2790,168385.571141831 1332 | 2791,183564.365159986 1333 | 2792,163784.619440861 1334 | 2793,171989.192193993 1335 | 2794,180839.95616829 1336 | 2795,170895.923185907 1337 | 2796,174071.054808518 1338 | 2797,259423.859147546 1339 | 2798,188000.824679588 1340 | 2799,179171.703565498 1341 | 2800,171022.241447762 1342 | 2801,174126.297156192 1343 | 2802,187625.573271948 1344 | 2803,199567.946369234 1345 | 2804,205328.078219268 1346 | 2805,166231.535025379 1347 | 2806,154743.91606057 1348 | 2807,159714.537012622 1349 | 2808,185563.069082422 1350 | 2809,171500.796725006 1351 | 2810,180983.443844799 1352 | 2811,183141.236914997 1353 | 2812,178498.634450214 1354 | 2813,224323.710512388 1355 | 2814,218200.642127877 1356 | 2815,182283.177756557 1357 | 2816,190054.639237419 1358 | 2817,160192.453934518 1359 | 2818,171289.393581756 1360 | 2819,151131.098733642 1361 | 2820,181721.458225594 1362 | 2821,172725.053851858 1363 | 2822,222438.699143414 1364 | 2823,235419.373448928 1365 | 2824,185150.926027596 1366 | 2825,184772.239624699 1367 | 2826,180658.216435809 1368 | 2827,209673.316647174 1369 | 2828,205939.810625621 1370 | 2829,165633.573325837 1371 | 2830,186030.317211014 1372 | 2831,160312.319589212 1373 | 2832,190702.440251029 1374 | 2833,175122.810326699 1375 | 2834,183783.13937519 1376 | 2835,178290.666302221 1377 | 2836,181605.343963015 1378 | 2837,187992.451444752 1379 | 2838,188885.11781517 1380 | 2839,189959.344795118 1381 | 2840,179258.619211334 1382 | 2841,181518.750275669 1383 | 2842,193008.659237315 1384 | 2843,186313.89385619 1385 | 2844,181499.39185067 1386 | 2845,174126.297156192 1387 | 2846,183918.612062767 1388 | 2847,184114.270899227 1389 | 2848,158540.947801398 1390 | 2849,197034.759055859 1391 | 2850,185170.284452595 1392 | 2851,221134.533635148 1393 | 2852,184306.637575967 1394 | 2853,199792.302740996 1395 | 2854,143237.803559736 1396 | 2855,177294.838897736 1397 | 2856,182368.620883855 1398 | 2857,176487.943174734 1399 | 2858,183849.408762071 1400 | 2859,184964.141507413 1401 | 2860,196395.969632434 1402 | 2861,188374.936650438 1403 | 2862,176261.296806135 1404 | 2863,163628.142248426 1405 | 2864,180618.032628904 1406 | 2865,161647.329794081 1407 | 2866,167129.598867773 1408 | 2867,174750.988352687 1409 | 2868,177560.202116333 1410 | 2869,192577.796112839 1411 | 2870,199202.898960871 1412 | 2871,182818.156667308 1413 | 2872,148217.262540651 1414 | 2873,188997.797082492 1415 | 2874,185807.928877601 1416 | 2875,177030.477842021 1417 | 2876,175942.474593632 1418 | 2877,172912.518576433 1419 | 2878,198359.248864591 1420 | 2879,184379.133036383 1421 | 2880,194255.566948886 1422 | 2881,209449.651603064 1423 | 2882,169979.323958443 1424 | 2883,188206.281858748 1425 | 2884,186412.438609167 1426 | 2885,196761.386409959 1427 | 2886,208353.269558209 1428 | 2887,166548.067241044 1429 | 2888,175942.474593632 1430 | 2889,166790.457916434 1431 | 2890,160515.850579067 1432 | 2891,192167.621096362 1433 | 2892,178751.551083369 1434 | 2893,198678.894117024 1435 | 2894,164553.120272354 1436 | 2895,156887.932862327 1437 | 2896,164185.777305524 1438 | 2897,212992.120630876 1439 | 2898,197468.550532521 1440 | 2899,180106.84373966 1441 | 2900,183972.071056674 1442 | 2901,245283.198337927 1443 | 2902,170351.963410756 1444 | 2903,195596.307707478 1445 | 2904,189369.756330412 1446 | 2905,223667.404551664 1447 | 2906,169335.310624364 1448 | 2907,167411.02835165 1449 | 2908,187709.555003968 1450 | 2909,196526.002998991 1451 | 2910,137402.569855589 1452 | 2911,165086.775061735 1453 | 2912,188506.431412274 1454 | 2913,172917.456816012 1455 | 2914,166274.325225982 1456 | 2915,167081.220948984 1457 | 2916,164788.778231138 1458 | 2917,219222.423400059 1459 | 2918,184924.279658997 1460 | 2919,187741.866657478 1461 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 3, 29 June 2007 3 | 4 | Copyright (C) 2007 Free Software Foundation, Inc. 5 | Everyone is permitted to copy and distribute verbatim copies 6 | of this license document, but changing it is not allowed. 7 | 8 | Preamble 9 | 10 | The GNU General Public License is a free, copyleft license for 11 | software and other kinds of works. 12 | 13 | The licenses for most software and other practical works are designed 14 | to take away your freedom to share and change the works. By contrast, 15 | the GNU General Public License is intended to guarantee your freedom to 16 | share and change all versions of a program--to make sure it remains free 17 | software for all its users. We, the Free Software Foundation, use the 18 | GNU General Public License for most of our software; it applies also to 19 | any other work released this way by its authors. You can apply it to 20 | your programs, too. 21 | 22 | When we speak of free software, we are referring to freedom, not 23 | price. Our General Public Licenses are designed to make sure that you 24 | have the freedom to distribute copies of free software (and charge for 25 | them if you wish), that you receive source code or can get it if you 26 | want it, that you can change the software or use pieces of it in new 27 | free programs, and that you know you can do these things. 28 | 29 | To protect your rights, we need to prevent others from denying you 30 | these rights or asking you to surrender the rights. Therefore, you have 31 | certain responsibilities if you distribute copies of the software, or if 32 | you modify it: responsibilities to respect the freedom of others. 33 | 34 | For example, if you distribute copies of such a program, whether 35 | gratis or for a fee, you must pass on to the recipients the same 36 | freedoms that you received. You must make sure that they, too, receive 37 | or can get the source code. And you must show them these terms so they 38 | know their rights. 39 | 40 | Developers that use the GNU GPL protect your rights with two steps: 41 | (1) assert copyright on the software, and (2) offer you this License 42 | giving you legal permission to copy, distribute and/or modify it. 43 | 44 | For the developers' and authors' protection, the GPL clearly explains 45 | that there is no warranty for this free software. For both users' and 46 | authors' sake, the GPL requires that modified versions be marked as 47 | changed, so that their problems will not be attributed erroneously to 48 | authors of previous versions. 49 | 50 | Some devices are designed to deny users access to install or run 51 | modified versions of the software inside them, although the manufacturer 52 | can do so. This is fundamentally incompatible with the aim of 53 | protecting users' freedom to change the software. The systematic 54 | pattern of such abuse occurs in the area of products for individuals to 55 | use, which is precisely where it is most unacceptable. Therefore, we 56 | have designed this version of the GPL to prohibit the practice for those 57 | products. If such problems arise substantially in other domains, we 58 | stand ready to extend this provision to those domains in future versions 59 | of the GPL, as needed to protect the freedom of users. 60 | 61 | Finally, every program is threatened constantly by software patents. 62 | States should not allow patents to restrict development and use of 63 | software on general-purpose computers, but in those that do, we wish to 64 | avoid the special danger that patents applied to a free program could 65 | make it effectively proprietary. To prevent this, the GPL assures that 66 | patents cannot be used to render the program non-free. 67 | 68 | The precise terms and conditions for copying, distribution and 69 | modification follow. 70 | 71 | TERMS AND CONDITIONS 72 | 73 | 0. Definitions. 74 | 75 | "This License" refers to version 3 of the GNU General Public License. 76 | 77 | "Copyright" also means copyright-like laws that apply to other kinds of 78 | works, such as semiconductor masks. 79 | 80 | "The Program" refers to any copyrightable work licensed under this 81 | License. Each licensee is addressed as "you". "Licensees" and 82 | "recipients" may be individuals or organizations. 83 | 84 | To "modify" a work means to copy from or adapt all or part of the work 85 | in a fashion requiring copyright permission, other than the making of an 86 | exact copy. The resulting work is called a "modified version" of the 87 | earlier work or a work "based on" the earlier work. 88 | 89 | A "covered work" means either the unmodified Program or a work based 90 | on the Program. 91 | 92 | To "propagate" a work means to do anything with it that, without 93 | permission, would make you directly or secondarily liable for 94 | infringement under applicable copyright law, except executing it on a 95 | computer or modifying a private copy. Propagation includes copying, 96 | distribution (with or without modification), making available to the 97 | public, and in some countries other activities as well. 98 | 99 | To "convey" a work means any kind of propagation that enables other 100 | parties to make or receive copies. Mere interaction with a user through 101 | a computer network, with no transfer of a copy, is not conveying. 102 | 103 | An interactive user interface displays "Appropriate Legal Notices" 104 | to the extent that it includes a convenient and prominently visible 105 | feature that (1) displays an appropriate copyright notice, and (2) 106 | tells the user that there is no warranty for the work (except to the 107 | extent that warranties are provided), that licensees may convey the 108 | work under this License, and how to view a copy of this License. If 109 | the interface presents a list of user commands or options, such as a 110 | menu, a prominent item in the list meets this criterion. 111 | 112 | 1. Source Code. 113 | 114 | The "source code" for a work means the preferred form of the work 115 | for making modifications to it. "Object code" means any non-source 116 | form of a work. 117 | 118 | A "Standard Interface" means an interface that either is an official 119 | standard defined by a recognized standards body, or, in the case of 120 | interfaces specified for a particular programming language, one that 121 | is widely used among developers working in that language. 122 | 123 | The "System Libraries" of an executable work include anything, other 124 | than the work as a whole, that (a) is included in the normal form of 125 | packaging a Major Component, but which is not part of that Major 126 | Component, and (b) serves only to enable use of the work with that 127 | Major Component, or to implement a Standard Interface for which an 128 | implementation is available to the public in source code form. A 129 | "Major Component", in this context, means a major essential component 130 | (kernel, window system, and so on) of the specific operating system 131 | (if any) on which the executable work runs, or a compiler used to 132 | produce the work, or an object code interpreter used to run it. 133 | 134 | The "Corresponding Source" for a work in object code form means all 135 | the source code needed to generate, install, and (for an executable 136 | work) run the object code and to modify the work, including scripts to 137 | control those activities. However, it does not include the work's 138 | System Libraries, or general-purpose tools or generally available free 139 | programs which are used unmodified in performing those activities but 140 | which are not part of the work. For example, Corresponding Source 141 | includes interface definition files associated with source files for 142 | the work, and the source code for shared libraries and dynamically 143 | linked subprograms that the work is specifically designed to require, 144 | such as by intimate data communication or control flow between those 145 | subprograms and other parts of the work. 146 | 147 | The Corresponding Source need not include anything that users 148 | can regenerate automatically from other parts of the Corresponding 149 | Source. 150 | 151 | The Corresponding Source for a work in source code form is that 152 | same work. 153 | 154 | 2. Basic Permissions. 155 | 156 | All rights granted under this License are granted for the term of 157 | copyright on the Program, and are irrevocable provided the stated 158 | conditions are met. This License explicitly affirms your unlimited 159 | permission to run the unmodified Program. The output from running a 160 | covered work is covered by this License only if the output, given its 161 | content, constitutes a covered work. This License acknowledges your 162 | rights of fair use or other equivalent, as provided by copyright law. 163 | 164 | You may make, run and propagate covered works that you do not 165 | convey, without conditions so long as your license otherwise remains 166 | in force. You may convey covered works to others for the sole purpose 167 | of having them make modifications exclusively for you, or provide you 168 | with facilities for running those works, provided that you comply with 169 | the terms of this License in conveying all material for which you do 170 | not control copyright. Those thus making or running the covered works 171 | for you must do so exclusively on your behalf, under your direction 172 | and control, on terms that prohibit them from making any copies of 173 | your copyrighted material outside their relationship with you. 174 | 175 | Conveying under any other circumstances is permitted solely under 176 | the conditions stated below. Sublicensing is not allowed; section 10 177 | makes it unnecessary. 178 | 179 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law. 180 | 181 | No covered work shall be deemed part of an effective technological 182 | measure under any applicable law fulfilling obligations under article 183 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or 184 | similar laws prohibiting or restricting circumvention of such 185 | measures. 186 | 187 | When you convey a covered work, you waive any legal power to forbid 188 | circumvention of technological measures to the extent such circumvention 189 | is effected by exercising rights under this License with respect to 190 | the covered work, and you disclaim any intention to limit operation or 191 | modification of the work as a means of enforcing, against the work's 192 | users, your or third parties' legal rights to forbid circumvention of 193 | technological measures. 194 | 195 | 4. Conveying Verbatim Copies. 196 | 197 | You may convey verbatim copies of the Program's source code as you 198 | receive it, in any medium, provided that you conspicuously and 199 | appropriately publish on each copy an appropriate copyright notice; 200 | keep intact all notices stating that this License and any 201 | non-permissive terms added in accord with section 7 apply to the code; 202 | keep intact all notices of the absence of any warranty; and give all 203 | recipients a copy of this License along with the Program. 204 | 205 | You may charge any price or no price for each copy that you convey, 206 | and you may offer support or warranty protection for a fee. 207 | 208 | 5. Conveying Modified Source Versions. 209 | 210 | You may convey a work based on the Program, or the modifications to 211 | produce it from the Program, in the form of source code under the 212 | terms of section 4, provided that you also meet all of these conditions: 213 | 214 | a) The work must carry prominent notices stating that you modified 215 | it, and giving a relevant date. 216 | 217 | b) The work must carry prominent notices stating that it is 218 | released under this License and any conditions added under section 219 | 7. This requirement modifies the requirement in section 4 to 220 | "keep intact all notices". 221 | 222 | c) You must license the entire work, as a whole, under this 223 | License to anyone who comes into possession of a copy. This 224 | License will therefore apply, along with any applicable section 7 225 | additional terms, to the whole of the work, and all its parts, 226 | regardless of how they are packaged. This License gives no 227 | permission to license the work in any other way, but it does not 228 | invalidate such permission if you have separately received it. 229 | 230 | d) If the work has interactive user interfaces, each must display 231 | Appropriate Legal Notices; however, if the Program has interactive 232 | interfaces that do not display Appropriate Legal Notices, your 233 | work need not make them do so. 234 | 235 | A compilation of a covered work with other separate and independent 236 | works, which are not by their nature extensions of the covered work, 237 | and which are not combined with it such as to form a larger program, 238 | in or on a volume of a storage or distribution medium, is called an 239 | "aggregate" if the compilation and its resulting copyright are not 240 | used to limit the access or legal rights of the compilation's users 241 | beyond what the individual works permit. Inclusion of a covered work 242 | in an aggregate does not cause this License to apply to the other 243 | parts of the aggregate. 244 | 245 | 6. Conveying Non-Source Forms. 246 | 247 | You may convey a covered work in object code form under the terms 248 | of sections 4 and 5, provided that you also convey the 249 | machine-readable Corresponding Source under the terms of this License, 250 | in one of these ways: 251 | 252 | a) Convey the object code in, or embodied in, a physical product 253 | (including a physical distribution medium), accompanied by the 254 | Corresponding Source fixed on a durable physical medium 255 | customarily used for software interchange. 256 | 257 | b) Convey the object code in, or embodied in, a physical product 258 | (including a physical distribution medium), accompanied by a 259 | written offer, valid for at least three years and valid for as 260 | long as you offer spare parts or customer support for that product 261 | model, to give anyone who possesses the object code either (1) a 262 | copy of the Corresponding Source for all the software in the 263 | product that is covered by this License, on a durable physical 264 | medium customarily used for software interchange, for a price no 265 | more than your reasonable cost of physically performing this 266 | conveying of source, or (2) access to copy the 267 | Corresponding Source from a network server at no charge. 268 | 269 | c) Convey individual copies of the object code with a copy of the 270 | written offer to provide the Corresponding Source. This 271 | alternative is allowed only occasionally and noncommercially, and 272 | only if you received the object code with such an offer, in accord 273 | with subsection 6b. 274 | 275 | d) Convey the object code by offering access from a designated 276 | place (gratis or for a charge), and offer equivalent access to the 277 | Corresponding Source in the same way through the same place at no 278 | further charge. You need not require recipients to copy the 279 | Corresponding Source along with the object code. If the place to 280 | copy the object code is a network server, the Corresponding Source 281 | may be on a different server (operated by you or a third party) 282 | that supports equivalent copying facilities, provided you maintain 283 | clear directions next to the object code saying where to find the 284 | Corresponding Source. Regardless of what server hosts the 285 | Corresponding Source, you remain obligated to ensure that it is 286 | available for as long as needed to satisfy these requirements. 287 | 288 | e) Convey the object code using peer-to-peer transmission, provided 289 | you inform other peers where the object code and Corresponding 290 | Source of the work are being offered to the general public at no 291 | charge under subsection 6d. 292 | 293 | A separable portion of the object code, whose source code is excluded 294 | from the Corresponding Source as a System Library, need not be 295 | included in conveying the object code work. 296 | 297 | A "User Product" is either (1) a "consumer product", which means any 298 | tangible personal property which is normally used for personal, family, 299 | or household purposes, or (2) anything designed or sold for incorporation 300 | into a dwelling. In determining whether a product is a consumer product, 301 | doubtful cases shall be resolved in favor of coverage. For a particular 302 | product received by a particular user, "normally used" refers to a 303 | typical or common use of that class of product, regardless of the status 304 | of the particular user or of the way in which the particular user 305 | actually uses, or expects or is expected to use, the product. A product 306 | is a consumer product regardless of whether the product has substantial 307 | commercial, industrial or non-consumer uses, unless such uses represent 308 | the only significant mode of use of the product. 309 | 310 | "Installation Information" for a User Product means any methods, 311 | procedures, authorization keys, or other information required to install 312 | and execute modified versions of a covered work in that User Product from 313 | a modified version of its Corresponding Source. The information must 314 | suffice to ensure that the continued functioning of the modified object 315 | code is in no case prevented or interfered with solely because 316 | modification has been made. 317 | 318 | If you convey an object code work under this section in, or with, or 319 | specifically for use in, a User Product, and the conveying occurs as 320 | part of a transaction in which the right of possession and use of the 321 | User Product is transferred to the recipient in perpetuity or for a 322 | fixed term (regardless of how the transaction is characterized), the 323 | Corresponding Source conveyed under this section must be accompanied 324 | by the Installation Information. But this requirement does not apply 325 | if neither you nor any third party retains the ability to install 326 | modified object code on the User Product (for example, the work has 327 | been installed in ROM). 328 | 329 | The requirement to provide Installation Information does not include a 330 | requirement to continue to provide support service, warranty, or updates 331 | for a work that has been modified or installed by the recipient, or for 332 | the User Product in which it has been modified or installed. Access to a 333 | network may be denied when the modification itself materially and 334 | adversely affects the operation of the network or violates the rules and 335 | protocols for communication across the network. 336 | 337 | Corresponding Source conveyed, and Installation Information provided, 338 | in accord with this section must be in a format that is publicly 339 | documented (and with an implementation available to the public in 340 | source code form), and must require no special password or key for 341 | unpacking, reading or copying. 342 | 343 | 7. Additional Terms. 344 | 345 | "Additional permissions" are terms that supplement the terms of this 346 | License by making exceptions from one or more of its conditions. 347 | Additional permissions that are applicable to the entire Program shall 348 | be treated as though they were included in this License, to the extent 349 | that they are valid under applicable law. If additional permissions 350 | apply only to part of the Program, that part may be used separately 351 | under those permissions, but the entire Program remains governed by 352 | this License without regard to the additional permissions. 353 | 354 | When you convey a copy of a covered work, you may at your option 355 | remove any additional permissions from that copy, or from any part of 356 | it. (Additional permissions may be written to require their own 357 | removal in certain cases when you modify the work.) You may place 358 | additional permissions on material, added by you to a covered work, 359 | for which you have or can give appropriate copyright permission. 360 | 361 | Notwithstanding any other provision of this License, for material you 362 | add to a covered work, you may (if authorized by the copyright holders of 363 | that material) supplement the terms of this License with terms: 364 | 365 | a) Disclaiming warranty or limiting liability differently from the 366 | terms of sections 15 and 16 of this License; or 367 | 368 | b) Requiring preservation of specified reasonable legal notices or 369 | author attributions in that material or in the Appropriate Legal 370 | Notices displayed by works containing it; or 371 | 372 | c) Prohibiting misrepresentation of the origin of that material, or 373 | requiring that modified versions of such material be marked in 374 | reasonable ways as different from the original version; or 375 | 376 | d) Limiting the use for publicity purposes of names of licensors or 377 | authors of the material; or 378 | 379 | e) Declining to grant rights under trademark law for use of some 380 | trade names, trademarks, or service marks; or 381 | 382 | f) Requiring indemnification of licensors and authors of that 383 | material by anyone who conveys the material (or modified versions of 384 | it) with contractual assumptions of liability to the recipient, for 385 | any liability that these contractual assumptions directly impose on 386 | those licensors and authors. 387 | 388 | All other non-permissive additional terms are considered "further 389 | restrictions" within the meaning of section 10. If the Program as you 390 | received it, or any part of it, contains a notice stating that it is 391 | governed by this License along with a term that is a further 392 | restriction, you may remove that term. If a license document contains 393 | a further restriction but permits relicensing or conveying under this 394 | License, you may add to a covered work material governed by the terms 395 | of that license document, provided that the further restriction does 396 | not survive such relicensing or conveying. 397 | 398 | If you add terms to a covered work in accord with this section, you 399 | must place, in the relevant source files, a statement of the 400 | additional terms that apply to those files, or a notice indicating 401 | where to find the applicable terms. 402 | 403 | Additional terms, permissive or non-permissive, may be stated in the 404 | form of a separately written license, or stated as exceptions; 405 | the above requirements apply either way. 406 | 407 | 8. Termination. 408 | 409 | You may not propagate or modify a covered work except as expressly 410 | provided under this License. Any attempt otherwise to propagate or 411 | modify it is void, and will automatically terminate your rights under 412 | this License (including any patent licenses granted under the third 413 | paragraph of section 11). 414 | 415 | However, if you cease all violation of this License, then your 416 | license from a particular copyright holder is reinstated (a) 417 | provisionally, unless and until the copyright holder explicitly and 418 | finally terminates your license, and (b) permanently, if the copyright 419 | holder fails to notify you of the violation by some reasonable means 420 | prior to 60 days after the cessation. 421 | 422 | Moreover, your license from a particular copyright holder is 423 | reinstated permanently if the copyright holder notifies you of the 424 | violation by some reasonable means, this is the first time you have 425 | received notice of violation of this License (for any work) from that 426 | copyright holder, and you cure the violation prior to 30 days after 427 | your receipt of the notice. 428 | 429 | Termination of your rights under this section does not terminate the 430 | licenses of parties who have received copies or rights from you under 431 | this License. If your rights have been terminated and not permanently 432 | reinstated, you do not qualify to receive new licenses for the same 433 | material under section 10. 434 | 435 | 9. Acceptance Not Required for Having Copies. 436 | 437 | You are not required to accept this License in order to receive or 438 | run a copy of the Program. Ancillary propagation of a covered work 439 | occurring solely as a consequence of using peer-to-peer transmission 440 | to receive a copy likewise does not require acceptance. However, 441 | nothing other than this License grants you permission to propagate or 442 | modify any covered work. These actions infringe copyright if you do 443 | not accept this License. Therefore, by modifying or propagating a 444 | covered work, you indicate your acceptance of this License to do so. 445 | 446 | 10. Automatic Licensing of Downstream Recipients. 447 | 448 | Each time you convey a covered work, the recipient automatically 449 | receives a license from the original licensors, to run, modify and 450 | propagate that work, subject to this License. You are not responsible 451 | for enforcing compliance by third parties with this License. 452 | 453 | An "entity transaction" is a transaction transferring control of an 454 | organization, or substantially all assets of one, or subdividing an 455 | organization, or merging organizations. If propagation of a covered 456 | work results from an entity transaction, each party to that 457 | transaction who receives a copy of the work also receives whatever 458 | licenses to the work the party's predecessor in interest had or could 459 | give under the previous paragraph, plus a right to possession of the 460 | Corresponding Source of the work from the predecessor in interest, if 461 | the predecessor has it or can get it with reasonable efforts. 462 | 463 | You may not impose any further restrictions on the exercise of the 464 | rights granted or affirmed under this License. For example, you may 465 | not impose a license fee, royalty, or other charge for exercise of 466 | rights granted under this License, and you may not initiate litigation 467 | (including a cross-claim or counterclaim in a lawsuit) alleging that 468 | any patent claim is infringed by making, using, selling, offering for 469 | sale, or importing the Program or any portion of it. 470 | 471 | 11. Patents. 472 | 473 | A "contributor" is a copyright holder who authorizes use under this 474 | License of the Program or a work on which the Program is based. The 475 | work thus licensed is called the contributor's "contributor version". 476 | 477 | A contributor's "essential patent claims" are all patent claims 478 | owned or controlled by the contributor, whether already acquired or 479 | hereafter acquired, that would be infringed by some manner, permitted 480 | by this License, of making, using, or selling its contributor version, 481 | but do not include claims that would be infringed only as a 482 | consequence of further modification of the contributor version. For 483 | purposes of this definition, "control" includes the right to grant 484 | patent sublicenses in a manner consistent with the requirements of 485 | this License. 486 | 487 | Each contributor grants you a non-exclusive, worldwide, royalty-free 488 | patent license under the contributor's essential patent claims, to 489 | make, use, sell, offer for sale, import and otherwise run, modify and 490 | propagate the contents of its contributor version. 491 | 492 | In the following three paragraphs, a "patent license" is any express 493 | agreement or commitment, however denominated, not to enforce a patent 494 | (such as an express permission to practice a patent or covenant not to 495 | sue for patent infringement). To "grant" such a patent license to a 496 | party means to make such an agreement or commitment not to enforce a 497 | patent against the party. 498 | 499 | If you convey a covered work, knowingly relying on a patent license, 500 | and the Corresponding Source of the work is not available for anyone 501 | to copy, free of charge and under the terms of this License, through a 502 | publicly available network server or other readily accessible means, 503 | then you must either (1) cause the Corresponding Source to be so 504 | available, or (2) arrange to deprive yourself of the benefit of the 505 | patent license for this particular work, or (3) arrange, in a manner 506 | consistent with the requirements of this License, to extend the patent 507 | license to downstream recipients. "Knowingly relying" means you have 508 | actual knowledge that, but for the patent license, your conveying the 509 | covered work in a country, or your recipient's use of the covered work 510 | in a country, would infringe one or more identifiable patents in that 511 | country that you have reason to believe are valid. 512 | 513 | If, pursuant to or in connection with a single transaction or 514 | arrangement, you convey, or propagate by procuring conveyance of, a 515 | covered work, and grant a patent license to some of the parties 516 | receiving the covered work authorizing them to use, propagate, modify 517 | or convey a specific copy of the covered work, then the patent license 518 | you grant is automatically extended to all recipients of the covered 519 | work and works based on it. 520 | 521 | A patent license is "discriminatory" if it does not include within 522 | the scope of its coverage, prohibits the exercise of, or is 523 | conditioned on the non-exercise of one or more of the rights that are 524 | specifically granted under this License. You may not convey a covered 525 | work if you are a party to an arrangement with a third party that is 526 | in the business of distributing software, under which you make payment 527 | to the third party based on the extent of your activity of conveying 528 | the work, and under which the third party grants, to any of the 529 | parties who would receive the covered work from you, a discriminatory 530 | patent license (a) in connection with copies of the covered work 531 | conveyed by you (or copies made from those copies), or (b) primarily 532 | for and in connection with specific products or compilations that 533 | contain the covered work, unless you entered into that arrangement, 534 | or that patent license was granted, prior to 28 March 2007. 535 | 536 | Nothing in this License shall be construed as excluding or limiting 537 | any implied license or other defenses to infringement that may 538 | otherwise be available to you under applicable patent law. 539 | 540 | 12. No Surrender of Others' Freedom. 541 | 542 | If conditions are imposed on you (whether by court order, agreement or 543 | otherwise) that contradict the conditions of this License, they do not 544 | excuse you from the conditions of this License. If you cannot convey a 545 | covered work so as to satisfy simultaneously your obligations under this 546 | License and any other pertinent obligations, then as a consequence you may 547 | not convey it at all. For example, if you agree to terms that obligate you 548 | to collect a royalty for further conveying from those to whom you convey 549 | the Program, the only way you could satisfy both those terms and this 550 | License would be to refrain entirely from conveying the Program. 551 | 552 | 13. Use with the GNU Affero General Public License. 553 | 554 | Notwithstanding any other provision of this License, you have 555 | permission to link or combine any covered work with a work licensed 556 | under version 3 of the GNU Affero General Public License into a single 557 | combined work, and to convey the resulting work. The terms of this 558 | License will continue to apply to the part which is the covered work, 559 | but the special requirements of the GNU Affero General Public License, 560 | section 13, concerning interaction through a network will apply to the 561 | combination as such. 562 | 563 | 14. Revised Versions of this License. 564 | 565 | The Free Software Foundation may publish revised and/or new versions of 566 | the GNU General Public License from time to time. Such new versions will 567 | be similar in spirit to the present version, but may differ in detail to 568 | address new problems or concerns. 569 | 570 | Each version is given a distinguishing version number. If the 571 | Program specifies that a certain numbered version of the GNU General 572 | Public License "or any later version" applies to it, you have the 573 | option of following the terms and conditions either of that numbered 574 | version or of any later version published by the Free Software 575 | Foundation. If the Program does not specify a version number of the 576 | GNU General Public License, you may choose any version ever published 577 | by the Free Software Foundation. 578 | 579 | If the Program specifies that a proxy can decide which future 580 | versions of the GNU General Public License can be used, that proxy's 581 | public statement of acceptance of a version permanently authorizes you 582 | to choose that version for the Program. 583 | 584 | Later license versions may give you additional or different 585 | permissions. However, no additional obligations are imposed on any 586 | author or copyright holder as a result of your choosing to follow a 587 | later version. 588 | 589 | 15. Disclaimer of Warranty. 590 | 591 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY 592 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT 593 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY 594 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, 595 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 596 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM 597 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF 598 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 599 | 600 | 16. Limitation of Liability. 601 | 602 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 603 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS 604 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY 605 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE 606 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF 607 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD 608 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), 609 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF 610 | SUCH DAMAGES. 611 | 612 | 17. Interpretation of Sections 15 and 16. 613 | 614 | If the disclaimer of warranty and limitation of liability provided 615 | above cannot be given local legal effect according to their terms, 616 | reviewing courts shall apply local law that most closely approximates 617 | an absolute waiver of all civil liability in connection with the 618 | Program, unless a warranty or assumption of liability accompanies a 619 | copy of the Program in return for a fee. 620 | 621 | END OF TERMS AND CONDITIONS 622 | 623 | How to Apply These Terms to Your New Programs 624 | 625 | If you develop a new program, and you want it to be of the greatest 626 | possible use to the public, the best way to achieve this is to make it 627 | free software which everyone can redistribute and change under these terms. 628 | 629 | To do so, attach the following notices to the program. It is safest 630 | to attach them to the start of each source file to most effectively 631 | state the exclusion of warranty; and each file should have at least 632 | the "copyright" line and a pointer to where the full notice is found. 633 | 634 | 635 | Copyright (C) 636 | 637 | This program is free software: you can redistribute it and/or modify 638 | it under the terms of the GNU General Public License as published by 639 | the Free Software Foundation, either version 3 of the License, or 640 | (at your option) any later version. 641 | 642 | This program is distributed in the hope that it will be useful, 643 | but WITHOUT ANY WARRANTY; without even the implied warranty of 644 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 645 | GNU General Public License for more details. 646 | 647 | You should have received a copy of the GNU General Public License 648 | along with this program. If not, see . 649 | 650 | Also add information on how to contact you by electronic and paper mail. 651 | 652 | If the program does terminal interaction, make it output a short 653 | notice like this when it starts in an interactive mode: 654 | 655 | Copyright (C) 656 | This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 657 | This is free software, and you are welcome to redistribute it 658 | under certain conditions; type `show c' for details. 659 | 660 | The hypothetical commands `show w' and `show c' should show the appropriate 661 | parts of the General Public License. Of course, your program's commands 662 | might be different; for a GUI interface, you would use an "about box". 663 | 664 | You should also get your employer (if you work as a programmer) or school, 665 | if any, to sign a "copyright disclaimer" for the program, if necessary. 666 | For more information on this, and how to apply and follow the GNU GPL, see 667 | . 668 | 669 | The GNU General Public License does not permit incorporating your program 670 | into proprietary programs. If your program is a subroutine library, you 671 | may consider it more useful to permit linking proprietary applications with 672 | the library. If this is what you want to do, use the GNU Lesser General 673 | Public License instead of this License. But first, please read 674 | . 675 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # The Machine Learning Pipeline 2 | ## Thom Ives and Ghaith Sankari 3 | 4 | Hi Family Students. This repo holds the files to support our class work. 5 | 6 | 0. Be sure to do weekly pulls on [Jonathan Papworth's Class Repository](https://github.com/jonathan-pap/ML_Pipeline) that gives overviews of each class meeting and provides links to the recorded class meeting videos. Thanks Jonathan! 7 | 1. The code and notes to support work for each phase of the class are in directories with a number at the front of the directory name to indicate the suggested order. 8 | 2. You will learn some basic git. 9 | 3. If you are on Windows, you will want to install Git for Windows. 10 | * [Git For Windows](https://git-scm.com/download/win) 11 | 4. After git is installed, you will want to use the ```git bash``` terminal for our work. 12 | * Once you see how simple and elegant git usage from the git bash shell is, feel free to play around with tools that help you use git from within VS Code. 13 | * I suggest installing an SSH key. [You can use this guide](https://docs.github.com/en/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent) 14 | 5. To clone our course repo from git bash using SSH: 15 | * At your git bash prompt ```git clone git@github.com:ThomIves/Machine_Learning_Pipeline.git``` 16 | * Change your directory in your git bash terminal to ```Machine_Learning_Pipeline``` and you will see the course directories for our work. 17 | * Each time you come back to the clone of our course directory on your local machine, open git bash in the directory and run ```git pull origin main```. This will update the course directory with the latest updates. 18 | 4. Check this main README.md file for updates and notices too. If there are any changes in this file, you will see them after running ```git pull origin main```. 19 | -------------------------------------------------------------------------------- /fake_data_regression.csv: -------------------------------------------------------------------------------- 1 | 0.0, 0.0, 2.468858576563204 2 | 0.03333333333333333, 0.01, 0.4800871919597739 3 | 0.06666666666666667, 0.02, 0.08325031169436925 4 | 0.1, 0.03, 1.262496794253305 5 | 0.13333333333333333, 0.04, 2.98172253925706 6 | 0.16666666666666666, 0.05, -0.027616969113925638 7 | 0.2, 0.06, 3.609117866382124 8 | 0.23333333333333334, 0.07, 4.186836972957566 9 | 0.26666666666666666, 0.08, 1.5160452454000009 10 | 0.3, 0.09, 2.4092711156949744 11 | 0.3333333333333333, 0.1, 1.9633795820408917 12 | 0.36666666666666664, 0.11, 4.97140686339408 13 | 0.4, 0.12, 3.934807275207195 14 | 0.43333333333333335, 0.13, 1.6135655242710012 15 | 0.4666666666666667, 0.14, 4.065760964524048 16 | 0.5, 0.15, 3.3524195579706624 17 | 0.5333333333333333, 0.16, 3.40232755165227 18 | 0.5666666666666667, 0.17, 4.034528652175615 19 | 0.6, 0.18, 2.344321367505024 20 | 0.6333333333333333, 0.19, 3.39579556081208 21 | 0.6666666666666666, 0.2, 5.084580298261906 22 | 0.7, 0.21, 2.7007413749038562 23 | 0.7333333333333333, 0.22, 3.0421708549627384 24 | 0.7666666666666667, 0.23, 5.3311751782302474 25 | 0.8, 0.24, 4.9540969144526805 26 | 0.8333333333333334, 0.25, 3.7648935459557658 27 | 0.8666666666666667, 0.26, 4.324480599844799 28 | 0.9, 0.27, 3.2791036500695547 29 | 0.9333333333333333, 0.28, 7.24335218112109 30 | 0.9666666666666667, 0.29, 5.955360011199314 31 | 1.0, 0.3, 4.573683966535964 32 | 1.0333333333333334, 0.31, 6.914800320306284 33 | 1.0666666666666667, 0.32, 7.554377787843999 34 | 1.1, 0.33, 4.0222188719962535 35 | 1.1333333333333333, 0.34, 5.913718160824625 36 | 1.1666666666666667, 0.35, 7.964220940906597 37 | 1.2, 0.36, 7.2137969984255506 38 | 1.2333333333333334, 0.37, 4.984102097161264 39 | 1.2666666666666666, 0.38, 6.568139201810167 40 | 1.3, 0.39, 5.734927782491625 41 | 1.3333333333333333, 0.4, 8.474897554399835 42 | 1.3666666666666667, 0.41, 8.90728459916165 43 | 1.4, 0.42, 9.50201615471068 44 | 1.4333333333333333, 0.43, 6.054656820356171 45 | 1.4666666666666666, 0.44, 8.387015958628066 46 | 1.5, 0.45, 9.420557361923088 47 | 1.5333333333333334, 0.46, 8.031961886320492 48 | 1.5666666666666667, 0.47, 7.4078986298529585 49 | 1.6, 0.48, 9.70096170949884 50 | 1.6333333333333333, 0.49, 9.83820841708447 51 | 1.6666666666666667, 0.5, 8.226003187628828 52 | 1.7, 0.51, 7.27555439825638 53 | 1.7333333333333334, 0.52, 10.122801780577095 54 | 1.7666666666666666, 0.53, 7.699740736226889 55 | 1.8, 0.54, 10.515252586008373 56 | 1.8333333333333333, 0.55, 9.281985936173298 57 | 1.8666666666666667, 0.56, 10.954720042360364 58 | 1.9, 0.57, 11.220329737298771 59 | 1.9333333333333333, 0.58, 11.391371188899118 60 | 1.9666666666666666, 0.59, 7.46942354915234 61 | 2.0, 0.6, 7.992779509063281 62 | 2.033333333333333, 0.61, 11.855171076693193 63 | 2.066666666666667, 0.62, 9.526892570594194 64 | 2.1, 0.63, 12.75242076951211 65 | 2.1333333333333333, 0.64, 8.425419374429985 66 | 2.1666666666666665, 0.65, 12.022138170221563 67 | 2.2, 0.66, 8.4505948535573 68 | 2.2333333333333334, 0.67, 11.717324963633052 69 | 2.2666666666666666, 0.68, 11.137212283209212 70 | 2.3, 0.69, 12.328407922796508 71 | 2.3333333333333335, 0.7, 12.541377447589865 72 | 2.3666666666666667, 0.71, 12.913801375743748 73 | 2.4, 0.72, 11.16645412350682 74 | 2.433333333333333, 0.73, 13.614361872001005 75 | 2.466666666666667, 0.74, 11.81435512025726 76 | 2.5, 0.75, 13.631968258653458 77 | 2.533333333333333, 0.76, 9.796805279800612 78 | 2.566666666666667, 0.77, 14.258226327823454 79 | 2.6, 0.78, 14.127487609073293 80 | 2.6333333333333333, 0.79, 10.704722086100881 81 | 2.6666666666666665, 0.8, 11.099605269716616 82 | 2.7, 0.81, 13.960214133325467 83 | 2.7333333333333334, 0.82, 15.391044699449589 84 | 2.7666666666666666, 0.83, 14.812093663490607 85 | 2.8, 0.84, 12.215610686194076 86 | 2.8333333333333335, 0.85, 14.525966235885749 87 | 2.8666666666666667, 0.86, 12.625097195822388 88 | 2.9, 0.87, 12.222018133085648 89 | 2.933333333333333, 0.88, 15.426991911490349 90 | 2.966666666666667, 0.89, 16.596665076152547 91 | 3.0, 0.9, 13.794824019050866 92 | 3.033333333333333, 0.91, 14.245448487599504 93 | 3.066666666666667, 0.92, 13.926858394198362 94 | 3.1, 0.93, 14.8483556402877 95 | 3.1333333333333333, 0.94, 12.955854199451341 96 | 3.1666666666666665, 0.95, 15.783392266205478 97 | 3.2, 0.96, 16.60027824698411 98 | 3.2333333333333334, 0.97, 13.626478182756653 99 | 3.2666666666666666, 0.98, 16.376799437538285 100 | 3.3, 0.99, 17.48900323675798 101 | 3.3333333333333335, 1.0, 16.004860916294593 102 | 3.3666666666666667, 1.01, 15.537408816658429 103 | 3.4, 1.02, 16.639500012602536 104 | 3.433333333333333, 1.03, 18.15075229961191 105 | 3.466666666666667, 1.04, 15.28139489352665 106 | 3.5, 1.05, 14.573191982146586 107 | 3.533333333333333, 1.06, 14.57964154702006 108 | 3.566666666666667, 1.07, 18.91656466625683 109 | 3.6, 1.08, 16.471286951493465 110 | 3.6333333333333333, 1.09, 15.4931938850218 111 | 3.6666666666666665, 1.1, 19.481009477029932 112 | 3.7, 1.11, 17.802570134745352 113 | 3.7333333333333334, 1.12, 17.96040972348619 114 | 3.7666666666666666, 1.13, 19.07813188454791 115 | 3.8, 1.14, 20.521597714183233 116 | 3.8333333333333335, 1.15, 16.212409800690267 117 | 3.8666666666666667, 1.16, 19.821492946691244 118 | 3.9, 1.17, 20.626757224581038 119 | 3.933333333333333, 1.18, 19.732882207052985 120 | 3.966666666666667, 1.19, 21.107647110324557 121 | 4.0, 1.2, 18.119770937155252 122 | 4.033333333333333, 1.21, 20.521431265825854 123 | 4.066666666666666, 1.22, 21.809594906928975 124 | 4.1, 1.23, 19.71587567810945 125 | 4.133333333333334, 1.24, 20.528153463902257 126 | 4.166666666666667, 1.25, 22.797021184329186 127 | 4.2, 1.26, 19.270703588951562 128 | 4.233333333333333, 1.27, 21.022355164484726 129 | 4.266666666666667, 1.28, 19.651571103688564 130 | 4.3, 1.29, 22.101033638927134 131 | 4.333333333333333, 1.3, 22.03882217264935 132 | 4.366666666666666, 1.31, 20.84143799443292 133 | 4.4, 1.32, 19.726830941915086 134 | 4.433333333333334, 1.33, 23.718880615292413 135 | 4.466666666666667, 1.34, 20.387099968062042 136 | 4.5, 1.35, 22.43411678648336 137 | 4.533333333333333, 1.36, 24.3055522611618 138 | 4.566666666666666, 1.37, 20.47509520429452 139 | 4.6, 1.38, 22.938329497380092 140 | 4.633333333333334, 1.39, 21.35256682926028 141 | 4.666666666666667, 1.4, 23.228934832837528 142 | 4.7, 1.41, 24.116938341942603 143 | 4.733333333333333, 1.42, 24.19198973270069 144 | 4.766666666666667, 1.43, 22.491617750206775 145 | 4.8, 1.44, 25.528289741364876 146 | 4.833333333333333, 1.45, 26.163115792084596 147 | 4.866666666666666, 1.46, 25.479034957754802 148 | 4.9, 1.47, 24.32238442769911 149 | 4.933333333333334, 1.48, 26.293688516626087 150 | 4.966666666666667, 1.49, 22.694886803160855 151 | 5.0, 1.5, 23.17581310749623 152 | 5.033333333333333, 1.51, 23.475091054794667 153 | 5.066666666666666, 1.52, 25.34047250197681 154 | 5.1, 1.53, 28.130951000064925 155 | 5.133333333333334, 1.54, 27.767091204236145 156 | 5.166666666666667, 1.55, 24.255000686612476 157 | 5.2, 1.56, 29.067304190282265 158 | 5.233333333333333, 1.57, 26.657192361668283 159 | 5.266666666666667, 1.58, 29.255375936510383 160 | 5.3, 1.59, 26.18764943247052 161 | 5.333333333333333, 1.6, 27.355174790050114 162 | 5.366666666666666, 1.61, 27.63277878555842 163 | 5.4, 1.62, 27.620146081113738 164 | 5.433333333333334, 1.63, 30.644982747884356 165 | 5.466666666666667, 1.64, 26.101517578219354 166 | 5.5, 1.65, 28.167556636866486 167 | 5.533333333333333, 1.66, 31.21379573573291 168 | 5.566666666666666, 1.67, 30.561506403045122 169 | 5.6, 1.68, 28.121228888987687 170 | 5.633333333333334, 1.69, 31.48649210796544 171 | 5.666666666666667, 1.7, 31.474749387580438 172 | 5.7, 1.71, 31.19559289645484 173 | 5.733333333333333, 1.72, 32.60399278901901 174 | 5.766666666666667, 1.73, 28.149867910259474 175 | 5.8, 1.74, 28.499910186963753 176 | 5.833333333333333, 1.75, 30.78739975802399 177 | 5.866666666666666, 1.76, 32.29527372552886 178 | 5.9, 1.77, 30.506440974128097 179 | 5.933333333333334, 1.78, 32.862108195164694 180 | 5.966666666666667, 1.79, 34.32012549347884 181 | 6.0, 1.8, 30.412811040767888 182 | 6.033333333333333, 1.81, 30.855344969103804 183 | 6.066666666666666, 1.82, 31.155018300338877 184 | 6.1, 1.83, 34.57332294757524 185 | 6.133333333333334, 1.84, 35.48236044960549 186 | 6.166666666666667, 1.85, 31.292379637016978 187 | 6.2, 1.86, 33.22291644957002 188 | 6.233333333333333, 1.87, 33.559727069271844 189 | 6.266666666666667, 1.88, 35.744042559724704 190 | 6.3, 1.89, 36.31849009775553 191 | 6.333333333333333, 1.9, 32.247609993965476 192 | 6.366666666666666, 1.91, 36.69645979756852 193 | 6.4, 1.92, 35.58869991569407 194 | 6.433333333333334, 1.93, 36.872203339723754 195 | 6.466666666666667, 1.94, 34.17538284347557 196 | 6.5, 1.95, 33.88226366107863 197 | 6.533333333333333, 1.96, 38.075803446050585 198 | 6.566666666666666, 1.97, 35.74493718420581 199 | 6.6, 1.98, 35.30283837847277 200 | 6.633333333333334, 1.99, 34.730652076053104 201 | 6.666666666666667, 2.0, 39.19576948510403 202 | 6.7, 2.01, 34.93157708420626 203 | 6.733333333333333, 2.02, 36.001365395533846 204 | 6.766666666666667, 2.03, 40.10305518614833 205 | 6.8, 2.04, 37.604780782099766 206 | 6.833333333333333, 2.05, 35.86334171162984 207 | 6.866666666666666, 2.06, 36.516331160024606 208 | 6.9, 2.07, 37.43103764006763 209 | 6.933333333333334, 2.08, 40.617287594364015 210 | 6.966666666666667, 2.09, 40.28891519227408 211 | 7.0, 2.1, 39.97514321106326 212 | 7.033333333333333, 2.11, 42.29144926430656 213 | 7.066666666666666, 2.12, 40.79047538944818 214 | 7.1, 2.13, 40.53504536473122 215 | 7.133333333333334, 2.14, 42.66357630373584 216 | 7.166666666666667, 2.15, 42.06579971796315 217 | 7.2, 2.16, 39.18652939287295 218 | 7.233333333333333, 2.17, 40.57358687591279 219 | 7.266666666666667, 2.18, 40.9813429070086 220 | 7.3, 2.19, 42.40459171117899 221 | 7.333333333333333, 2.2, 43.14198812834512 222 | 7.366666666666666, 2.21, 40.87088747147506 223 | 7.4, 2.22, 42.67962233493865 224 | 7.433333333333334, 2.23, 41.84987898302671 225 | 7.466666666666667, 2.24, 41.17051224822186 226 | 7.5, 2.25, 41.6598633333984 227 | 7.533333333333333, 2.26, 46.24865198954437 228 | 7.566666666666666, 2.27, 41.797447482331584 229 | 7.6, 2.28, 46.7324768651631 230 | 7.633333333333334, 2.29, 44.867777814692616 231 | 7.666666666666667, 2.3, 45.228542001052354 232 | 7.7, 2.31, 47.60684040080516 233 | 7.733333333333333, 2.32, 46.15015410351057 234 | 7.766666666666667, 2.33, 47.51697394423297 235 | 7.8, 2.34, 44.82390249547546 236 | 7.833333333333333, 2.35, 47.011850493598885 237 | 7.866666666666666, 2.36, 46.704387562172876 238 | 7.9, 2.37, 45.0539708396837 239 | 7.933333333333334, 2.38, 48.67994238137635 240 | 7.966666666666667, 2.39, 46.2845411626218 241 | 8.0, 2.4, 49.91375700712098 242 | 8.033333333333333, 2.41, 46.999053709576756 243 | 8.066666666666666, 2.42, 48.638545604849824 244 | 8.1, 2.43, 46.892799700678765 245 | 8.133333333333333, 2.44, 49.56056269052969 246 | 8.166666666666666, 2.45, 50.97581063078197 247 | 8.2, 2.46, 49.952055064194354 248 | 8.233333333333333, 2.47, 52.137973300657016 249 | 8.266666666666667, 2.48, 49.36736527544093 250 | 8.3, 2.49, 50.69549427554965 251 | 8.333333333333334, 2.5, 50.02714182304067 252 | 8.366666666666667, 2.51, 48.88299439269868 253 | 8.4, 2.52, 50.6756795253646 254 | 8.433333333333334, 2.53, 52.48130101342313 255 | 8.466666666666667, 2.54, 49.87963226719046 256 | 8.5, 2.55, 52.04050217439621 257 | 8.533333333333333, 2.56, 52.3469298242771 258 | 8.566666666666666, 2.57, 51.32253035250384 259 | 8.6, 2.58, 55.094711783601994 260 | 8.633333333333333, 2.59, 52.38311941783407 261 | 8.666666666666666, 2.6, 55.89367573550204 262 | 8.7, 2.61, 54.979113463902685 263 | 8.733333333333333, 2.62, 55.01214211920699 264 | 8.766666666666667, 2.63, 54.443887482271286 265 | 8.8, 2.64, 57.39417644869978 266 | 8.833333333333334, 2.65, 57.853156125263084 267 | 8.866666666666667, 2.66, 58.01238528456882 268 | 8.9, 2.67, 57.12187019004233 269 | 8.933333333333334, 2.68, 56.97586753122167 270 | 8.966666666666667, 2.69, 55.09330956191109 271 | 9.0, 2.7, 57.22031240747459 272 | 9.033333333333333, 2.71, 55.68235152888044 273 | 9.066666666666666, 2.72, 58.60953628460087 274 | 9.1, 2.73, 56.511881253442326 275 | 9.133333333333333, 2.74, 59.589289948038925 276 | 9.166666666666666, 2.75, 58.78997538367469 277 | 9.2, 2.76, 57.19972946462454 278 | 9.233333333333333, 2.77, 60.325974255459116 279 | 9.266666666666667, 2.78, 61.78957488358926 280 | 9.3, 2.79, 59.74128020225102 281 | 9.333333333333334, 2.8, 59.35339429843822 282 | 9.366666666666667, 2.81, 60.51364588816104 283 | 9.4, 2.82, 59.757142450740886 284 | 9.433333333333334, 2.83, 62.18012834298008 285 | 9.466666666666667, 2.84, 60.02233794867743 286 | 9.5, 2.85, 62.01619919811168 287 | 9.533333333333333, 2.86, 63.17175710151897 288 | 9.566666666666666, 2.87, 62.9380346224076 289 | 9.6, 2.88, 64.39845345210813 290 | 9.633333333333333, 2.89, 65.7975770400738 291 | 9.666666666666666, 2.9, 65.65171347423397 292 | 9.7, 2.91, 63.54252363990485 293 | 9.733333333333333, 2.92, 66.71535141461017 294 | 9.766666666666667, 2.93, 64.76981067325383 295 | 9.8, 2.94, 64.52984942455741 296 | 9.833333333333334, 2.95, 63.57419044196734 297 | 9.866666666666667, 2.96, 65.6775932936505 298 | 9.9, 2.97, 67.99332064411716 299 | 9.933333333333334, 2.98, 68.31946075912666 300 | 9.966666666666667, 2.99, 65.27781445848083 301 | --------------------------------------------------------------------------------