{ "metadata": { "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": 3 }, "orig_nbformat": 2, "kernelspec": { "name": "python_defaultSpec_1597256294260", "display_name": "Python 3.8.4 64-bit" } }, "nbformat": 4, "nbformat_minor": 2, "cells": [ { "cell_type": "code", "execution_count": 14, "metadata": { "tags": [] }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": "Done with the parameters reset.\nPrevious Parameters are: {'hidden_layer_sizes': [10, 50, 100], 'activation': ['identity', 'relu', 'tanh', 'logistic'], 'learning_rate': ['constant', 'invscaling', 'adaptive'], 'solver': ['lbfgs', 'sgd', 'adam']}\nCurrent Parameters are updated as: {'hidden_layer_sizes': [10], 'activation': ['relu'], 'learning_rate': ['constant'], 'solver': ['sgd']}\nDone with the parameters update.\nPrevious Parameters are: {'kernel': ['linear', 'poly', 'rbf', 'sigmoid'], 'C': [0.1, 1, 10]}\nCurrent Parameters are updated as: {'C': [0.1], 'kernel': ['linear']}\nDone with the parameters update.\nPrevious Parameters are: {'n_estimators': [50, 100, 150], 'learning_rate': [0.1, 1, 10, 100]}\nCurrent Parameters are updated as: {'n_estimators': [50], 'learning_rate': [1]}\nDone with the parameters update.\nPrevious Parameters are: {'n_estimators': [5, 50, 250], 'max_depth': [2, 4, 8, 16, 32]}\nCurrent Parameters are updated as: {'n_estimators': [50], 'max_depth': [2]}\nDone with the parameters update.\nPrevious Parameters are: {'n_estimators': [50, 100, 150, 200, 250, 300], 'max_depth': [1, 3, 5, 7, 9], 'learning_rate': [0.01, 0.1, 0.2, 0.3, 0.4]}\nCurrent Parameters are updated as: {'n_estimators': [50], 'max_depth': [2], 'learning_rate': [1]}\nDone with the parameters update.\nPrevious Parameters are: {'n_estimators': [50, 100, 150, 200, 250, 300], 'max_depth': [3, 5, 7, 9], 'learning_rate': [0.01, 0.1, 0.2, 0.3, 0.4], 'verbosity': [0]}\nCurrent Parameters are updated as: {'n_estimators': [50], 'max_depth': [2], 'learning_rate': [1]}\nDone with the parameters update.\n" } ], "source": [ "\n", "from optimalflow.utilis_func import pipeline_splitting_rule, update_parameters,reset_parameters\n", "reset_parameters()\n", "\n", "update_parameters(mode = \"cls\", estimator_name = \"mlp\", hidden_layer_sizes = [10],activation=[\"relu\"],learning_rate = [\"constant\"],solver = [\"sgd\"])\n", "update_parameters(mode = \"cls\", estimator_name = \"svm\", C=[0.1],kernel=[\"linear\"])\n", "update_parameters(mode = \"cls\", estimator_name = \"ada\", n_estimators =[50],learning_rate=[1])\n", "update_parameters(mode = \"cls\", estimator_name = \"rf\", n_estimators =[50],max_depth=[2])\n", "update_parameters(mode = \"cls\", estimator_name = \"gb\", n_estimators =[50],max_depth=[2],learning_rate=[1])\n", "update_parameters(mode = \"cls\", estimator_name = \"xgb\", n_estimators =[50],max_depth=[2],learning_rate=[1])\n", "\n", "from optimalflow.autoPipe import autoPipe\n", "import pandas as pd\n", "from optimalflow.funcPP import PPtools\n", "from optimalflow.autoPP import dynaPreprocessing\n", "\n", "from optimalflow.autoFS import dynaFS_clf\n", "from optimalflow.autoCV import evaluate_model,dynaClassifier,dynaRegressor\n", "df = pd.read_csv('./data/preprocessing/breast_cancer.csv')\n", "custom_parameters = {\n", " \"scaler\" : [\"None\", \"standard\"],\n", " # threshold number of category dimension\n", " \"encode_band\" : [4],\n", " # low dimension encoding\n", " \"low_encode\" : [\"onehot\",\"label\"], \n", " # high dimension encoding\n", " \"high_encode\" : [\"frequency\", \"mean\"],\n", " \"winsorizer\" : [(0.05,0.05),(0.1,0.1)],\n", " \"sparsity\" : [0.4],\n", " \"cols\" : [1000]\n", "}" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "pipe = autoPipe(\n", "[(\"autoPP\",dynaPreprocessing(custom_parameters = custom_parameters, label_col = 'diagnosis', model_type = \"cls\")),\n", "(\"datasets_splitting\",pipeline_splitting_rule(val_size = 0.2, test_size = 0.2, random_state = 13)),\n", "(\"autoFS\",dynaFS_clf(fs_num = 8, random_state=13, cv = 5, in_pipeline = True, input_from_file = False)),\n", "(\"autoCV\",dynaClassifier(random_state = 13,cv_num = 5,in_pipeline = True, input_from_file = False)),\n", "(\"model_evaluate\",evaluate_model(model_type = \"cls\"))])" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "tags": [] }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": "Now in Progress - autoFS & autoCV Iteration: Estimate about 0.0 minutes left [####################] 100.0%\nThe top 5 Models with Best Performance Metrics:\n Dataset Model_Name \\\n3943 Dataset_563 mlp \n4312 Dataset_616 lgr \n3481 Dataset_497 mlp \n2546 Dataset_363 gb \n1139 Dataset_162 gb \n\n Best_Parameters \\\n3943 [('activation', 'relu'), ('hidden_layer_sizes', (10,)), ('learning_rate', 'constant'), ('random_state', 13), ('solver', 'sgd')] \n4312 [('C', 100), ('random_state', 13)] \n3481 [('activation', 'relu'), ('hidden_layer_sizes', (10,)), ('learning_rate', 'constant'), ('random_state', 13), ('solver', 'sgd')] \n2546 [('learning_rate', 1), ('max_depth', 2), ('n_estimators', 50), ('random_state', 13)] \n1139 [('learning_rate', 1), ('max_depth', 2), ('n_estimators', 50), ('random_state', 13)] \n\n Accuracy Precision Recall Latency \n3943 0.947 0.958 0.92 3.5 \n4312 0.947 0.923 0.96 3.0 \n3481 0.930 1.000 0.84 3.0 \n2546 0.930 0.957 0.88 1.0 \n1139 0.930 0.957 0.88 2.0 \n" } ], "source": [ "from IPython.core.interactiveshell import InteractiveShell\n", "InteractiveShell.ast_node_interactivity = \"all\"\n", "pd.set_option('display.max_columns',None,'display.max_rows',None)\n", "pd.set_option('max_colwidth', -1)\n", "\n", "DICT_PREPROCESSING,DICT_FEATURE_SELECTION,DICT_MODELS_EVALUATION,DICT_DATA,dyna_report= pipe.fit(df)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": " Model_Name Accuracy Precision Recall Latency \\\n0 lgr 0.895 0.880 0.88 3.0 \n0 svm 0.912 0.885 0.92 3.0 \n0 mlp 0.439 0.439 1.00 3.0 \n0 rf 0.877 0.821 0.92 12.0 \n0 ada 0.912 0.955 0.84 17.0 \n0 gb 0.877 0.846 0.88 3.0 \n0 xgb 0.912 0.955 0.84 2.0 \n\n Best_Parameters \\\n0 [('C', 1000), ('random_state', 13)] \n0 [('C', 0.1), ('kernel', 'linear')] \n0 [('activation', 'relu'), ('hidden_layer_sizes', (10,)), ('learning_rate', 'constant'), ('random_state', 13), ('solver', 'sgd')] \n0 [('max_depth', 2), ('n_estimators', 50), ('random_state', 13)] \n0 [('learning_rate', 1), ('n_estimators', 50), ('random_state', 13)] \n0 [('learning_rate', 1), ('max_depth', 2), ('n_estimators', 50), ('random_state', 13)] \n0 [('learning_rate', 1), ('max_depth', 2), ('n_estimators', 50), ('random_state', 13)] \n\n Dataset \n0 Dataset_0 \n0 Dataset_0 \n0 Dataset_0 \n0 Dataset_0 \n0 Dataset_0 \n0 Dataset_0 \n0 Dataset_0 ", "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Model_NameAccuracyPrecisionRecallLatencyBest_ParametersDataset
0lgr0.8950.8800.883.0[('C', 1000), ('random_state', 13)]Dataset_0
0svm0.9120.8850.923.0[('C', 0.1), ('kernel', 'linear')]Dataset_0
0mlp0.4390.4391.003.0[('activation', 'relu'), ('hidden_layer_sizes', (10,)), ('learning_rate', 'constant'), ('random_state', 13), ('solver', 'sgd')]Dataset_0
0rf0.8770.8210.9212.0[('max_depth', 2), ('n_estimators', 50), ('random_state', 13)]Dataset_0
0ada0.9120.9550.8417.0[('learning_rate', 1), ('n_estimators', 50), ('random_state', 13)]Dataset_0
0gb0.8770.8460.883.0[('learning_rate', 1), ('max_depth', 2), ('n_estimators', 50), ('random_state', 13)]Dataset_0
0xgb0.9120.9550.842.0[('learning_rate', 1), ('max_depth', 2), ('n_estimators', 50), ('random_state', 13)]Dataset_0
\n
" }, "metadata": {}, "execution_count": 18 } ], "source": [ "\n", "DICT_MODELS_EVALUATION['Dataset_0']" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": " Dataset Model_Name \\\n3943 Dataset_563 mlp \n4312 Dataset_616 lgr \n3481 Dataset_497 mlp \n2546 Dataset_363 gb \n1139 Dataset_162 gb \n3901 Dataset_557 mlp \n1314 Dataset_187 gb \n1412 Dataset_201 gb \n1678 Dataset_239 gb \n1916 Dataset_273 gb \n2644 Dataset_377 gb \n2840 Dataset_405 gb \n2851 Dataset_407 mlp \n2994 Dataset_427 gb \n3176 Dataset_453 gb \n\n Best_Parameters \\\n3943 [('activation', 'relu'), ('hidden_layer_sizes', (10,)), ('learning_rate', 'constant'), ('random_state', 13), ('solver', 'sgd')] \n4312 [('C', 100), ('random_state', 13)] \n3481 [('activation', 'relu'), ('hidden_layer_sizes', (10,)), ('learning_rate', 'constant'), ('random_state', 13), ('solver', 'sgd')] \n2546 [('learning_rate', 1), ('max_depth', 2), ('n_estimators', 50), ('random_state', 13)] \n1139 [('learning_rate', 1), ('max_depth', 2), ('n_estimators', 50), ('random_state', 13)] \n3901 [('activation', 'relu'), ('hidden_layer_sizes', (10,)), ('learning_rate', 'constant'), ('random_state', 13), ('solver', 'sgd')] \n1314 [('learning_rate', 1), ('max_depth', 2), ('n_estimators', 50), ('random_state', 13)] \n1412 [('learning_rate', 1), ('max_depth', 2), ('n_estimators', 50), ('random_state', 13)] \n1678 [('learning_rate', 1), ('max_depth', 2), ('n_estimators', 50), ('random_state', 13)] \n1916 [('learning_rate', 1), ('max_depth', 2), ('n_estimators', 50), ('random_state', 13)] \n2644 [('learning_rate', 1), ('max_depth', 2), ('n_estimators', 50), ('random_state', 13)] \n2840 [('learning_rate', 1), ('max_depth', 2), ('n_estimators', 50), ('random_state', 13)] \n2851 [('activation', 'relu'), ('hidden_layer_sizes', (10,)), ('learning_rate', 'constant'), ('random_state', 13), ('solver', 'sgd')] \n2994 [('learning_rate', 1), ('max_depth', 2), ('n_estimators', 50), ('random_state', 13)] \n3176 [('learning_rate', 1), ('max_depth', 2), ('n_estimators', 50), ('random_state', 13)] \n\n Accuracy Precision Recall Latency \n3943 0.947 0.958 0.92 3.5 \n4312 0.947 0.923 0.96 3.0 \n3481 0.930 1.000 0.84 3.0 \n2546 0.930 0.957 0.88 1.0 \n1139 0.930 0.957 0.88 2.0 \n3901 0.930 0.957 0.88 2.0 \n1314 0.930 0.957 0.88 3.0 \n1412 0.930 0.957 0.88 3.0 \n1678 0.930 0.957 0.88 3.0 \n1916 0.930 0.957 0.88 3.0 \n2644 0.930 0.957 0.88 3.0 \n2840 0.930 0.957 0.88 3.0 \n2851 0.930 0.957 0.88 3.0 \n2994 0.930 0.957 0.88 3.0 \n3176 0.930 0.957 0.88 3.0 ", "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
DatasetModel_NameBest_ParametersAccuracyPrecisionRecallLatency
3943Dataset_563mlp[('activation', 'relu'), ('hidden_layer_sizes', (10,)), ('learning_rate', 'constant'), ('random_state', 13), ('solver', 'sgd')]0.9470.9580.923.5
4312Dataset_616lgr[('C', 100), ('random_state', 13)]0.9470.9230.963.0
3481Dataset_497mlp[('activation', 'relu'), ('hidden_layer_sizes', (10,)), ('learning_rate', 'constant'), ('random_state', 13), ('solver', 'sgd')]0.9301.0000.843.0
2546Dataset_363gb[('learning_rate', 1), ('max_depth', 2), ('n_estimators', 50), ('random_state', 13)]0.9300.9570.881.0
1139Dataset_162gb[('learning_rate', 1), ('max_depth', 2), ('n_estimators', 50), ('random_state', 13)]0.9300.9570.882.0
3901Dataset_557mlp[('activation', 'relu'), ('hidden_layer_sizes', (10,)), ('learning_rate', 'constant'), ('random_state', 13), ('solver', 'sgd')]0.9300.9570.882.0
1314Dataset_187gb[('learning_rate', 1), ('max_depth', 2), ('n_estimators', 50), ('random_state', 13)]0.9300.9570.883.0
1412Dataset_201gb[('learning_rate', 1), ('max_depth', 2), ('n_estimators', 50), ('random_state', 13)]0.9300.9570.883.0
1678Dataset_239gb[('learning_rate', 1), ('max_depth', 2), ('n_estimators', 50), ('random_state', 13)]0.9300.9570.883.0
1916Dataset_273gb[('learning_rate', 1), ('max_depth', 2), ('n_estimators', 50), ('random_state', 13)]0.9300.9570.883.0
2644Dataset_377gb[('learning_rate', 1), ('max_depth', 2), ('n_estimators', 50), ('random_state', 13)]0.9300.9570.883.0
2840Dataset_405gb[('learning_rate', 1), ('max_depth', 2), ('n_estimators', 50), ('random_state', 13)]0.9300.9570.883.0
2851Dataset_407mlp[('activation', 'relu'), ('hidden_layer_sizes', (10,)), ('learning_rate', 'constant'), ('random_state', 13), ('solver', 'sgd')]0.9300.9570.883.0
2994Dataset_427gb[('learning_rate', 1), ('max_depth', 2), ('n_estimators', 50), ('random_state', 13)]0.9300.9570.883.0
3176Dataset_453gb[('learning_rate', 1), ('max_depth', 2), ('n_estimators', 50), ('random_state', 13)]0.9300.9570.883.0
\n
" }, "metadata": {}, "execution_count": 19 } ], "source": [ "dyna_report.head(15)\n", "dyna_report.to_csv(\"dyna_report.csv\",index=False)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": " concavity_mean concave points_mean perimeter_mean radius_mean \\\n264 0.09061 0.065270 111.60 17.19 \n231 0.01633 0.006588 71.76 11.32 \n197 0.11030 0.057780 117.40 18.08 \n172 0.20320 0.109700 102.50 15.46 \n54 0.05253 0.033340 97.26 15.10 \n33 0.16570 0.075930 127.90 19.27 \n68 0.25080 0.043750 60.73 9.72 \n237 0.09042 0.060220 132.50 20.48 \n51 0.01857 0.017230 87.21 13.64 \n196 0.13850 0.065260 90.63 13.77 \n\n texture_mean \n264 22.07 \n231 26.60 \n197 21.84 \n172 13.04 \n54 22.02 \n33 26.47 \n68 17.33 \n237 21.46 \n51 16.34 \n196 22.29 ", "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
concavity_meanconcave points_meanperimeter_meanradius_meantexture_mean
2640.090610.065270111.6017.1922.07
2310.016330.00658871.7611.3226.60
1970.110300.057780117.4018.0821.84
1720.203200.109700102.5015.4613.04
540.052530.03334097.2615.1022.02
330.165700.075930127.9019.2726.47
680.250800.04375060.739.7217.33
2370.090420.060220132.5020.4821.46
510.018570.01723087.2113.6416.34
1960.138500.06526090.6313.7722.29
\n
" }, "metadata": {}, "execution_count": 15 } ], "source": [ "DICT_DATA['Dataset_0']['DICT_TEST'][\"X\"].head(10)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "\"winsor_0-Scaler_None-- Encoded Features:['diagnosis', 'Size_3', 'area_mean', 'compactness_mean', 'concave points_mean', 'concavity_mean', 'fractal_dimension_mean', 'perimeter_mean', 'radius_mean', 'smoothness_mean', 'symmetry_mean', 'texture_mean', 'Frequency_Age', 'onehot_Position_1_left', 'onehot_Position_1_right', 'Frequency_Position_2', 'Frequency_Size_1', 'Frequency_Size_2', 'onehot_Treatment_no-recurrence-events', 'onehot_Treatment_recurrence-events', 'onehot_Type_1_ge40', 'onehot_Type_1_lt40', 'onehot_Type_1_premeno', 'onehot_Type_2_NaN', 'onehot_Type_2_no', 'onehot_Type_2_yes', 'onehot_Type_3_no', 'onehot_Type_3_yes']\"" }, "metadata": {}, "execution_count": 21 } ], "source": [ "test = DICT_PREPROCESSING['Dataset_0']\n", "test" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import pickle\n", "def save_obj(obj, name ):\n", " with open(name + '.pkl', 'wb') as f:\n", " pickle.dump(obj, f, pickle.HIGHEST_PROTOCOL)\n", "\n", "def load_obj(name ):\n", " with open(name + '.pkl', 'rb') as f:\n", " return pickle.load(f)" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [], "source": [ "save_obj(DICT_PREPROCESSING,\"dict_preprocess\")\n", "save_obj(DICT_DATA,\"dict_data\")\n", "save_obj(DICT_MODELS_EVALUATION,\"dict_models_evaluate\")\n", "save_obj(dyna_report,\"dyna_report\")" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "\"winsor_0-Scaler_None-- Encoded Features:['diagnosis', 'Size_3', 'area_mean', 'compactness_mean', 'concave points_mean', 'concavity_mean', 'fractal_dimension_mean', 'perimeter_mean', 'radius_mean', 'smoothness_mean', 'symmetry_mean', 'texture_mean', 'Frequency_Age', 'onehot_Position_1_left', 'onehot_Position_1_right', 'Frequency_Position_2', 'Frequency_Size_1', 'Frequency_Size_2', 'onehot_Treatment_no-recurrence-events', 'onehot_Treatment_recurrence-events', 'onehot_Type_1_ge40', 'onehot_Type_1_lt40', 'onehot_Type_1_premeno', 'onehot_Type_2_NaN', 'onehot_Type_2_no', 'onehot_Type_2_yes', 'onehot_Type_3_no', 'onehot_Type_3_yes']\"" }, "metadata": {}, "execution_count": 3 } ], "source": [ "DICT_PREP = load_obj(\"dict_preprocess\")\n", "dyna_report = load_obj(\"dyna_report\")\n", "DICT_DATA = load_obj(\"dict_data\")\n", "DICT_PREP['Dataset_0']" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": " concave points_mean concavity_mean radius_mean area_mean \\\n204 0.03821 0.08005 12.470 481.9 \n198 0.06772 0.11140 19.180 1148.0 \n93 0.02780 0.03974 13.450 555.1 \n78 0.12790 0.25080 20.180 1245.0 \n128 0.08534 0.11380 15.100 674.5 \n268 0.01615 0.03900 12.870 512.2 \n273 0.01407 0.01103 9.742 289.9 \n10 0.03323 0.03299 16.020 797.8 \n282 0.09464 0.16260 19.400 1145.0 \n38 0.02899 0.02398 14.990 698.8 \n\n perimeter_mean texture_mean compactness_mean smoothness_mean \n204 81.09 18.60 0.10580 0.09965 \n198 127.50 22.49 0.14280 0.08523 \n93 86.60 18.30 0.08165 0.10220 \n78 135.10 23.97 0.22330 0.12150 \n128 99.58 16.39 0.18070 0.11500 \n268 82.38 16.21 0.06219 0.09425 \n273 61.50 15.67 0.04689 0.09037 \n10 102.70 23.24 0.06669 0.08206 \n282 127.20 18.18 0.14420 0.10370 \n38 95.54 25.20 0.05131 0.09387 ", "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
concave points_meanconcavity_meanradius_meanarea_meanperimeter_meantexture_meancompactness_meansmoothness_mean
2040.038210.0800512.470481.981.0918.600.105800.09965
1980.067720.1114019.1801148.0127.5022.490.142800.08523
930.027800.0397413.450555.186.6018.300.081650.10220
780.127900.2508020.1801245.0135.1023.970.223300.12150
1280.085340.1138015.100674.599.5816.390.180700.11500
2680.016150.0390012.870512.282.3816.210.062190.09425
2730.014070.011039.742289.961.5015.670.046890.09037
100.033230.0329916.020797.8102.7023.240.066690.08206
2820.094640.1626019.4001145.0127.2018.180.144200.10370
380.028990.0239814.990698.895.5425.200.051310.09387
\n
" }, "metadata": {}, "execution_count": 7 }, { "output_type": "execute_result", "data": { "text/plain": "204 0\n198 1\n93 0\n78 1\n128 0\n268 0\n273 0\n10 1\n282 1\n38 1\nName: diagnosis, dtype: int32" }, "metadata": {}, "execution_count": 7 } ], "source": [ "from IPython.core.interactiveshell import InteractiveShell\n", "InteractiveShell.ast_node_interactivity = \"all\"\n", "import pandas as pd\n", "pd.set_option('display.max_columns',None,'display.max_rows',None)\n", "pd.set_option('max_colwidth', -1)\n", "DICT_DATA['Dataset_0']['DICT_Train'][\"X\"].head(10)\n", "DICT_DATA['Dataset_0']['DICT_Train'][\"y\"].head(10)" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "SVC()" }, "metadata": {}, "execution_count": 28 } ], "source": [ "import joblib\n", "from sklearn.svm import SVC\n", "# mdl = joblib.load('./pkl/_clf_model.pkl')\n", "X_train = DICT_DATA['Dataset_0']['DICT_Train'][\"X\"]\n", "y_train = DICT_DATA['Dataset_0']['DICT_Train'][\"y\"]\n", "X_test = DICT_DATA['Dataset_0']['DICT_TEST'][\"X\"]\n", "y_test = DICT_DATA['Dataset_0']['DICT_TEST'][\"y\"]\n", "mdl = SVC()\n", "mdl.fit(X_train,y_train)\n", "y_true = y_test\n", "y_pred = mdl.predict(X_test)" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "tags": [] }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": "precision recall f1-score support\n\n 0 0.78 0.93 0.85 27\n 1 0.92 0.77 0.84 31\n\n accuracy 0.84 58\n macro avg 0.85 0.85 0.84 58\nweighted avg 0.86 0.84 0.84 58\n\n" } ], "source": [ "from sklearn.metrics import classification_report\n", "from sklearn.metrics import roc_auc_score\n", "print(classification_report(y_true, y_pred))" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "SVC()" }, "metadata": {}, "execution_count": 36 }, { "output_type": "execute_result", "data": { "text/plain": "Text(0.5, 1.0, 'Receiver Operating Characteristic')" }, "metadata": {}, "execution_count": 36 }, { "output_type": "execute_result", "data": { "text/plain": "[]" }, "metadata": {}, "execution_count": 36 }, { "output_type": "execute_result", "data": { "text/plain": "" }, "metadata": {}, "execution_count": 36 }, { "output_type": "execute_result", "data": { "text/plain": "[]" }, "metadata": {}, "execution_count": 36 }, { "output_type": "execute_result", "data": { "text/plain": "(0.0, 1.0)" }, "metadata": {}, "execution_count": 36 }, { "output_type": "execute_result", "data": { "text/plain": "(0.0, 1.0)" }, "metadata": {}, "execution_count": 36 }, { "output_type": "execute_result", "data": { "text/plain": "Text(0, 0.5, 'True Positive Rate')" }, "metadata": {}, "execution_count": 36 }, { "output_type": "execute_result", "data": { "text/plain": "Text(0.5, 0, 'False Positive Rate')" }, "metadata": {}, "execution_count": 36 }, { "output_type": "display_data", "data": { "text/plain": "
", "image/svg+xml": "\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n", "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ], "source": [ "import matplotlib.pyplot as plt\n", "from sklearn.metrics import roc_curve, auc\n", "from sklearn.metrics import roc_auc_score\n", "\n", "from sklearn.svm import SVC\n", "import sklearn.metrics as metrics\n", "# mdl = joblib.load('./pkl/_clf_model.pkl')\n", "X_train = DICT_DATA['Dataset_0']['DICT_Train'][\"X\"]\n", "y_train = DICT_DATA['Dataset_0']['DICT_Train'][\"y\"]\n", "X_test = DICT_DATA['Dataset_0']['DICT_TEST'][\"X\"]\n", "y_test = DICT_DATA['Dataset_0']['DICT_TEST'][\"y\"]\n", "mdl = SVC()\n", "mdl.fit(X_train,y_train)\n", "preds = mdl.predict(X_test)\n", "fpr, tpr, threshold = metrics.roc_curve(y_test, preds)\n", "roc_auc = metrics.auc(fpr, tpr)\n", "plt.title('Receiver Operating Characteristic(ROC Plot)')\n", "plt.plot(fpr, tpr, 'b', label = 'AUC = %0.2f' % roc_auc)\n", "plt.legend(loc = 'lower right')\n", "plt.plot([0, 1], [0, 1],'r--')\n", "plt.xlim([0, 1])\n", "plt.ylim([0, 1])\n", "plt.ylabel('True Positive Rate')\n", "plt.xlabel('False Positive Rate')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "tags": [] }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "SVC()" }, "metadata": {}, "execution_count": 38 }, { "output_type": "execute_result", "data": { "text/plain": "Text(0.5, 1.0, 'Confusion matrix, without normalization')" }, "metadata": {}, "execution_count": 38 }, { "output_type": "stream", "name": "stdout", "text": "Confusion matrix, without normalization\n[[25 2]\n [ 7 24]]\n" }, { "output_type": "execute_result", "data": { "text/plain": "Text(0.5, 1.0, 'Normalized confusion matrix')" }, "metadata": {}, "execution_count": 38 }, { "output_type": "stream", "name": "stdout", "text": "Normalized confusion matrix\n[[0.93 0.07]\n [0.23 0.77]]\n" }, { "output_type": "display_data", "data": { "text/plain": "
", "image/svg+xml": "\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n", "image/png": "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\n" }, "metadata": { "needs_background": "light" } }, { "output_type": "display_data", "data": { "text/plain": "
", "image/svg+xml": "\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n", "image/png": "iVBORw0KGgoAAAANSUhEUgAAATUAAAEWCAYAAAAHJwCcAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3deZwcVbnG8d8zkwQSspE9JCTsSyAEA4KAQJDLrgLiFVlFQcQFrl4F3K4o6BVErqiACIgoIoiyS4AAGgICZiMsCatAwhIICSGBEEwy894/qmbSM5npriLdmZ6e58unP3RXnT51enrmzTlVdc6riMDMrFbUdXQDzMzKyUHNzGqKg5qZ1RQHNTOrKQ5qZlZTHNTMrKY4qFUJSZMlnZQ+P0bSpDLXv4mkkNStnPWWOKYk/VbSYklT16KePSU9Xc62dRRJoyS9I6m+o9tSq7pMUJP0oqTXJW1QsO0kSZM7sFltiohrImL/jm5HGXwY2A8YGRG7vN9KIuL+iNi6fM2qjPR37D+KlYmIeRHROyIa1lW7upouE9RS3YD/WttK0h5IV/vZvR+jgRcjYllHN6QarMteclfW1f4wzwe+Ial/Wzsl7S5pmqQl6f93L9g3WdKPJP0DeBfYLB3OfUnSs5LelnSOpM0lPSRpqaTrJfVI37+hpL9KeiMdjv1V0sh22nGCpAfS52ekw5Wmx0pJV6X7+kn6jaT5kl6R9MOmYY2kekk/lbRQ0vPAIcV+MJI2lnRj2r5Fki5Kt9dJ+q6kuZIWSPq9pH7pvqYh7WckzUuP9Z1034nAFcBuabt/UPi5Co4bkrZInx8saU76s3xF0jfS7RMkvVzwnm3T7+MtSbMlfbxg31WSLpZ0e1rPPyVt3s5nbmr/ZyW9lH4vp0j6oKTH0vovKii/uaS/pT+fhZKuafpdknQ1MAq4Lf28ZxTUf6KkecDfCrZ1kzRA0suSPpbW0VvSc5KOL/ZdWQkR0SUewIvAfwA3Aj9Mt50ETE6fDwAWA8eR9OiOSl8PTPdPBuYB26X7uwMB3Ar0Tbf/G7gX2AzoB8wBPpO+fyBwBNAL6AP8Gbi5oH2TgZPS5ycAD7TxGTYGXgUOTl/fDPwa2AAYAkwFvpDuOwV4Kn3PAODvaXu7tVFvPfAo8LO0rvWBD6f7Pgc8l36m3unP7+p03yZpnZcDPYFx6c9g27Y+R1ufK33/Funz+cCe6fMNgfHp8wnAy+nz7ml7vg30AD4CvA1sne6/CngT2CX9nq4Brmvnd6Kp/Zemn3l/4L305zoEGAEsAPZOy29BMpxeDxgMTAEubP071kb9v09/rj0LtnVLy+wPvJYe73LgLx39t9LZHx3egHX2QVcHte2BJekvZWFQOw6Y2uo9DwEnpM8nA2e32h/AHgWvZwBnFry+oPCXvtV7dwQWF7yeTJGglv5BNNcPDE0DSM+CMkcBf0+f/w04pWDf/rQf1HYD3mhn373Alwpebw2sTANG0x/oyIL9U4FPt/U52vlchUFtHvAFoG+rMhNYHdT2TINAXcH+a4Hvp8+vAq4o2Hcw8FQ730FT+0cUbFsEHFnw+gbgq+28/zDgkda/Y23Uv1kb27oVbPsl8DjJP1gDO/pvpbM/utrwk4h4Avgr8M1WuzYC5rbaNpfkX+smL7VR5esFz5e38bo3gKRekn6dDuOWkvwr31/Zr4L9Bng6Is5LX48m6bXMT4dJb5H02oYUfJ7C9rb+bIU2BuZGxKo29rX+ucwlCWhDC7a9VvD8XdLP/D4cQRKE5kq6T9Ju7bTnpYhobNWmwu8pb3uyfodDJF2XDo2XAn8ABpWoG9r+vSl0Gck/tr+NiEUZ6rMiulxQS50FfJ6WfwivkgSKQqOAVwper82SJl8n6eXsGhF9gb3S7Sr1RknfTN97YsHml0h6aoMion/66BsR26X755MEqyajihziJWCU2j6R3frnMgpYRcs//KyWkQy/AZA0rHBnREyLiENJAvPNwPXttGdjtbxQ0/p7qpQfk/wO7JB+h8fS8vtr7/ej3d+b9B+1X5MMUb/YdH7R3r8uGdQi4jngT8BpBZsnAltJOjo9iXskMIakV1cOfUj+1X9L0gCSwFqSpIPSdh4WEcsLPsN8YBJwgaS+6Qn9zSXtnRa5HjhN0khJG7Jmz7TQVJIgeK6kDSStL2mPdN+1wNckbSqpN/C/wJ/a6dWV8iiwnaQdJa0PfL/gc/ZQcn9ev4hYCSwF2rrt4Z8kwfEMSd0lTQA+Blz3PtqTVx/gHZLvcARweqv9r5Oce8zj2+n/Pwf8FPh9jt67taFLBrXU2SQnbwFIu/0fJelRLQLOAD4aEQvLdLwLSc6LLQQeBu7M+L4jSc7/PanVV0AvTfcdT3KyfA7JRY2/AMPTfZcDd5EEkpkkJ/jbFMk9Ux8jORE+D3g5PS7AlcDVJMPlF0hOpJ+ase2tj/MMyc/9HuBZ4IFWRY4DXkyHdqeQ9IRa17EC+DhwEMnP8hLg+Ih46v20KacfAONJzsnezpo/0x8D301PB3yjVGWSdgL+m6T9DcB5JL26Yv8AWQlKT1SamdWErtxTM7Ma5KBmZjXFQc3MaoqDmpnVlKqaYKtuPUM9+nR0MyyHD2xb7PY3qzZz577IwoULS94bWUx939ERq5aXLgjE8jfuiogD1+Z4eVVXUOvRh/W2/lRHN8Ny+Mc/LypdyKrGHrvuvNZ1xKrlmf9O35t1cZYZF2VVVUHNzDoDQRWvvOWgZmb5CKir3kkP1Rtuzax6SdkeJavRgZKeTteRW2MmhZJ1CG9K17ebKmn7UnU6qJlZTunwM8ujWC3JHNeLSaa8jQGOkjSmVbFvA7MiYgeSaYE/L9U6BzUzy688PbVdgOci4vl0Tu91wKGtyowhWdOPdH7vJpKGUoSDmpnlI/L01AZJml7wOLmgphG0XGvuZVouBwbJggyfAJC0C8kyWG0ug9/EFwrMLKds58tSCyOivftI2qqk9Qob5wI/lzSLZHXgR0jW82uXg5qZ5Veeq58v03Ih05Eki4A2i4ilwGchyeJGsvzVC0WbVo6WmVlXUp4LBcA0YMt0AdIewKdJEhmtPpLUP90HSU6RKWmga5d7amaWj8gz/GxXRKyS9BWSxUzrgSsjYrakU9L9lwLbkqwG3ECyGOqJ7VaYclAzs/zKNKMgIiaSLKVfuO3SgucPAVvmqdNBzcxy8jQpM6slAuqrd5qUg5qZ5VeGc2qV4qBmZjl5+GlmtcY9NTOrKe6pmVnNyLisUEdxUDOz/Kp4kUgHNTPLyRcKzKzWePhpZjWjaT21KuWgZmY5efhpZrXGFwrMrKb4nJqZ1Qx5+GlmtaaKe2rVG27NrGpJyvTIUE+pZMb9JN0m6VFJsyV9tlSdDmpmlkuymvfaB7WMyYy/DMyJiHHABOCCgpwFbXJQM7N8JFSX7VFClmTGAfRJM0n1Bt7EKfLMrNyyDC0zaCuZ8a6tylxEkmHqVaAPcGRENBar1D01M8stx/CzWIb2LMmMDwBmARsBOwIXSepbrG3uqZlZbjl6asUytJdMZkySyPjciAjgOUkvANsAU9s7oHtqZpaPcjyKK5nMGJgH7AsgaSiwNfB8sUrdUzOzXES22zVKyZjM+BzgKkmPk4TJMyNiYbF6HdTMLLe6unWWzPhVYP88dTqomVluZbr6WREOamaWT7bzZR3GQc3McnNPzcxqRrkuFFSKg5qZ5ZZhClSHcVAzs3zk4aeZ1RgHNTOrKQ5qZlYzfKHAzGpP9cY0BzUzy0nlmyZVCQ5qZpabh59mVluqN6Y5qK2NfXfblh9//ZPU19Vx9S0PcuHv7m6xv1+fnlz0P8ey6chBvLdiJaeecw1P/ms+6/Xoxu2XfZX1unejvls9t977COdeNrGdo9jauufBOXzrgr/Q0NjIcYfuztdOaLnoQ0TwzQv+wt3/mE3P9XtwyVnHMW6bjXn2xdf53LevbC4399VFfOvkQ/ji0fs0b/vl1ffwvV/czHN3n8vA/r3X2WfqaF22pybpQODnJGslXRER51byeOtSXZ04/4xPcfhXLuLV19/ib787nTumPM7TL7zWXObrnz2Ax595mePOuJwtRw/l/DM/xWFf+iX/XrGKQ7/4C5YtX0G3+jruuOK/uefBOUx/4sWO+0A1qqGhkdN/cj03XfQVNhran4985nwO2mss22w2vLnM3Q/O4V/z3mDGjWcx/YkX+fq513HPVaez5SZDuf+P32quZ8zB3+GQfcY1v+/l1xYzeepTjBy24Tr/XB0pa/q7jlKxs30Z0191WjtttwnPv7SQua8sYuWqBm68eyYH771DizJbbzqMKdOeBuDZua8zavgABg/oA8Cy5SsA6N6tnu7d6klWK7ZymzH7RTbbeBCbjBxEj+7d+MR+45l432Mtyky87zE+fcguSOKDYzdlydvLeW3hkhZl7pv2NJuMHMyo4QOat33nZzfw/VMPq+o/8EopV97PSqjkJYws6a86reGD+/HK64ubX7/6+mKGD+7XoswTz77CR/fZEYDxY0az8bABbDSkP5D09KZc802emXQuk//5FDNmz113je9C5r+xhBFDV/ekNhq6IfPfWNKqzFstywzpz/wFb7Uoc+OkGRxxwE7Nryfe9xjDB/dn7FYjK9Ty6lamFHkVUcmg1lb6qxGtC0k6uSnTTKxaXsHmlFdb/wq17mxd+Lu76d+3F1Ou+SYnH7k3jz3zMg0NSXavxsZgr2POZbtDvsv47Uaz7ebD16jP1l5bPeDWX11bneTC73fFylXcMeVxDtv3AwC8+94K/u+3d/GtUw4pa1s7k3WYof10SbPSxxOSGiQNaKuuJpU8p5Yl/RURcRlwGUBdryGdZgz26oK31ugBtB6yvL3sPb5y9h+aXz96yw+Y++qiFmWWvrOcB2Y8y767jeHJf82vbKO7oI2G9F+jRz1sUL/iZRa8xbCCXvc9D85h3DYbM2RgkpnthZffYO6ri9jz6B83l9/72PO496rTGTqoaPa22lCmCe0Fp6j2I+n0TJN0a0TMaSoTEecD56flPwZ8LSLeLFZvJXtqWdJfdVoz58xl81GDGbXRQLp3q+cT+43njiktz9X07d2T7t3qATj+sN158JHneHvZewzs35u+vXsCsP563Zmwy9Y8++Lr6/wzdAXjx4zmX/PeYO4rC1mxchU33j2Tg/Zqee7zoL3Gct3tU4kIpj3+An1792wR+P5y13SO2H/10HO7LUbw7KRzeezWs3ns1rPZaEh/7vvDmV0joJEufKtsjxLynqI6Cri2VKWV7Kk1p78CXiFJf3V0BY+3TjU0NHLGT67nhl98mfp6cc2tD/PU86/x2U98GIDf3vgAW286jF99/zgaGht5+oXXOPWcawAYNqgvl3z/OOrr6qirEzfdM5O7HniiIz9OzerWrZ6fnPEpjjjtYhoagmM+/iG23Xw4V95wPwCfO2JP9t9jO+7+x2zGH/4Deq7fnYu/d2zz+999bwWTpz7Fz759VEd9hCqU6yLAIEnTC15flo7OIFuG9uSIUi/gQOArJVtXyatukg4GLmR1+qsfFStf12tIrLf1pyrWHiu/xdMu6ugmWA577LozM2ZMX6ux4/rDtorRn/llprLP/OTAGe0lM5b0n8ABEXFS+vo4YJeIOLWNskcCx0bEx0ods6L3qbWV/srMOrlsQ8ss8pyi+jQZhp7gGQVmlpNIbkkqg0ynqCT1A/YGjm29ry0OamaWWzl6ahkztAMcDkyKiGVZ6nVQM7PcyjVboFSG9vT1VcBVWet0UDOzfMp3Tq0iHNTMLBchLxJpZrXFPTUzqynVvDKJg5qZ5eNzamZWS5K5n9Ub1RzUzCy3Ko5pDmpmll+ZZhRUhIOameVTpvXUKsVBzcxyaVpPrVo5qJlZTtWdTcpBzcxyq+KY5qBmZjnJFwrMrIb4PjUzqzkOamZWU6o4plU0RZ6Z1ah1lcw4LTMhTWY8W9J9pep0T83M8inThPYsyYwl9QcuAQ6MiHmShpSq10HNzHJJFoksy/izOZkxgKSmZMZzCsocDdwYEfMAImJBqUo9/DSz3OqkTI8S2kpmPKJVma2ADSVNljRD0vGlKnVPzcxyyzH8LJahva1aWmdX7wbsBOwL9AQekvRwRDzT3gEd1MwsF+Wb0L6wvQztZEtm/HJaxzJgmaQpwDig3aDm4aeZ5VanbI8SmpMZS+pBksz41lZlbgH2lNRNUi9gV+DJYpW221OT9EvW7Ao2i4jTSjbZzGpSOS4UZElmHBFPSroTeAxoBK6IiCeK1Vts+Dm9yD4z66JEcgW0HDImMz4fOD9rne0GtYj4XeFrSRtkTftuZrWtiuezlz6nJmk3SXNIx7GSxkm6pOItM7PqlHE2QUfND81yoeBC4ABgEUBEPArsVclGmVl1k7I9OkKmWzoi4qVWUbehMs0xs2onyHJjbYfJEtRekrQ7EOll19MocUnVzGpbNS8SmWX4eQrwZZLpC68AO6avzawLyjr0rNrhZ0QsBI5ZB20xs06imoefWa5+bibpNklvSFog6RZJm62LxplZdVLGR0fIMvz8I3A9MBzYCPgzcG0lG2Vm1a2z39KhiLg6Ilaljz9QZPqUmdW25OpnWeZ+VkSxuZ8D0qd/T5fZvY4kmB0J3L4O2mZm1UhlWySyIopdKJhBEsSaWv+Fgn0BnFOpRplZdeuU2aQiYtN12RAz6xyahp/VKtOMAknbA2OA9Zu2RcTvK9UoM6tunbKn1kTSWcAEkqA2ETgIeABwUDProqo3pGW7+vlJkvXBX4uIz5IspbteRVtlZlVLgvo6ZXp0hCzDz+UR0ShplaS+wALAN9+adWHVPPzM0lObniYUvZzkiuhMYGpFW2VmVa1ccz9LZWhPs7MvSTO0z5L0vVJ1Zpn7+aX06aXpWuF9I+Kx0s01s1okMuX0LF1Phgztqfsj4qNZ6y128+34YvsiYmbWg5hZDSnfChxZMrTnVqyndkGRfQF8ZG0O3JZttxzJ9X89t9zVWgWNONHTgDuTJXPfLEs9Oc6pFUtm3FaG9l3bqGM3SY+S5AT9RkTMLnbAYjff7pOtzWbWlQioL08y4ywZ2mcCoyPiHUkHAzcDWxY7oJMZm1luZZrQXjJDe0QsjYh30ucTge6SBhVtW+5PY2Zd3rrK0C5pmNKxrqRdSGLWomKVZpomZWbWJLldY91kaCe5+f+LklYBy4FPR0TRpc+yTJMSyXLem0XE2ZJGAcMiwveqmXVR5ZosUCpDe0RcBFyUq20ZylwC7AYclb5+m+TeEjProjp14hVg14gYL+kRgIhYnI5/zawLEtCtiqdJZQlqK9M7fwNA0mCgsaKtMrOqVsUxLVNQ+wVwEzBE0o9ITtx9t6KtMrOqJZVnmlSlZJn7eY2kGSTLDwk4LCKcod2sC6vimJbp6uco4F3gtsJtETGvkg0zs+rV2Zfzvp3VCVjWBzYFnga2q2C7zKxKCTpsAcgssgw/xxa+Tlfv+EI7xc2s1nVgTs8scs8oiIiZkj5YicaYWeegKs5SkOWc2n8XvKwDxgNvVKxFZlbVaiFFXp+C56tIzrHdUJnmmFln0GmDWnrTbe+IOH0dtcfMOoFqTrxSbDnvbuks+naX9TazridJkdfRrWhfsZ7aVJLzZ7Mk3Qr8GVjWtDMibqxw28ysSnXqGQXAAJJF2T7C6vvVAnBQM+uCOvOFgiHplc8nWB3MmhRdpM3MalsVd9SKrqdWD/ROH30Knjc9zKxLEnUZHyVrKpHMuKDcByU1SPpkqTqL9dTmR8TZJVtlZl2KKE9PLWsy47TceSTLfpdUrKdWxR1MM+swgm51yvQooTmZcUSsAJqSGbd2Ksm9sQuyNK9YUNs3SwVm1rU09dTKsJx3W8mMR7Q4ljQCOBy4lIyKJTMuTypnM6s5OW7pKJahPUsy4wuBMyOiIesNv06RZ2a55TinVixDe8lkxsDOwHVpQBsEHCxpVUTc3N4BHdTMLBdRtizozcmMgVdIkhkfXVggIjZtPq50FfDXYgENHNTMLC+VZ0ZBxmTGuTmomVkuyYyC8twcUSqZcavtJ2Sp00HNzHKr5vu9HNTMLLdqnibloGZmOalzrqdmZtaWMl79rAgHNTPLrbOvp2Zmtpo66XLeZmZt8fDTzGqOe2pmVlOqN6Q5qJlZTgLq3VMzs1pSxTHNQc3M8hKq4gGog5qZ5eaempnVjOSWjuqNag5qZpZPtvwDHcZBzcxy8zQpM6sZySKRHd2K9lXzbAczq1LK+F/JekpkaJd0qKTHJM2SNF3Sh0vV6Z6ameW2DjO03wvcGhEhaQfgemCbYvU6qK2FB2c8zU8vu43GxuCw/T/ICf85ocX+O/7+CL+74T4Aeq3fg29+6TC22mwj/r1iJZ8/89esXLmKhsZG9t1jLF84Zr8O+ARdz4Tth3P2UeOpk7j2/n9x8R1Ptth/ygHb8IkPbQJAfb3YcnhfdvjqTQzsvR6/OmWP5nKjBvfmpzc/zhX3PL0um181ynSfWnOGdgBJTRnam4NaRLxTUH4D1swLuoaKBTVJVwIfBRZExPaVOk5HaWho5Lxf3cLFPzyRoQP7cfzXLmKvXbdls1FDm8tsNGwAl517Mn179+If05/mRxfdxO/+78v06N6NS//38/TquR6rVjVw4hmXsvtOWzN2m1Ed+IlqX53Ej47ZiaMu+DvzFy9n4v/sz6RZr/Ds/KXNZS696ykuvespAPYbtxGf328b3lq2greWrWD/H9zZXM+MCw7ljkdeavM4tS7nObViyYzbytC+6xrHkw4HfgwMAQ4pdcBKnlO7CjiwgvV3qNnPvMTGwwcycthAunfvxv57jeO+h+e0KDNu29H07d0LgLHbbMyChUuAZIWDXj3XA2DVqgZWNTRU9SXyWvGBzQbw4oJ3mLdwGSsbGrll6jwO+MDIdssfustobp46d43tHx4zlLkL3uGVRe9WsrnVS6Iu44M0mXHB47LCmtqofY2eWETcFBHbAIcB55RqXsWCWkRMAd6sVP0dbcGipQwd3K/59ZBB/ViwaGm75W+ZNJ3dd96q+XVDQyNHn/pz9jv2h+y645Zsv7V7aZU2rH8vXn1zdSCav/hdhvXv2WbZ9XvUM2HscCbOWLM31l6w60qU8VFClgztzdKYsrmkQcUq7fCrn5JOTq9qTF+8aGFHNyeHNYf27fW2pj/2L26ZNI1TTzioeVt9fR1//OV/MfGqbzH7mZd47sXXKtVQS7X1/bR3gmb/cSOY/uxC3lq2osX27vV17D9uBH+d3jWHnrA672fGnloxzRnaJfUgydB+a4tjSVsoXbxN0nigB7CoWKUdHtQi4rKmrumGA4sG4KoyZGA/Xn9jSfPrBQuXMHhA3zXKPfvCfM75xQ1c8D/H07/vBmvs79O7JzuN3YyHZj5T0fZa0jPbaECv5tfDN+zF628tb7Psx3cZ1WZvbJ+xw3l83pssXPpexdrZGZSjpxYRq4CmDO1PAtc3ZWhvytIOHAE8IWkWyZXSIyOi6MWCDg9qndWYrUby0quLeOW1N1m5chWTpjzKXruOaVHmtQVvcfr//oGzv34ko0cMbt6+eMk7vP1O8sf03r9XMnXWc2wycjBWWbNeeJNNh/Zh40Eb0L2+jkN3GcWkWS+vUa5Pz+58aOsh3PXImvsO23U0N/+zaw89gbKNPyNiYkRsFRGbR8SP0m2XNmVpj4jzImK7iNgxInaLiAdK1elbOt6nbvX1nH7Kxzn1e1fS0NjIx/fbmc1HD+UvEx8G4JMHf4jLr7uHJUuXcd4lNwPJkPPqC09l4Ztvc9bPrqexMWhsDPbbcyx77rJtR36cLqGhMfjuNdP549cmUFcn/vTA8zzz6lKO23sLAK6+7zkADho/kimzX2P5ioYW71+/Rz17jRnGmb+fts7bXm2qeZqUSvTk3n/F0rXABGAQ8DpwVkT8pth7ths3Pq6fOKUi7bHK2Ovbt3V0EyyHJbd/h1ULn1+riLTt2A/E72+ZnKnsLpv3nxERO6/N8fKqWE8tIo6qVN1m1sGqt6Pm4aeZ5ZOcLqveqOagZmb5eD01M6s1VRzTHNTMLC85mbGZ1ZYqjmkOamaWT8b7ajuMg5qZ5VfFUc1Bzcxy8y0dZlZTfE7NzGqH71Mzs1rj4aeZ1QzhnpqZ1ZgqjmleJNLM3ocyLRKZIZnxMWky48ckPShpXKk63VMzs9zKsUhkxmTGLwB7R8RiSQcBl9FGGr0WbVvrlplZl1OmjlpzMuOIWAE0JTNuFhEPRsTi9OXDJBmninJQM7P8yhPV2kpmPKJI+ROBO0pV6uGnmeWSc5HIYhnaMyUzBpC0D0lQ+3CpAzqomVk++W6+XVgkR0GmZMaSdgCuAA6KiKI5P8HDTzN7H8p0Ti1LMuNRwI3AcRGRKTmue2pmllN5FomMiFWSmpIZ1wNXNiUzTvdfCnwPGAhckh5zVansVA5qZpZbuWYURMREYGKrbZcWPD8JOClPnQ5qZpaLF4k0s9pTxVHNQc3McvMqHWZWU7xKh5nVDkGdg5qZ1ZbqjWoOamaWixeJNLOaU8UxzUHNzPJzT83Mako5pklVioOameVWvSHNQc3McpLzfppZrfGMAjOrLdUb0xzUzCy/Ko5pDmpmlpfKkiKvUhzUzCyXap9R4BwFZtZhMmRo30bSQ5L+LekbWep0T83McitHTy1jhvY3gdOAw7LW656ameWmjP+VkCVD+4KImAaszNo2BzUzy0erb8At9SBNZlzwOLmgprwZ2jPx8NPMcsl5oaBYMuPMGdrzcFAzs9zKNKMgU4b2vDz8NLPccgw/iymZof39cE/NzHIrRz8tS4Z2ScOA6UBfoFHSV4ExEbG0vXod1Mwsv3WXof01kmFpZg5qZpaLoKqnSSlirS82lI2kN4C5Hd2OChgELOzoRlgutfqdjY6IwWtTgaQ7SX4+WSyMiAPX5nh5VVVQq1WSphe5rG1VyN9Z5+Wrn2ZWUxzUzKymOKitG5d1dAMsN39nnZTPqZlZTXFPzcxqioOamdUUB7UKKrWqp1UfSVdKWiDpiY5ui70/DmoVUrCq50HAGOAoSWM6tlWWwVXAOr1Z1MrLQa1ySq7qadUnIqaQLCFtnZSDWuVUZFVPMyvOQa1yKrKqp3/LGNIAAANqSURBVJkV56BWORVZ1dPMinNQq5yKrOppZsU5qFVIRKwCmlb1fBK4PiJmd2yrrBRJ1wIPAVtLelnSiR3dJsvH06TMrKa4p2ZmNcVBzcxqioOamdUUBzUzqykOamZWUxzUOhFJDZJmSXpC0p8l9VqLuq6S9Mn0+RXFJttLmiBp9/dxjBclrZF1qL3trcq8k/NY35f0jbxttNrjoNa5LI+IHSNie2AFcErhznRlkNwi4qSImFOkyAQgd1Az6wgOap3X/cAWaS/q75L+CDwuqV7S+ZKmSXpM0hcAlLhI0hxJtwNDmiqSNFnSzunzAyXNlPSopHslbUISPL+W9hL3lDRY0g3pMaZJ2iN970BJkyQ9IunXZMjjLelmSTMkzZZ0cqt9F6RtuVfS4HTb5pLuTN9zv6RtyvHDtNrhDO2dkKRuJOu03Zlu2gXYPiJeSAPDkoj4oKT1gH9ImgR8ANgaGAsMBeYAV7aqdzBwObBXWteAiHhT0qXAOxHx07TcH4GfRcQDkkaRzJrYFjgLeCAizpZ0CNAiSLXjc+kxegLTJN0QEYuADYCZEfF1Sd9L6/4KSUKUUyLiWUm7ApcAH3kfP0arUQ5qnUtPSbPS5/cDvyEZFk6NiBfS7fsDOzSdLwP6AVsCewHXRkQD8Kqkv7VR/4eAKU11RUR764r9BzBGau6I9ZXUJz3GJ9L33i5pcYbPdJqkw9PnG6dtXQQ0An9Kt/8BuFFS7/Tz/rng2OtlOIZ1IQ5qncvyiNixcEP6x72scBNwakTc1arcwZRe+kgZykBy2mK3iFjeRlsyz7uTNIEkQO4WEe9Kmgys307xSI/7VuufgVkhn1OrPXcBX5TUHUDSVpI2AKYAn07PuQ0H9mnjvQ8Be0vaNH3vgHT720CfgnKTSIaCpOWagswU4Jh020HAhiXa2g9YnAa0bUh6ik3qgKbe5tEkw9qlwAuS/jM9hiSNK3EM62Ic1GrPFSTny2amyUN+TdIjvwl4Fngc+BVwX+s3RsQbJOfBbpT0KKuHf7cBhzddKABOA3ZOL0TMYfVV2B8Ae0maSTIMnleirXcC3SQ9BpwDPFywbxmwnaQZJOfMzk63HwOcmLZvNl4i3VrxKh1mVlPcUzOzmuKgZmY1xUHNzGqKg5qZ1RQHNTOrKQ5qZlZTHNTMrKb8P43vEd4H9Nx0AAAAAElFTkSuQmCC\n" }, "metadata": { "needs_background": "light" } } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "from sklearn import svm, datasets\n", "from sklearn.model_selection import train_test_split\n", "from sklearn.metrics import plot_confusion_matrix\n", "\n", "X_train = DICT_DATA['Dataset_0']['DICT_Train'][\"X\"]\n", "y_train = DICT_DATA['Dataset_0']['DICT_Train'][\"y\"]\n", "X_test = DICT_DATA['Dataset_0']['DICT_TEST'][\"X\"]\n", "y_test = DICT_DATA['Dataset_0']['DICT_TEST'][\"y\"]\n", "mdl = SVC()\n", "mdl.fit(X_train,y_train)\n", "\n", "np.set_printoptions(precision=2)\n", "\n", "# Plot non-normalized confusion matrix\n", "titles_options = [(\"Confusion matrix, without normalization\", None),\n", " (\"Normalized confusion matrix\", 'true')]\n", "for title, normalize in titles_options:\n", " disp = plot_confusion_matrix(mdl, X_test, y_test,\n", " cmap=plt.cm.Blues,\n", " normalize=normalize)\n", " disp.ax_.set_title(title)\n", "\n", " print(title)\n", " print(disp.confusion_matrix)\n", "\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "from optimalflow.autoViz import autoViz\n", "viz = autoViz(preprocess_dict=DICT_PREP,report=dyna_report)\n", "viz.clf_model_retrieval(metrics='accuracy')" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "tags": [] }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": " Dataset Encode_low_dimension Encode_high_dimension Winsorize \\\n0 Dataset_0 Low Dim_Onehot High Dim_Frequency Winsorize_0 \n1 Dataset_0 Low Dim_Onehot High Dim_Frequency Winsorize_0 \n2 Dataset_0 Low Dim_Onehot High Dim_Frequency Winsorize_0 \n\n Scale Accuracy Level cnt \n0 Scale_No Scaler 0.912 Top Accuracy 1 \n1 Scale_No Scaler 0.912 Top Accuracy 1 \n2 Scale_No Scaler 0.912 Top Accuracy 1 ", "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
DatasetEncode_low_dimensionEncode_high_dimensionWinsorizeScaleAccuracyLevelcnt
0Dataset_0Low Dim_OnehotHigh Dim_FrequencyWinsorize_0Scale_No Scaler0.912Top Accuracy1
1Dataset_0Low Dim_OnehotHigh Dim_FrequencyWinsorize_0Scale_No Scaler0.912Top Accuracy1
2Dataset_0Low Dim_OnehotHigh Dim_FrequencyWinsorize_0Scale_No Scaler0.912Top Accuracy1
\n
" }, "metadata": {}, "execution_count": 23 }, { "output_type": "execute_result", "data": { "text/plain": " Dataset Encode_low_dimension Encode_high_dimension Winsorize \\\n0 Dataset_0 Low Dim_Onehot High Dim_Frequency Winsorize_0 \n1 Dataset_0 Low Dim_Onehot High Dim_Frequency Winsorize_0 \n2 Dataset_0 Low Dim_Onehot High Dim_Frequency Winsorize_0 \n\n Scale Precision Level cnt \n0 Scale_Scale_No Scaler 0.955 Top Precision 1 \n1 Scale_Scale_No Scaler 0.955 Top Precision 1 \n2 Scale_Scale_No Scaler 0.885 High Precision 1 ", "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
DatasetEncode_low_dimensionEncode_high_dimensionWinsorizeScalePrecisionLevelcnt
0Dataset_0Low Dim_OnehotHigh Dim_FrequencyWinsorize_0Scale_Scale_No Scaler0.955Top Precision1
1Dataset_0Low Dim_OnehotHigh Dim_FrequencyWinsorize_0Scale_Scale_No Scaler0.955Top Precision1
2Dataset_0Low Dim_OnehotHigh Dim_FrequencyWinsorize_0Scale_Scale_No Scaler0.885High Precision1
\n
" }, "metadata": {}, "execution_count": 23 }, { "output_type": "execute_result", "data": { "text/plain": " Dataset Encode_low_dimension Encode_high_dimension Winsorize \\\n0 Dataset_0 Low Dim_Onehot High Dim_Frequency Winsorize_0 \n1 Dataset_0 Low Dim_Onehot High Dim_Frequency Winsorize_0 \n2 Dataset_0 Low Dim_Onehot High Dim_Frequency Winsorize_0 \n\n Scale Recall Level cnt \n0 Scale_Scale_No Scaler 0.84 High Recall 1 \n1 Scale_Scale_No Scaler 0.84 High Recall 1 \n2 Scale_Scale_No Scaler 0.92 Top Recall 1 ", "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
DatasetEncode_low_dimensionEncode_high_dimensionWinsorizeScaleRecallLevelcnt
0Dataset_0Low Dim_OnehotHigh Dim_FrequencyWinsorize_0Scale_Scale_No Scaler0.84High Recall1
1Dataset_0Low Dim_OnehotHigh Dim_FrequencyWinsorize_0Scale_Scale_No Scaler0.84High Recall1
2Dataset_0Low Dim_OnehotHigh Dim_FrequencyWinsorize_0Scale_Scale_No Scaler0.92Top Recall1
\n
" }, "metadata": {}, "execution_count": 23 } ], "source": [ "import re\n", "import pandas as pd\n", "\n", "columns = [\"Dataset\",\"Encode_low_dimension\",\"Encode_high_dimension\",\"Winsorize\",\"Scale\"]\n", "df_pp = pd.DataFrame(columns=columns)\n", "\n", "for i in list(DICT_PREPROCESSING.keys()):\n", " row_pp = [i]\n", " s = DICT_PREPROCESSING[i]\n", " ext = re.search(\"Encoded Features:(.*)']\", s).group(1)\n", " \n", " if (\"onehot_\" in ext) and (\"Frequency_\" in ext):\n", " row_pp.append('Low Dim_Onehot')\n", " row_pp.append('High Dim_Frequency')\n", " row_pp.append(re.search('winsor_(.*)-Scaler', s).group(1))\n", " row_pp.append(re.search('-Scaler_(.*)-- ', s).group(1))\n", " df_pp.loc[len(df_pp)] = row_pp\n", " elif (\"onehot_\" in ext) and (\"Mean_\" in ext):\n", " row_pp.append('Low Dim_Onehot')\n", " row_pp.append('High Dim_Mean')\n", " row_pp.append(re.search('winsor_(.*)-Scaler', s).group(1))\n", " row_pp.append(re.search('-Scaler_(.*)-- ', s).group(1))\n", " df_pp.loc[len(df_pp)] = row_pp\n", " elif (\"onehot_\" in ext) and (\"Mean_\" not in ext) and (\"Frequency_\" not in ext):\n", " row_pp.append('Low Dim_Onehot')\n", " row_pp.append('High Dim_No Encoder')\n", " row_pp.append(re.search('winsor_(.*)-Scaler', s).group(1))\n", " row_pp.append(re.search('-Scaler_(.*)-- ', s).group(1))\n", " df_pp.loc[len(df_pp)] = row_pp\n", " elif (\"Label_\" in ext) and (\"Frequency_\" in ext):\n", " row_pp.append('Low Dim_Label')\n", " row_pp.append('High Dim_Frequency')\n", " row_pp.append(re.search('winsor_(.*)-Scaler', s).group(1))\n", " row_pp.append(re.search('-Scaler_(.*)-- ', s).group(1))\n", " df_pp.loc[len(df_pp)] = row_pp\n", " elif (\"Label_\" in ext) and (\"Mean_\" in ext):\n", " row_pp.append('Low Dim_Label')\n", " row_pp.append('High Dim_Mean')\n", " row_pp.append(re.search('winsor_(.*)-Scaler', s).group(1))\n", " row_pp.append(re.search('-Scaler_(.*)-- ', s).group(1))\n", " df_pp.loc[len(df_pp)] = row_pp\n", " elif (\"Label_\" in ext) and (\"Mean_\" not in ext) and (\"Frequency_\" not in ext):\n", " row_pp.append('Low Dim_Label')\n", " row_pp.append('High Dim_No Encoder')\n", " row_pp.append(re.search('winsor_(.*)-Scaler', s).group(1))\n", " row_pp.append(re.search('-Scaler_(.*)-- ', s).group(1))\n", " df_pp.loc[len(df_pp)] = row_pp\n", " elif (\"Frequency_\" in ext) and (\"onehot_\" not in ext) and (\"Label_\" not in ext):\n", " row_pp.append('Low Dim_No Encoder')\n", " row_pp.append('High Dim_Frequency')\n", " row_pp.append(re.search('winsor_(.*)-Scaler', s).group(1))\n", " row_pp.append(re.search('-Scaler_(.*)-- ', s).group(1))\n", " df_pp.loc[len(df_pp)] = row_pp \n", " elif (\"Mean_\" in ext) and (\"onehot_\" not in ext) and (\"Label_\" not in ext):\n", " row_pp.append('Low Dim_No Encoder')\n", " row_pp.append('High Dim_Mean')\n", " row_pp.append(re.search('winsor_(.*)-Scaler', s).group(1))\n", " row_pp.append(re.search('-Scaler_(.*)-- ', s).group(1))\n", " df_pp.loc[len(df_pp)] = row_pp \n", " elif (\"Frequency_\" not in ext) and (\"Mean_\" not in ext) and (\"onehot_\" not in ext) and (\"Label_\" not in ext):\n", " row_pp.append('Low Dim_No Encoder')\n", " row_pp.append('High Dim_No Encoder')\n", " row_pp.append(re.search('winsor_(.*)-Scaler', s).group(1))\n", " row_pp.append(re.search('-Scaler_(.*)-- ', s).group(1))\n", " df_pp.loc[len(df_pp)] = row_pp \n", "\n", "\n", "df_report_Accuracy = df_pp.merge(dyna_report[['Dataset','Accuracy']], how = 'left', on = 'Dataset')\n", "bins = [0, 0.70, 0.90, 1]\n", "labels = [\"Low Accuracy\",\"High Accuracy\",\"Top Accuracy\"]\n", "df_report_Accuracy['Level'] = pd.cut(df_report_Accuracy['Accuracy'], bins=bins, labels=labels)\n", "df_report_Accuracy['cnt'] = 1\n", "df_report_Accuracy.loc[df_report_Accuracy['Scale'] == 'None','Scale'] = \"No Scaler\"\n", "df_report_Accuracy['Scale'] = 'Scale_'+df_report_Accuracy['Scale']\n", "df_report_Accuracy['Winsorize'] = 'Winsorize_' + df_report_Accuracy['Winsorize']\n", "df_report_Accuracy.head(3)\n", "\n", "df_report_Precision = df_pp.merge(dyna_report[['Dataset','Precision']], how = 'left', on = 'Dataset')\n", "bins = [0, 0.70, 0.90, 1]\n", "labels = [\"Low Precision\",\"High Precision\",\"Top Precision\"]\n", "df_report_Precision['Level'] = pd.cut(df_report_Precision['Precision'], bins=bins, labels=labels)\n", "df_report_Precision['cnt'] = 1\n", "df_report_Precision.loc[df_report_Precision['Scale'] == 'None','Scale'] = \"No Scaler\"\n", "df_report_Precision['Scale'] = 'Scale_'+df_report_Accuracy['Scale']\n", "df_report_Precision['Winsorize'] = 'Winsorize_' + df_report_Precision['Winsorize']\n", "df_report_Precision.head(3)\n", "\n", "df_report_Recall = df_pp.merge(dyna_report[['Dataset','Recall']], how = 'left', on = 'Dataset')\n", "bins = [0, 0.70, 0.90, 1]\n", "labels = [\"Low Recall\",\"High Recall\",\"Top Recall\"]\n", "df_report_Recall['Level'] = pd.cut(df_report_Recall['Recall'], bins=bins, labels=labels)\n", "df_report_Recall['cnt'] = 1\n", "df_report_Recall.loc[df_report_Recall['Scale'] == 'None','Scale'] = \"No Scaler\"\n", "df_report_Recall['Scale'] = 'Scale_'+df_report_Accuracy['Scale']\n", "df_report_Recall['Winsorize'] = 'Winsorize_' + df_report_Recall['Winsorize']\n", "df_report_Recall.head(3)\n" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": " antecedentIndex consequentIndex Total\n0 Dataset_0 Low Dim_Onehot 7.0 \n1 Dataset_1 Low Dim_Onehot 7.0 \n2 Dataset_10 Low Dim_Onehot 7.0 \n3 Dataset_100 Low Dim_Onehot 7.0 \n4 Dataset_101 Low Dim_Onehot 7.0 \n5 Dataset_102 Low Dim_Onehot 7.0 \n6 Dataset_103 Low Dim_Onehot 7.0 \n7 Dataset_104 Low Dim_Onehot 7.0 \n8 Dataset_105 Low Dim_Onehot 7.0 \n9 Dataset_106 Low Dim_Onehot 7.0 ", "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
antecedentIndexconsequentIndexTotal
0Dataset_0Low Dim_Onehot7.0
1Dataset_1Low Dim_Onehot7.0
2Dataset_10Low Dim_Onehot7.0
3Dataset_100Low Dim_Onehot7.0
4Dataset_101Low Dim_Onehot7.0
5Dataset_102Low Dim_Onehot7.0
6Dataset_103Low Dim_Onehot7.0
7Dataset_104Low Dim_Onehot7.0
8Dataset_105Low Dim_Onehot7.0
9Dataset_106Low Dim_Onehot7.0
\n
" }, "metadata": {}, "execution_count": 24 } ], "source": [ "step1_df = df_report_Accuracy.groupby(['Encode_low_dimension','Dataset'], as_index=False)['cnt'].count().rename({\"cnt\":\"Total\",\"Dataset\":\"antecedentIndex\",\"Encode_low_dimension\":\"consequentIndex\"},axis = 1)[['antecedentIndex','consequentIndex','Total']]\n", "step2_df = df_report_Accuracy.groupby(['Encode_low_dimension','Encode_high_dimension'], as_index=False)['cnt'].count().rename({\"cnt\":\"Total\",\"Encode_low_dimension\":\"antecedentIndex\",\"Encode_high_dimension\":\"consequentIndex\"},axis = 1)[['antecedentIndex','consequentIndex','Total']]\n", "step3_df = df_report_Accuracy.groupby(['Encode_high_dimension','Winsorize'], as_index=False)['cnt'].count().rename({\"cnt\":\"Total\",\"Encode_high_dimension\":\"antecedentIndex\",\"Winsorize\":\"consequentIndex\"},axis = 1)[['antecedentIndex','consequentIndex','Total']]\n", "step4_df = df_report_Accuracy.groupby(['Winsorize','Scale'], as_index=False)['cnt'].count().rename({\"cnt\":\"Total\",\"Winsorize\":\"antecedentIndex\",\"Scale\":\"consequentIndex\"},axis = 1)[['antecedentIndex','consequentIndex','Total']]\n", "step5_df = df_report_Accuracy.groupby(['Scale','Level'], as_index=False)['cnt'].count().rename({\"cnt\":\"Total\",\"Scale\":\"antecedentIndex\",\"Level\":\"consequentIndex\"},axis = 1)[['antecedentIndex','consequentIndex','Total']].dropna()\n", "integrated_df = pd.concat([step1_df,step2_df,step3_df,step4_df,step5_df],axis = 0)\n", "integrated_df.head(10)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [], "source": [ "label_df = pd.DataFrame(integrated_df['antecedentIndex'].append(integrated_df['consequentIndex']).drop_duplicates(),columns = {\"label\"})\n", "label_df['Number'] = label_df.reset_index().index\n", "label_list = list(label_df.label)\n", "\n", "\n", "\n", "source_df = pd.DataFrame(integrated_df['antecedentIndex'])\n", "source_df = source_df.merge(label_df, left_on=['antecedentIndex'], right_on = ['label'],how = 'left')\n", "source_list = list(source_df['Number'])\n", "\n", "\n", "target_df = pd.DataFrame(integrated_df['consequentIndex'])\n", "target_df = target_df.merge(label_df, left_on=['consequentIndex'], right_on = ['label'],how = 'left')\n", "target_list = list(target_df['Number'])\n", "\n", "value_list = [int(i) for i in list(integrated_df.Total)]\n" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "output_type": "display_data", "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "link": { "source": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 704, 705, 705, 706, 706, 707, 707, 708, 708, 709, 709, 709, 710, 710 ], "target": [ 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 704, 705, 706, 707, 708, 707, 708, 709, 710, 709, 710, 711, 712, 713, 712, 713 ], "value": [ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 4620, 308, 2310, 2310, 154, 154, 1232, 1232, 1232, 1232, 317, 1300, 847, 1451, 1013 ] }, "node": { "color": "rgb(71,172,55)", "label": [ "Dataset_0", "Dataset_1", "Dataset_10", "Dataset_100", "Dataset_101", "Dataset_102", "Dataset_103", "Dataset_104", "Dataset_105", "Dataset_106", "Dataset_107", "Dataset_108", "Dataset_109", "Dataset_11", "Dataset_110", "Dataset_111", "Dataset_112", "Dataset_113", "Dataset_114", "Dataset_115", "Dataset_116", "Dataset_117", "Dataset_118", "Dataset_119", "Dataset_12", "Dataset_120", "Dataset_121", "Dataset_122", "Dataset_123", "Dataset_124", "Dataset_125", "Dataset_126", "Dataset_127", "Dataset_128", "Dataset_129", "Dataset_13", "Dataset_130", "Dataset_131", "Dataset_132", "Dataset_133", "Dataset_134", "Dataset_135", "Dataset_136", "Dataset_137", "Dataset_138", "Dataset_139", "Dataset_14", "Dataset_140", "Dataset_141", "Dataset_142", "Dataset_143", "Dataset_144", "Dataset_145", "Dataset_146", "Dataset_147", "Dataset_148", "Dataset_149", "Dataset_15", "Dataset_150", "Dataset_151", "Dataset_152", "Dataset_153", "Dataset_154", "Dataset_155", "Dataset_156", "Dataset_157", "Dataset_158", "Dataset_159", "Dataset_16", "Dataset_160", "Dataset_161", "Dataset_162", "Dataset_163", "Dataset_164", "Dataset_165", "Dataset_166", "Dataset_167", "Dataset_168", "Dataset_169", "Dataset_17", "Dataset_170", "Dataset_171", "Dataset_172", "Dataset_173", "Dataset_174", "Dataset_175", "Dataset_176", "Dataset_177", "Dataset_178", "Dataset_179", "Dataset_18", "Dataset_180", "Dataset_181", "Dataset_182", "Dataset_183", "Dataset_184", "Dataset_185", "Dataset_186", "Dataset_187", "Dataset_188", "Dataset_189", "Dataset_19", "Dataset_190", "Dataset_191", "Dataset_192", "Dataset_193", "Dataset_194", "Dataset_195", "Dataset_196", "Dataset_197", "Dataset_198", "Dataset_199", "Dataset_2", "Dataset_20", "Dataset_200", "Dataset_201", "Dataset_202", "Dataset_203", "Dataset_204", "Dataset_205", "Dataset_206", "Dataset_207", "Dataset_208", "Dataset_209", "Dataset_21", "Dataset_210", "Dataset_211", "Dataset_212", "Dataset_213", "Dataset_214", "Dataset_215", "Dataset_216", "Dataset_217", "Dataset_218", "Dataset_219", "Dataset_22", "Dataset_220", "Dataset_221", "Dataset_222", "Dataset_223", "Dataset_224", "Dataset_225", "Dataset_226", "Dataset_227", "Dataset_228", "Dataset_229", "Dataset_23", "Dataset_230", "Dataset_231", "Dataset_232", "Dataset_233", "Dataset_234", "Dataset_235", "Dataset_236", "Dataset_237", "Dataset_238", "Dataset_239", "Dataset_24", "Dataset_240", "Dataset_241", "Dataset_242", "Dataset_243", "Dataset_244", "Dataset_245", "Dataset_246", "Dataset_247", "Dataset_248", "Dataset_249", "Dataset_25", "Dataset_250", "Dataset_251", "Dataset_252", "Dataset_253", "Dataset_254", "Dataset_255", "Dataset_256", "Dataset_257", "Dataset_258", "Dataset_259", "Dataset_26", "Dataset_260", "Dataset_261", "Dataset_262", "Dataset_263", "Dataset_264", "Dataset_265", "Dataset_266", "Dataset_267", "Dataset_268", "Dataset_269", "Dataset_27", "Dataset_270", "Dataset_271", "Dataset_272", "Dataset_273", "Dataset_274", "Dataset_275", "Dataset_276", "Dataset_277", "Dataset_278", "Dataset_279", "Dataset_28", "Dataset_280", "Dataset_281", "Dataset_282", "Dataset_283", "Dataset_284", "Dataset_285", "Dataset_286", "Dataset_287", "Dataset_288", "Dataset_289", "Dataset_29", "Dataset_290", "Dataset_291", "Dataset_292", "Dataset_293", "Dataset_294", "Dataset_295", "Dataset_296", "Dataset_297", "Dataset_298", "Dataset_299", "Dataset_3", "Dataset_30", "Dataset_300", "Dataset_301", "Dataset_302", "Dataset_303", "Dataset_304", "Dataset_305", "Dataset_306", "Dataset_307", "Dataset_308", "Dataset_309", "Dataset_31", "Dataset_310", "Dataset_311", "Dataset_312", "Dataset_313", "Dataset_314", "Dataset_315", "Dataset_316", "Dataset_317", "Dataset_318", "Dataset_319", "Dataset_32", "Dataset_320", "Dataset_321", "Dataset_322", "Dataset_323", "Dataset_324", "Dataset_325", "Dataset_326", "Dataset_327", "Dataset_328", "Dataset_329", "Dataset_33", "Dataset_330", "Dataset_331", "Dataset_332", "Dataset_333", "Dataset_334", "Dataset_335", "Dataset_336", "Dataset_337", "Dataset_338", "Dataset_339", "Dataset_34", "Dataset_340", "Dataset_341", "Dataset_342", "Dataset_343", "Dataset_344", "Dataset_345", "Dataset_346", "Dataset_347", "Dataset_348", "Dataset_349", "Dataset_35", "Dataset_350", "Dataset_351", "Dataset_352", "Dataset_353", "Dataset_354", "Dataset_355", "Dataset_356", "Dataset_357", "Dataset_358", "Dataset_359", "Dataset_36", "Dataset_360", "Dataset_361", "Dataset_362", "Dataset_363", "Dataset_364", "Dataset_365", "Dataset_366", "Dataset_367", "Dataset_368", "Dataset_369", "Dataset_37", "Dataset_370", "Dataset_371", "Dataset_372", "Dataset_373", "Dataset_374", "Dataset_375", "Dataset_376", "Dataset_377", "Dataset_378", "Dataset_379", "Dataset_38", "Dataset_380", "Dataset_381", "Dataset_382", "Dataset_383", "Dataset_384", "Dataset_385", "Dataset_386", "Dataset_387", "Dataset_388", "Dataset_389", "Dataset_39", "Dataset_390", "Dataset_391", "Dataset_392", "Dataset_393", "Dataset_394", "Dataset_395", "Dataset_396", "Dataset_397", "Dataset_398", "Dataset_399", "Dataset_4", "Dataset_40", "Dataset_400", "Dataset_401", "Dataset_402", "Dataset_403", "Dataset_404", "Dataset_405", "Dataset_406", "Dataset_407", "Dataset_408", "Dataset_409", "Dataset_41", "Dataset_410", "Dataset_411", "Dataset_412", "Dataset_413", "Dataset_414", "Dataset_415", "Dataset_416", "Dataset_417", "Dataset_418", "Dataset_419", "Dataset_42", "Dataset_420", "Dataset_421", "Dataset_422", "Dataset_423", "Dataset_424", "Dataset_425", "Dataset_426", "Dataset_427", "Dataset_428", "Dataset_429", "Dataset_43", "Dataset_430", "Dataset_431", "Dataset_432", "Dataset_433", "Dataset_434", "Dataset_435", "Dataset_436", "Dataset_437", "Dataset_438", "Dataset_439", "Dataset_44", "Dataset_440", "Dataset_441", "Dataset_442", "Dataset_443", "Dataset_444", "Dataset_445", "Dataset_446", "Dataset_447", "Dataset_448", "Dataset_449", "Dataset_45", "Dataset_450", "Dataset_451", "Dataset_452", "Dataset_453", "Dataset_454", "Dataset_455", "Dataset_456", "Dataset_457", "Dataset_458", "Dataset_459", "Dataset_46", "Dataset_460", "Dataset_461", "Dataset_462", "Dataset_463", "Dataset_464", "Dataset_465", "Dataset_466", "Dataset_467", "Dataset_468", "Dataset_469", "Dataset_47", "Dataset_470", "Dataset_471", "Dataset_472", "Dataset_473", "Dataset_474", "Dataset_475", "Dataset_476", "Dataset_477", "Dataset_478", "Dataset_479", "Dataset_48", "Dataset_480", "Dataset_481", "Dataset_482", "Dataset_483", "Dataset_484", "Dataset_485", "Dataset_486", "Dataset_487", "Dataset_488", "Dataset_489", "Dataset_49", "Dataset_490", "Dataset_491", "Dataset_492", "Dataset_493", "Dataset_494", "Dataset_495", "Dataset_496", "Dataset_497", "Dataset_498", "Dataset_499", "Dataset_5", "Dataset_50", "Dataset_500", "Dataset_501", "Dataset_502", "Dataset_503", "Dataset_504", "Dataset_505", "Dataset_506", "Dataset_507", "Dataset_508", "Dataset_509", "Dataset_51", "Dataset_510", "Dataset_511", "Dataset_512", "Dataset_513", "Dataset_514", "Dataset_515", "Dataset_516", "Dataset_517", "Dataset_518", "Dataset_519", "Dataset_52", "Dataset_520", "Dataset_521", "Dataset_522", "Dataset_523", "Dataset_524", "Dataset_525", "Dataset_526", "Dataset_527", "Dataset_528", "Dataset_529", "Dataset_53", "Dataset_530", "Dataset_531", "Dataset_532", "Dataset_533", "Dataset_534", "Dataset_535", "Dataset_536", "Dataset_537", "Dataset_538", "Dataset_539", "Dataset_54", "Dataset_540", "Dataset_541", "Dataset_542", "Dataset_543", "Dataset_544", "Dataset_545", "Dataset_546", "Dataset_547", "Dataset_548", "Dataset_549", "Dataset_55", "Dataset_550", "Dataset_551", "Dataset_552", "Dataset_553", "Dataset_554", "Dataset_555", "Dataset_556", "Dataset_557", "Dataset_558", "Dataset_559", "Dataset_56", "Dataset_560", "Dataset_561", "Dataset_562", "Dataset_563", "Dataset_564", "Dataset_565", "Dataset_566", "Dataset_567", "Dataset_568", "Dataset_569", "Dataset_57", "Dataset_570", "Dataset_571", "Dataset_572", "Dataset_573", "Dataset_574", "Dataset_575", "Dataset_576", "Dataset_577", "Dataset_578", "Dataset_579", "Dataset_58", "Dataset_580", "Dataset_581", "Dataset_582", "Dataset_583", "Dataset_584", "Dataset_585", "Dataset_586", "Dataset_587", "Dataset_588", "Dataset_589", "Dataset_59", "Dataset_590", "Dataset_591", "Dataset_592", "Dataset_593", "Dataset_594", "Dataset_595", "Dataset_596", "Dataset_597", "Dataset_598", "Dataset_599", "Dataset_6", "Dataset_60", "Dataset_600", "Dataset_601", "Dataset_602", "Dataset_603", "Dataset_604", "Dataset_605", "Dataset_606", "Dataset_607", "Dataset_608", "Dataset_609", "Dataset_61", "Dataset_610", "Dataset_611", "Dataset_612", "Dataset_613", "Dataset_614", "Dataset_615", "Dataset_616", "Dataset_617", "Dataset_618", "Dataset_619", "Dataset_62", "Dataset_620", "Dataset_621", "Dataset_622", "Dataset_623", "Dataset_624", "Dataset_625", "Dataset_626", "Dataset_627", "Dataset_628", "Dataset_629", "Dataset_63", "Dataset_630", "Dataset_631", "Dataset_632", "Dataset_633", "Dataset_634", "Dataset_635", "Dataset_636", "Dataset_637", "Dataset_638", "Dataset_639", "Dataset_64", "Dataset_640", "Dataset_641", "Dataset_642", "Dataset_643", "Dataset_644", "Dataset_645", "Dataset_646", "Dataset_647", "Dataset_648", "Dataset_649", "Dataset_65", "Dataset_650", "Dataset_651", "Dataset_652", "Dataset_653", "Dataset_654", "Dataset_655", "Dataset_656", "Dataset_657", "Dataset_658", "Dataset_659", "Dataset_66", "Dataset_660", "Dataset_661", "Dataset_662", "Dataset_663", "Dataset_664", "Dataset_665", "Dataset_666", "Dataset_667", "Dataset_668", "Dataset_669", "Dataset_67", "Dataset_670", "Dataset_671", "Dataset_672", "Dataset_673", "Dataset_674", "Dataset_675", "Dataset_676", "Dataset_677", "Dataset_678", "Dataset_679", "Dataset_68", "Dataset_680", "Dataset_681", "Dataset_682", "Dataset_683", "Dataset_684", "Dataset_685", "Dataset_686", "Dataset_687", "Dataset_688", "Dataset_689", "Dataset_69", "Dataset_690", "Dataset_691", "Dataset_692", "Dataset_693", "Dataset_694", "Dataset_695", "Dataset_696", "Dataset_697", "Dataset_698", "Dataset_699", "Dataset_7", "Dataset_70", "Dataset_700", "Dataset_701", "Dataset_702", "Dataset_703", "Dataset_71", "Dataset_72", "Dataset_73", "Dataset_74", "Dataset_75", "Dataset_76", "Dataset_77", "Dataset_78", "Dataset_79", "Dataset_8", "Dataset_80", "Dataset_81", "Dataset_82", "Dataset_83", "Dataset_84", "Dataset_85", "Dataset_86", "Dataset_87", "Dataset_88", "Dataset_89", "Dataset_9", "Dataset_90", "Dataset_91", "Dataset_92", "Dataset_93", "Dataset_94", "Dataset_95", "Dataset_96", "Dataset_97", "Dataset_98", "Dataset_99", "Low Dim_Onehot", "High Dim_Frequency", "High Dim_Mean", "Winsorize_0", "Winsorize_1", "Scale_No Scaler", "Scale_standard", "Low Accuracy", "High Accuracy", "Top Accuracy" ], "line": { "color": "rgb(25,100,90)", "width": 0.5 }, "pad": 15, "thickness": 10 }, "type": "sankey" } ], "layout": { "font": { "size": 8 }, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "Pipeline Cluster Traversal Experiments - autoViz Model Retrieval Diagram ©Tony Dong" } } } }, "metadata": {} }, { "output_type": "execute_result", "data": { "text/plain": "'temp-plot.html'" }, "metadata": {}, "execution_count": 26 } ], "source": [ "import plotly.graph_objects as go\n", "\n", "fig = go.Figure(data=[go.Sankey(\n", " node = dict(\n", " pad = 15,\n", " thickness = 10,\n", " line = dict(color = 'rgb(25,100,90)', width = 0.5),\n", " label = label_list,\n", " color = 'rgb(71,172,55)'\n", " ),\n", " link = dict(\n", " source = source_list, \n", " target = target_list,\n", " value = value_list\n", " ))])\n", "\n", "fig.update_layout(title = 'Pipeline Cluster Traversal Experiments - autoViz Model Retrieval Diagram ©Tony Dong', font_size=8)\n", "from plotly.offline import plot\n", "plot(fig)\n" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "tags": [] }, "outputs": [ { "output_type": "stream", "name": "stderr", "text": "'pip' is not recognized as an internal or external command,\noperable program or batch file.\n" } ], "source": [] }, { "cell_type": "code", "execution_count": 13, "metadata": { "tags": [] }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "[('learning_rate', 1),\n ('max_depth', 2),\n ('n_estimators', 50),\n ('random_state', 13)]" }, "metadata": {}, "execution_count": 13 } ], "source": [ "a = {'learning_rate': 1, 'max_depth': 2, 'n_estimators': 50, 'random_state': 13}\n", "lis = a.items()\n", "[i for i in lis]" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 3, "metadata": { "tags": [] }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": "Dash is running on http://127.0.0.1:8050/\n\nDash is running on http://127.0.0.1:8050/\n\nDash is running on http://127.0.0.1:8050/\n\n Warning: This is a development server. Do not use app.run_server\n Warning: This is a development server. Do not use app.run_server\n Warning: This is a development server. Do not use app.run_server\n in production, use a production WSGI server like gunicorn instead.\n\n in production, use a production WSGI server like gunicorn instead.\n\n in production, use a production WSGI server like gunicorn instead.\n\n * Serving Flask app \"__main__\" (lazy loading)\n * Environment: production\n WARNING: This is a development server. Do not use it in a production deployment.\n Use a production WSGI server instead.\n * Debug mode: on\n" }, { "output_type": "error", "ename": "SystemExit", "evalue": "2", "traceback": [ "An exception has occurred, use %tb to see the full traceback.\n", "\u001b[1;31mSystemExit\u001b[0m\u001b[1;31m:\u001b[0m 2\n" ] } ], "source": [] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "from sklearn import datasets, linear_model\n", "from sklearn.metrics import mean_squared_error, r2_score\n", "import pandas as pd\n", "from IPython.core.interactiveshell import InteractiveShell\n", "InteractiveShell.ast_node_interactivity = \"all\"\n", "import pandas as pd\n", "pd.set_option('display.max_columns',None,'display.max_rows',None)\n", "pd.set_option('max_colwidth', -1)\n", "\n", "iris_X, iris_y = datasets.load_iris(return_X_y=True,as_frame=True)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": " sepal length (cm) sepal width (cm) petal length (cm) petal width (cm)\n0 5.1 3.5 1.4 0.2 \n1 4.9 3.0 1.4 0.2 \n2 4.7 3.2 1.3 0.2 \n3 4.6 3.1 1.5 0.2 \n4 5.0 3.6 1.4 0.2 ", "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
sepal length (cm)sepal width (cm)petal length (cm)petal width (cm)
05.13.51.40.2
14.93.01.40.2
24.73.21.30.2
34.63.11.50.2
45.03.61.40.2
\n
" }, "metadata": {}, "execution_count": 10 }, { "output_type": "execute_result", "data": { "text/plain": "0 0\n1 0\n2 0\n3 0\n4 0\nName: target, dtype: int32" }, "metadata": {}, "execution_count": 10 } ], "source": [ "iris_X.head()\n", "iris_y.head()" ] } ] }