Closed dickeygh closed 4 years ago
Hello @dickeygh! Thanks for updating this PR. We checked the lines you've touched for PEP 8 issues, and found:
core/Get_Task_Type.py
:Line 1:80: E501 line too long (106 > 79 characters) Line 3:80: E501 line too long (87 > 79 characters) Line 5:80: E501 line too long (107 > 79 characters) Line 8:80: E501 line too long (97 > 79 characters) Line 10:1: E302 expected 2 blank lines, found 0 Line 11:80: E501 line too long (119 > 79 characters) Line 14:80: E501 line too long (88 > 79 characters) Line 15:80: E501 line too long (102 > 79 characters) Line 18:80: E501 line too long (89 > 79 characters) Line 19:80: E501 line too long (121 > 79 characters) Line 22:10: E261 at least two spaces before inline comment Line 25:80: E501 line too long (91 > 79 characters) Line 26:80: E501 line too long (112 > 79 characters) Line 33:80: E501 line too long (107 > 79 characters) Line 36:30: W292 no newline at end of file
core/analysis.py
:Line 231:80: E501 line too long (82 > 79 characters) Line 240:9: E303 too many blank lines (2) Line 240:80: E501 line too long (100 > 79 characters) Line 250:80: E501 line too long (105 > 79 characters) Line 253:80: E501 line too long (87 > 79 characters) Line 265:80: E501 line too long (84 > 79 characters) Line 270:28: W292 no newline at end of file
core/features.py
:Line 33:56: E261 at least two spaces before inline comment Line 33:80: E501 line too long (158 > 79 characters)
core/models.py
:Line 100:80: E501 line too long (91 > 79 characters) Line 114:80: E501 line too long (91 > 79 characters) Line 119:17: E117 over-indented (comment) Line 128:80: E501 line too long (91 > 79 characters)
core/name.py
:Line 68:80: E501 line too long (103 > 79 characters)
core/regressors.py
:Line 76:80: E501 line too long (112 > 79 characters) Line 81:80: E501 line too long (112 > 79 characters)
core/train.py
:Line 36:80: E501 line too long (89 > 79 characters) Line 106:59: E261 at least two spaces before inline comment Line 106:80: E501 line too long (186 > 79 characters) Line 112:80: E501 line too long (83 > 79 characters) Line 126:13: E303 too many blank lines (2) Line 126:80: E501 line too long (85 > 79 characters) Line 135:13: E303 too many blank lines (2) Line 135:80: E501 line too long (93 > 79 characters) Line 184:80: E501 line too long (99 > 79 characters)
main.py
:Line 26:80: E501 line too long (80 > 79 characters) Line 27:5: E265 block comment should start with '# ' Line 39:10: E131 continuation line unaligned for hanging indent Line 49:9: E116 unexpected indentation (comment) Line 50:9: E116 unexpected indentation (comment) Line 51:9: E116 unexpected indentation (comment) Line 63:24: E261 at least two spaces before inline comment Line 64:14: E225 missing whitespace around operator Line 64:23: E231 missing whitespace after ',' Line 65:19: E127 continuation line over-indented for visual indent Line 65:28: E261 at least two spaces before inline comment Line 70:80: E501 line too long (150 > 79 characters) Line 71:80: E501 line too long (80 > 79 characters) Line 72:80: E501 line too long (80 > 79 characters) Line 74:80: E501 line too long (119 > 79 characters) Line 75:58: E231 missing whitespace after ',' Line 89:80: E501 line too long (108 > 79 characters) Line 101:80: E501 line too long (88 > 79 characters) Line 203:7: E111 indentation is not a multiple of four Line 203:7: E117 over-indented
I just pushed several changes to this PR that address a lot of the issues with the previous iteration. The Get_Task_Type file was added in order to clean up main.py and perform if statements in a different file. The file allows for main.py to skip over algorithm/data set combinations that are not compatible.
I was unable to accomplish this in a different manner, which is why I created this new file.
Furthermore, I was unable to put lists of targets directly into the dictionary for classification, as this caused errors I was unable to solve later in the workflow. As a result, Get_Classification.py is still being used in order to get the target columns for classification data sets.
These changes also included changing self.regressor to self.estimator, moving the graphing functions for classification from train.py to analysis.py, and improving upon the declaration of self.task_type in models.py, as well as using self.task_type instead of searching through lists of datasets in several parts of the workflow.
Making these changes caused the removal of several TODO's from the code.
Specific changes can be seen within the above commits.
I just pushed several commits to this PR:
Analysis.py
:
Get_Task_Type.py
:
Classifiers.py
:
Grid.py
:
Name.py
:
Regressors.py
:
Main.py
:
Just pushed a commit to this PR:
analysis.py
:
name.py
:
Get_Classification.py
:main.py
.Analysis.py
:plt.show()
at line 59 to reset the matplotlib plot, so that the single-label classification workflow can plot its graph successfully when also usingimpgraph()
.Classifiers.py
:Features.py
:train.py
.Models.py
:main.py
could be simplified.Storage.py
:Train.py
:Main.py
:main.py
in this workflow. The changes allow for the entire workflow (classification and regression) to be ran together without prompting the user to select a model type. The workflow has been tested extensively, and both the regression and classification models seem to be running fine. There are several commented blocks of code (lines 23-29, 45-60, 64) that can be used to run specific models/data sets from either the regression or classification workflow.Overall, this PR adds storage for all classification models and a graphical evaluation for single-label classification models. In addition, the PR simplifies
main.py
by removing if statements and allowing more continuity between the regression and classification workflows.