{
"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 Model_Name | \n Accuracy | \n Precision | \n Recall | \n Latency | \n Best_Parameters | \n Dataset | \n
\n \n \n \n 0 | \n lgr | \n 0.895 | \n 0.880 | \n 0.88 | \n 3.0 | \n [('C', 1000), ('random_state', 13)] | \n Dataset_0 | \n
\n \n 0 | \n svm | \n 0.912 | \n 0.885 | \n 0.92 | \n 3.0 | \n [('C', 0.1), ('kernel', 'linear')] | \n Dataset_0 | \n
\n \n 0 | \n mlp | \n 0.439 | \n 0.439 | \n 1.00 | \n 3.0 | \n [('activation', 'relu'), ('hidden_layer_sizes', (10,)), ('learning_rate', 'constant'), ('random_state', 13), ('solver', 'sgd')] | \n Dataset_0 | \n
\n \n 0 | \n rf | \n 0.877 | \n 0.821 | \n 0.92 | \n 12.0 | \n [('max_depth', 2), ('n_estimators', 50), ('random_state', 13)] | \n Dataset_0 | \n
\n \n 0 | \n ada | \n 0.912 | \n 0.955 | \n 0.84 | \n 17.0 | \n [('learning_rate', 1), ('n_estimators', 50), ('random_state', 13)] | \n Dataset_0 | \n
\n \n 0 | \n gb | \n 0.877 | \n 0.846 | \n 0.88 | \n 3.0 | \n [('learning_rate', 1), ('max_depth', 2), ('n_estimators', 50), ('random_state', 13)] | \n Dataset_0 | \n
\n \n 0 | \n xgb | \n 0.912 | \n 0.955 | \n 0.84 | \n 2.0 | \n [('learning_rate', 1), ('max_depth', 2), ('n_estimators', 50), ('random_state', 13)] | \n Dataset_0 | \n
\n \n
\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 Dataset | \n Model_Name | \n Best_Parameters | \n Accuracy | \n Precision | \n Recall | \n Latency | \n
\n \n \n \n 3943 | \n Dataset_563 | \n mlp | \n [('activation', 'relu'), ('hidden_layer_sizes', (10,)), ('learning_rate', 'constant'), ('random_state', 13), ('solver', 'sgd')] | \n 0.947 | \n 0.958 | \n 0.92 | \n 3.5 | \n
\n \n 4312 | \n Dataset_616 | \n lgr | \n [('C', 100), ('random_state', 13)] | \n 0.947 | \n 0.923 | \n 0.96 | \n 3.0 | \n
\n \n 3481 | \n Dataset_497 | \n mlp | \n [('activation', 'relu'), ('hidden_layer_sizes', (10,)), ('learning_rate', 'constant'), ('random_state', 13), ('solver', 'sgd')] | \n 0.930 | \n 1.000 | \n 0.84 | \n 3.0 | \n
\n \n 2546 | \n Dataset_363 | \n gb | \n [('learning_rate', 1), ('max_depth', 2), ('n_estimators', 50), ('random_state', 13)] | \n 0.930 | \n 0.957 | \n 0.88 | \n 1.0 | \n
\n \n 1139 | \n Dataset_162 | \n gb | \n [('learning_rate', 1), ('max_depth', 2), ('n_estimators', 50), ('random_state', 13)] | \n 0.930 | \n 0.957 | \n 0.88 | \n 2.0 | \n
\n \n 3901 | \n Dataset_557 | \n mlp | \n [('activation', 'relu'), ('hidden_layer_sizes', (10,)), ('learning_rate', 'constant'), ('random_state', 13), ('solver', 'sgd')] | \n 0.930 | \n 0.957 | \n 0.88 | \n 2.0 | \n
\n \n 1314 | \n Dataset_187 | \n gb | \n [('learning_rate', 1), ('max_depth', 2), ('n_estimators', 50), ('random_state', 13)] | \n 0.930 | \n 0.957 | \n 0.88 | \n 3.0 | \n
\n \n 1412 | \n Dataset_201 | \n gb | \n [('learning_rate', 1), ('max_depth', 2), ('n_estimators', 50), ('random_state', 13)] | \n 0.930 | \n 0.957 | \n 0.88 | \n 3.0 | \n
\n \n 1678 | \n Dataset_239 | \n gb | \n [('learning_rate', 1), ('max_depth', 2), ('n_estimators', 50), ('random_state', 13)] | \n 0.930 | \n 0.957 | \n 0.88 | \n 3.0 | \n
\n \n 1916 | \n Dataset_273 | \n gb | \n [('learning_rate', 1), ('max_depth', 2), ('n_estimators', 50), ('random_state', 13)] | \n 0.930 | \n 0.957 | \n 0.88 | \n 3.0 | \n
\n \n 2644 | \n Dataset_377 | \n gb | \n [('learning_rate', 1), ('max_depth', 2), ('n_estimators', 50), ('random_state', 13)] | \n 0.930 | \n 0.957 | \n 0.88 | \n 3.0 | \n
\n \n 2840 | \n Dataset_405 | \n gb | \n [('learning_rate', 1), ('max_depth', 2), ('n_estimators', 50), ('random_state', 13)] | \n 0.930 | \n 0.957 | \n 0.88 | \n 3.0 | \n
\n \n 2851 | \n Dataset_407 | \n mlp | \n [('activation', 'relu'), ('hidden_layer_sizes', (10,)), ('learning_rate', 'constant'), ('random_state', 13), ('solver', 'sgd')] | \n 0.930 | \n 0.957 | \n 0.88 | \n 3.0 | \n
\n \n 2994 | \n Dataset_427 | \n gb | \n [('learning_rate', 1), ('max_depth', 2), ('n_estimators', 50), ('random_state', 13)] | \n 0.930 | \n 0.957 | \n 0.88 | \n 3.0 | \n
\n \n 3176 | \n Dataset_453 | \n gb | \n [('learning_rate', 1), ('max_depth', 2), ('n_estimators', 50), ('random_state', 13)] | \n 0.930 | \n 0.957 | \n 0.88 | \n 3.0 | \n
\n \n
\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 concavity_mean | \n concave points_mean | \n perimeter_mean | \n radius_mean | \n texture_mean | \n
\n \n \n \n 264 | \n 0.09061 | \n 0.065270 | \n 111.60 | \n 17.19 | \n 22.07 | \n
\n \n 231 | \n 0.01633 | \n 0.006588 | \n 71.76 | \n 11.32 | \n 26.60 | \n
\n \n 197 | \n 0.11030 | \n 0.057780 | \n 117.40 | \n 18.08 | \n 21.84 | \n
\n \n 172 | \n 0.20320 | \n 0.109700 | \n 102.50 | \n 15.46 | \n 13.04 | \n
\n \n 54 | \n 0.05253 | \n 0.033340 | \n 97.26 | \n 15.10 | \n 22.02 | \n
\n \n 33 | \n 0.16570 | \n 0.075930 | \n 127.90 | \n 19.27 | \n 26.47 | \n
\n \n 68 | \n 0.25080 | \n 0.043750 | \n 60.73 | \n 9.72 | \n 17.33 | \n
\n \n 237 | \n 0.09042 | \n 0.060220 | \n 132.50 | \n 20.48 | \n 21.46 | \n
\n \n 51 | \n 0.01857 | \n 0.017230 | \n 87.21 | \n 13.64 | \n 16.34 | \n
\n \n 196 | \n 0.13850 | \n 0.065260 | \n 90.63 | \n 13.77 | \n 22.29 | \n
\n \n
\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 concave points_mean | \n concavity_mean | \n radius_mean | \n area_mean | \n perimeter_mean | \n texture_mean | \n compactness_mean | \n smoothness_mean | \n
\n \n \n \n 204 | \n 0.03821 | \n 0.08005 | \n 12.470 | \n 481.9 | \n 81.09 | \n 18.60 | \n 0.10580 | \n 0.09965 | \n
\n \n 198 | \n 0.06772 | \n 0.11140 | \n 19.180 | \n 1148.0 | \n 127.50 | \n 22.49 | \n 0.14280 | \n 0.08523 | \n
\n \n 93 | \n 0.02780 | \n 0.03974 | \n 13.450 | \n 555.1 | \n 86.60 | \n 18.30 | \n 0.08165 | \n 0.10220 | \n
\n \n 78 | \n 0.12790 | \n 0.25080 | \n 20.180 | \n 1245.0 | \n 135.10 | \n 23.97 | \n 0.22330 | \n 0.12150 | \n
\n \n 128 | \n 0.08534 | \n 0.11380 | \n 15.100 | \n 674.5 | \n 99.58 | \n 16.39 | \n 0.18070 | \n 0.11500 | \n
\n \n 268 | \n 0.01615 | \n 0.03900 | \n 12.870 | \n 512.2 | \n 82.38 | \n 16.21 | \n 0.06219 | \n 0.09425 | \n
\n \n 273 | \n 0.01407 | \n 0.01103 | \n 9.742 | \n 289.9 | \n 61.50 | \n 15.67 | \n 0.04689 | \n 0.09037 | \n
\n \n 10 | \n 0.03323 | \n 0.03299 | \n 16.020 | \n 797.8 | \n 102.70 | \n 23.24 | \n 0.06669 | \n 0.08206 | \n
\n \n 282 | \n 0.09464 | \n 0.16260 | \n 19.400 | \n 1145.0 | \n 127.20 | \n 18.18 | \n 0.14420 | \n 0.10370 | \n
\n \n 38 | \n 0.02899 | \n 0.02398 | \n 14.990 | \n 698.8 | \n 95.54 | \n 25.20 | \n 0.05131 | \n 0.09387 | \n
\n \n
\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",
"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",
"image/png": "iVBORw0KGgoAAAANSUhEUgAAATIAAAEWCAYAAADl+xvlAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAc7klEQVR4nO3debwcVZ338c/3JiyRLBCSQIhhlYCgEjUDCILBFdAZwBXICDogIqCj4OP2oEZRxHlcmJFljMBDQAHlBSgKgohAQGEgwYQtshogJIQkbAkE8Ca/+aNOQ+dy7+2qm+7bVfd+369XvdK19Knf7er+5dSpU6cUEZiZVVlHuwMwM1tXTmRmVnlOZGZWeU5kZlZ5TmRmVnlOZGZWeZVNZJKGSfqtpGckXbwO5UyT9IdmxtYukvaSdG9Z9idpa0khaWh/xVQFXT8XSb+XdHgL9nO3pKnNLreM1Op+ZJIOBY4HdgRWAHOB70bETetY7seBzwJ7RETnOgdacpIC2D4iHmh3LD2RtAA4MiL+mOa3Bv4OrNfsYyTpXGBhRJzYzHL7Qys+lyp/Hs3Q0hqZpOOBU4GTgc2ALYEzgAOaUPxWwH2DIYnl4VpP6/izrYCIaMkEjAJWAh/pZZsNyBLdojSdCmyQ1k0FFgInAE8Ai4FPpnXfAl4C/pH2cQQwHfh5XdlbAwEMTfOfAB4iqxX+HZhWt/ymuvftAdwGPJP+3aNu3fXAScCfUzl/AMb08LfV4v9SXfwHAvsD9wFPAl+r235X4Gbg6bTtacD6ad2s9Lc8l/7ej9WV/2XgceD82rL0nu3SPt6S5rcAlgFTcxy7mcAJ6fWEtO9j0vzrUrnqsr/zgTXAqhTjl+qOweHAI2n//zfn8V/ruKRlkfZ/VDr2L6V9/baHvyOAo4H7gaeA03nlLKQDOBF4OB2f84BRXb47R6S4Z6V4/gz8OB2jh9J35RPAo6mMw+v2/X7gr8Czaf30Xr6b15PVZAHmpb+pNkXtmAEXp2P9TIpp57S8288DWAC8e11+a1WZWpnI9gU6awerh22+DdwCjAPGAn8BTqr7cDvTNuuRJYDngU3S+umsnbi6zr/8ZQE2Sl+oHdK68XVfgk+QfjDA6PSF/3h63yFpftO6L9yDwCRgWJo/pZdE1gl8I8X/KWApcAEwAtgZeAHYNm3/VmD3tN+tgfnA57v+iLsp//vpSzqMusSStvlUKuc1wNXAD3Ieu3+r+zEcmv7mX9at+039D6DufQtIP5wux+BnKb5dgBeB1+c4/i8fl+4+A+Bc4DsN/o4AfgdsTHY2sBTYt+7veADYFhgOXAqc3yXu88i+O8NSPJ3AJ4EhwHfIktzp6fN/L9l/bsPrPps3kiXMNwFLgAO7fjfrvldHdhP/UcDfgJF1MY/glaQ0t27bV30erJ3I+vxbq8LUykQ2DXi8wTYPAvvXzb8PWFD34a6iLhGS/W+xe3o9nWKJ7GngQ8CwLjF8glcS2ceBW7usvxn4RN0X7sS6dccAV/Xwt9XiH5LmR6R4dqvbZk7ty93N+z8PXNblR9k1kb0EbNhl2cIu5VwO3AncQfofOMex2y59Xh3AfwOf5pWa10zg+O72R8+J7LV1y24FDs5x/F8+Lt19BuRPZG+vm/8V8JX0+lpSLTPN70BWq6n9RxKk/2Tq4rm/bv6NaZvN6pYtByb3EMupwI+7fjfrvldHdtn+7WTf90k9lLdxKqNWi3zV58HaiazPv7UqTK1sI1sOjGnQvrAFWdW+5uG07OUyYu02sOfJ/vcsJCKeIzsdOxpYLOkKSTvmiKcW04S6+ccLxLM8Ilan16vSv0vq1q+qvV/SJEm/k/S4pGfJ2hXH9FI2wNKIeKHBNj8D3gD8JCJebLAtABHxINkpymRgL7JazSJJOwDvAG7IU06dnj6zRse/GYrseyhZW27No13K6nrsiIiejudukq6TtFTSM2TfvUbHk/TeiWRJ9/CIuC8tGyLpFEkPpu/HgrR5rjLpp99au7Qykd1Mdup0YC/bLCJrtK/ZMi3ri+fITqFqNq9fGRFXR8R7yE4r/0b2A28UTy2mx/oYUxFnksW1fUSMBL5G1g7Vm+htpaThZDWBs4HpkkYXiOcG4MNk7XSPpfnDgE3IrjwXjqcbvR3/tY6npLWOZx/2lWffnaydrNZlHxeQ1YYnRsQosppto+OJpGHAr4FTI+L3dasOJbtI9m6y9ueta2/JGWszf2ul07JEFhHPkLUPnS7pQEmvkbSepP0k/Ufa7ELgREljJY1J2/+8j7ucC+wtaUtJo4Cv1lZI2kzSv0jaiKyNZiWwupsyrgQmSTpU0lBJHwN2IquRtNoIsna8lam2+Jku65eQtecU8Z/AnIg4EriC7McEgKTpkq7v5b03AMeRNSpDdvrzWbLTve4+u77E2NvxnwfsLGmypA3Jmg7WZV/d7fsLkrZJCf9ksnbAZl0FHwE8GREvSNqVLBHlcQ7wt4j4jy7LR5B9d5eTJfiTu6xv9Hk087dWOi3tfhERPyLrQ3YiWUPro2Q/jl+nTb4DzCZrv7kTuD0t68u+rgF+mcqaw9rJp4Psiswisitu7yBr3+paxnLgA2nb5WRX3j4QEcv6ElNBXyT7sq8gqy3+ssv66cBMSU9L+mijwiQdQHbB5ei06HjgLZKmpfmJZFfhenID2Y+nlshuIvsBzerxHfA9sh/L05K+2ChGejn+6ZTq28Afya46du13eDawU9rXrynuHLIrrbPIrmK/QJaom+UY4NuSVpAljV/lfN/BwEGSVtZNe5FdeHiY7OzgHrKG+3qNPo+m/dbKqOUdYq2cJM0F3pWSt1mlOZGZWeVV9l5LM6s2SRPTld356b7Qf0/Lp0t6TNLcNO3fsCzXyMysHSSNB8ZHxO2SRpD6VQIfBVZGxA/yluV7yMysLSJiMdntUETECknzWbvPZm6lqpFp6LDQ+iPaHYYV8ObXb9nuEKyAhx9ewLJlyxr2Z+vNkJFbRXSuarwhEKuW3k12RbhmRkTM6LpdGhFkFlnn7ePJ7qR4luxK6wkR8VRv+ylVIut4zbjYYIeGPQusRJ667bR2h2AF7LnbFObMmb1OiazI7/SFuafPiYgpvW2T+vHdQDa816WSNiMbYCDIBmkYHxH/1lsZPrU0s4IEas51QknrAZcAv4iIS2Ht274k/YwcHdKdyMysGAEdQ9a9GElkHXnnp87zteXjU/sZwEHAXY3KciIzs+K0TmenNXuSjThzZ+qgDdk9xodImkx2armAbPSVXjmRmVlBzTm1jGy4++4y4pVFy3IiM7PimlMjaxonMjMrRjStsb9ZnMjMrCC5RmZmA0ATrlo2kxOZmRXUvH5kzeJEZmbFCJ9amtkA4BqZmVWbTy3NrOoEDHFjv5lVndvIzKzafGppZgOBa2RmVnmukZlZpcm3KJnZQOBblMys2tzYb2YDgU8tzazSPB6ZmVWfTy3NbCBwY7+ZVZ7byMys0uRTSzMbCFwjM7OqkxOZmVVZNtK1E5mZVZmEOpzIzKziXCMzs8pzIjOzynMiM7NqU5pKxInMzAoRco3MzKqvo8M9+82s4lwjM7NqcxuZmQ0ErpGZWaW5sd/MBgTfomRm1abynVqW6xqqmVWCpFxTgzImSrpO0nxJd0v697R8tKRrJN2f/t2kUTxOZGZWWDMSGdAJnBARrwd2B46VtBPwFeDaiNgeuDbN98qJzMwKqTX2r2sii4jFEXF7er0CmA9MAA4AZqbNZgIHNorJbWRmVlyTm8gkbQ28GfgfYLOIWAxZspM0rtH7ncjMrBgVukVpjKTZdfMzImLGWsVJw4FLgM9HxLN9uZDgRGZmhRVINssiYkov5axHlsR+ERGXpsVLJI1PtbHxwBONduI2MjMrTjmn3orIsuHZwPyI+FHdqsuBw9Prw4HfNArHNbImmrDZxpw5/TDGbTqSNRHMvOzP/PSi6/nyp/bnsAP3YPnTKwE46fTLueYv97Q5Wutq4eNP8Znp5/HE8mfpkDj8oD05+pB92h1WKTWpH9mewMeBOyXNTcu+BpwC/ErSEcAjwEcaFdTSRCZpX+A/gSHAWRFxSiv3126dnWs48dRLuePehQx/zQZcd96Xuf5//gbAmRdex2k/v7bNEVpvhg7t4Duf/yC77DiRFc+9wD6HfZ+pu+3IjtuOb3dopZKza0VDEXETPdfb3lWkrJYlMklDgNOB9wALgdskXR4RA7YqsmT5syxZ/iwAK59/kfsWPM74sRu3OSrLa/Mxo9h8zCgARmy0IZO23pzFS592IuvGYOrZvyvwQEQ8FBEvAReR9Q8ZFCaOH82bdngtc+5eAMCnPrI3N13wVX7y9WmMGjGsvcFZQ48sWs4d9y7krTtv3e5QSkkdyjX1l1YmsgnAo3XzC9OytUg6StJsSbOjc1ULw+k/Gw1bn/O+fyRf/dElrHjuBc655EbefNB09pp2CkuWPct3Pv/BdodovVj5/Isc9uWz+N7xH2LkcP+n050m9exvmlYmsu7+injVgogZETElIqZoaPW/NEOHdDDz+5/i4qtm87vr5gGw9MkVrFkTRAQzf/1n3rrzVm2O0nryj87VHP7ln/GRfafwz++c3O5wykmDK5EtBCbWzb8WWNTC/ZXCT74+jfsWPM4ZF/zp5WWbbTry5dcfmLoL8x9c3I7QrIGI4LMn/YJJW2/OsdMKtTUPKgKkfFN/aeVVy9uA7SVtAzwGHAwc2sL9td3uu2zLwe/fjbvvf4xZv8jucz3p9Mv50Pum8MZJryUieGTxk3zh5AvbHKl155Z5D/HLK29lp9dtwV6Hfg+Arx/7L7x3z53bHFnZDKKBFSOiU9JxwNVk3S/OiYi7W7W/Mrhl3kNs8k/HvWq5+4xVw9smb8dTt53W7jAqoWMwDawYEVcCV7ZyH2bWz/r5tDEP9+w3s0LEIKuRmdnA5BqZmVXeoGnsN7MBym1kZlZ1QkUGVuwXTmRmVphrZGZWeW4jM7NqcxuZmVVddq9luTKZE5mZFVayPOZEZmbFuWe/mVWbfGppZhVXG4+sTJzIzKygQTQemZkNXCXLY05kZlaQ3NhvZhXnfmRmNiA4kZlZ5ZUsjzmRmVlxrpGZWbX5pnEzq7psYMVyZTInMjMrrKNkVTInMjMrrGR5zInMzIqRbxo3s4GgZE1kPScyST8Boqf1EfG5lkRkZqVXpcb+2f0WhZlVhsiuXJZJj4ksImbWz0vaKCKea31IZlZ2JauQ0fApm5LeJukeYH6a30XSGS2PzMzKSdl4ZHmm/pLnccGnAu8DlgNExDxg71YGZWblJuWb+kuu555HxKNdFq1uQSxmVgEi6xCbZ2pYlnSOpCck3VW3bLqkxyTNTdP+jcrJk8gelbQHEJLWl/RF0mmmmQ1OHR3KNeVwLrBvN8t/HBGT03Rlw3hy7Oho4FhgAvAYMDnNm9kglPe0Ms+pZUTMAp5c15gadoiNiGXAtHXdkZkNHAXutRwjqb4r14yImJHjfcdJOoysG9gJEfFUr/E0Kk3StpJ+K2lpOpf9jaRtcwRiZgOUck7AsoiYUjflSWJnAtuRnf0tBn7Y6A15Ti0vAH4FjAe2AC4GLszxPjMboFrZ/SIilkTE6ohYA/wM2LXRe/IkMkXE+RHRmaaf08utS2Y2sGVXLfNNfSpfGl83exBwV0/b1vR2r+Xo9PI6SV8BLiJLYB8DruhbiGZWeWrewIqSLgSmkrWlLQS+CUyVNJks3ywAPt2onN4a++ekgmoR1xcWwEmFozazAaFZvfYj4pBuFp9dtJze7rXcpmhhZjbw1U4tyyTXeGSS3gDsBGxYWxYR57UqKDMrt8oNrCjpm2TnsDsBVwL7ATcBTmRmg1S50li+q5YfBt4FPB4RnwR2ATZoaVRmVloSDOlQrqm/5Dm1XBURayR1ShoJPAG4Q6zZIFa5U0tgtqSNyTqmzQFWAre2NCozK7WS5bFc91oek17+t6SrgJERcUdrwzKzshL5hujpT711iH1Lb+si4vbWhGRmpdbPgybm0VuNrLcbNQN4Z5NjYcfXTeD8y05udrHWQptMPbHdIVgBL977WFPKqUwbWUTs05+BmFk1CBhSlURmZtaTSvbsNzOr50RmZpWWDWNdrkyWZ4RYSfpXSd9I81tKajjQmZkNXK0cj6xP8eTY5gzgbUBtuI0VwOkti8jMSq9sz7XMc2q5W0S8RdJfASLiKUnrtzguMyspAUNLdmqZJ5H9Q9IQ0vDWksYCa1oalZmVWsnyWK5E9l/AZcA4Sd8lGw3DvSDNBinlfIp4f8pzr+UvJM0hG8pHwIER4SeNmw1iJctjuQZW3BJ4Hvht/bKIeKSVgZlZeVWxH9kVvPIQkg2BbYB7gZ1bGJeZlZSgXwdNzCPPqeUb6+fTqBgNH89kZgNUP/cRy6Nwz/6IuF3SP7UiGDOrBpVs1P48bWTH1812AG8BlrYsIjMrtao+Dm5E3etOsjazS1oTjplVQaUSWeoIOzwi/k8/xWNmFVC2m8Z7G+p6aER09jbktZkNPtnj4Nodxdp6q5HdStYeNlfS5cDFwHO1lRFxaYtjM7OSqlzPfmA0sJxsjP5af7IAnMjMBqGqNfaPS1cs7+KVBFYTLY3KzEqtZBWyXhPZEGA4dNthxInMbNASHRXqR7Y4Ir7db5GYWSWIatXIShaqmZWCYGjJGsl6S2Tv6rcozKwyKlUji4gn+zMQM6uOKna/MDNbS8nymBOZmRUj8j1+rT85kZlZMSrfqWXZEquZlVzWs1+5poZlSedIekLSXXXLRku6RtL96d9NGpXjRGZmhSnnlMO5wL5dln0FuDYitgeuTfO9ciIzs8Ka9aTxiJgFdO0hcQAwM72eCRzYqBy3kZlZQSoyHtkYSbPr5mdExIwG79ksIhYDRMRiSeMa7cSJzMwKKXjVcllETGlZMIkTmZkV1uKrlkskjU+1sfHAEw3jaWU0ZjYAKRvqOs/UR5cDh6fXhwO/afQGJzIzK6R2aplnaliWdCFwM7CDpIWSjgBOAd4j6X7gPWm+Vz61NLPCmvXwkYg4pIdVhQatcCIzs8LK1a/ficzMChIwpGS3KDmRmVlhJctjTmRmVpRQyU4uncjMrDDXyMys0rLuF+XKZE5kZlZMzhvC+5MTmZkVVraBFZ3IzKyQbGDFdkexNicyMyvMVy3NrPJKdmbpRNZKjzy2lG/84KKX5xcteZIjD3k3H/3nPdsYldWbMHYUZ37tQ4wbPZw1a4KZv5vNTy+5+eX1x31sT076zH5sd8DJPPnM822MtFwGTY1M0jnAB4AnIuINrdpPmW05YSzn/vizAKxevYaDjjyFvXfbqc1RWb3O1as58Yzfc8f9ixk+bH2um3EM189+gHsfXsqEsaOY+tbX8ejjT7c7zFIpYxtZK4fxOZdXP1Rg0Jpz54NM2Hw0m49r+EAY60dLnlzJHfcvBmDlqpe47+GljB8zEoDvHrcf0396NUG0M8TyyfkEpf68stmyRNbDQwUGrT/eeAfv3muXdodhvZi4+ca8afvxzJm/kP322JHFS5/lrgcfb3dYpdTEpyg1RdsHVpR0lKTZkmY/tXx5u8NpiX/8o5M/3zafffYYlGfYlbDRsPU571uH8NXTrqRz9RqO/9d38L3/f227wyqlZj7XslnansgiYkZETImIKZtsumm7w2mJW26/j0nbbsHojUe0OxTrxtAhHcz81iFc/Md5/O7Ge9hmi9FsNX4Tbjz7OOZddAJbjB3JDTOOYdzo4e0OtTTKViPzVct+8Meb5vm0ssR+8qWDuO+RpZxx8V8AuOfvS5h00CujK8+76AT2+fSZvmpZbxA19hvwwosvcdvcB3jH7ju3OxTrxu5v3IqD3/dm9n7ztsw661hmnXUs79ltUrvDKr2ynVq2svvFhcBUsgd0LgS+GRFnt2p/ZbXhButz5flfb3cY1oNb7nyYTaae2Os2uxz8w36KpjpKViFrXSLr5aECZlZ1JctkbiMzs0KyhvxyZTInMjMrxuORmdlAULI85kRmZkWpaQ/obRYnMjMrrGR5zInMzIrp7177eTiRmVlxJctkTmRmVpi7X5hZ5bmNzMyqzf3IzGwg8KmlmVWacI3MzAaAkuUxJzIz64OSZTInMjMrrD8HTczDiczMCitXGnMiM7O+KFkmcyIzs0KaObCipAXACmA10BkRU/pSjhOZmRXT/A6x+0TEsnUpwInMzAor2ZmlHwdnZkVlAyvmmcieoja7bjqqS2EB/EHSnG7W5eYamZkVVuDUclmDdq89I2KRpHHANZL+FhGzisbjGpmZFaICUyMRsSj9+wRwGbBrX2JyIjOz4pqQySRtJGlE7TXwXuCuvoTjU0szK6xJ3S82Ay5LbWlDgQsi4qq+FOREZmaFNaP7RUQ8BOyy7iU5kZlZUYKOkvW/cCIzsz4oVyZzIjOzQjywopkNCCXLY05kZlaca2RmVnkqWSZzIjOzwsqVxpzIzKwg+bmWZjYQ+LmWZlZ95cpjTmRmVlzJ8pgTmZkVJT8OzsyqrYw9+z0emZlVnmtkZlZY2WpkTmRmVpi7X5hZtblDrJlVXRkb+53IzKwwn1qaWeW5RmZmlVeyPOZEZmZ9ULJM5kRmZoUISneLkiKi3TG8TNJS4OF2x9ECY4Bl7Q7CChmox2yriBi7LgVIuors88ljWUTsuy77y6NUiWygkjQ7Iqa0Ow7Lz8esWnyvpZlVnhOZmVWeE1n/mNHuAKwwH7MKcRuZmVWea2RmVnlOZGZWeU5kLSRpX0n3SnpA0lfaHY81JukcSU9IuqvdsVh+TmQtImkIcDqwH7ATcIikndobleVwLtDyDpzWXE5krbMr8EBEPBQRLwEXAQe0OSZrICJmAU+2Ow4rxomsdSYAj9bNL0zLzKzJnMhap7u7at3XxawFnMhaZyEwsW7+tcCiNsViNqA5kbXObcD2kraRtD5wMHB5m2MyG5CcyFokIjqB44CrgfnAryLi7vZGZY1IuhC4GdhB0kJJR7Q7JmvMtyiZWeW5RmZmledEZmaV50RmZpXnRGZmledEZmaV50RWIZJWS5or6S5JF0t6zTqUda6kD6fXZ/V2Q7ukqZL26MM+Fkh61dN2elreZZuVBfc1XdIXi8ZoA4MTWbWsiojJEfEG4CXg6PqVacSNwiLiyIi4p5dNpgKFE5lZf3Eiq64bgdel2tJ1ki4A7pQ0RNL/k3SbpDskfRpAmdMk3SPpCmBcrSBJ10uakl7vK+l2SfMkXStpa7KE+YVUG9xL0lhJl6R93CZpz/TeTSX9QdJfJf2UHM+jlvRrSXMk3S3pqC7rfphiuVbS2LRsO0lXpffcKGnHZnyYVnER4akiE7Ay/TsU+A3wGbLa0nPANmndUcCJ6fUGwGxgG+CDwDXAEGAL4Gngw2m764EpwFiyETtqZY1O/04HvlgXxwXA29PrLYH56fV/Ad9Ir99PdpP8mG7+jgW15XX7GAbcBWya5gOYll5/Azgtvb4W2D693g34U3cxehpc09A+5j9rj2GS5qbXNwJnk53y3RoRf0/L3wu8qdb+BYwCtgf2Bi6MiNXAIkl/6qb83YFZtbIioqdxud4N7CS9XOEaKWlE2scH03uvkPRUjr/pc5IOSq8npliXA2uAX6blPwculTQ8/b0X1+17gxz7sAHOiaxaVkXE5PoF6Qf9XP0i4LMRcXWX7fan8TBCyrENZE0Sb4uIVd3EkvueN0lTyZLi2yLieUnXAxv2sHmk/T7d9TMwcxvZwHM18BlJ6wFImiRpI2AWcHBqQxsP7NPNe28G3iFpm/Te0Wn5CmBE3XZ/ILshnrRdLbHMAqalZfsBmzSIdRTwVEpiO5LVCGs6gFqt8lDgpoh4Fvi7pI+kfUjSLg32YYOAE9nAcxZwD3B7eoDGT8lq3pcB9wN3AmcCN3R9Y0QsJWtju1TSPF45tfstcFCtsR/4HDAlXUy4h1eunn4L2FvS7WSnuI80iPUqYKikO4CTgFvq1j0H7CxpDvBO4Ntp+TTgiBTf3Xj4cMOjX5jZAOAamZlVnhOZmVWeE5mZVZ4TmZlVnhOZmVWeE5mZVZ4TmZlV3v8C1CV41qLb/ygAAAAASUVORK5CYII=\n"
},
"metadata": {
"needs_background": "light"
}
},
{
"output_type": "display_data",
"data": {
"text/plain": "",
"image/svg+xml": "\r\n\r\n\r\n\r\n",
"image/png": "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\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 Dataset | \n Encode_low_dimension | \n Encode_high_dimension | \n Winsorize | \n Scale | \n Accuracy | \n Level | \n cnt | \n
\n \n \n \n 0 | \n Dataset_0 | \n Low Dim_Onehot | \n High Dim_Frequency | \n Winsorize_0 | \n Scale_No Scaler | \n 0.912 | \n Top Accuracy | \n 1 | \n
\n \n 1 | \n Dataset_0 | \n Low Dim_Onehot | \n High Dim_Frequency | \n Winsorize_0 | \n Scale_No Scaler | \n 0.912 | \n Top Accuracy | \n 1 | \n
\n \n 2 | \n Dataset_0 | \n Low Dim_Onehot | \n High Dim_Frequency | \n Winsorize_0 | \n Scale_No Scaler | \n 0.912 | \n Top Accuracy | \n 1 | \n
\n \n
\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 Dataset | \n Encode_low_dimension | \n Encode_high_dimension | \n Winsorize | \n Scale | \n Precision | \n Level | \n cnt | \n
\n \n \n \n 0 | \n Dataset_0 | \n Low Dim_Onehot | \n High Dim_Frequency | \n Winsorize_0 | \n Scale_Scale_No Scaler | \n 0.955 | \n Top Precision | \n 1 | \n
\n \n 1 | \n Dataset_0 | \n Low Dim_Onehot | \n High Dim_Frequency | \n Winsorize_0 | \n Scale_Scale_No Scaler | \n 0.955 | \n Top Precision | \n 1 | \n
\n \n 2 | \n Dataset_0 | \n Low Dim_Onehot | \n High Dim_Frequency | \n Winsorize_0 | \n Scale_Scale_No Scaler | \n 0.885 | \n High Precision | \n 1 | \n
\n \n
\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 Dataset | \n Encode_low_dimension | \n Encode_high_dimension | \n Winsorize | \n Scale | \n Recall | \n Level | \n cnt | \n
\n \n \n \n 0 | \n Dataset_0 | \n Low Dim_Onehot | \n High Dim_Frequency | \n Winsorize_0 | \n Scale_Scale_No Scaler | \n 0.84 | \n High Recall | \n 1 | \n
\n \n 1 | \n Dataset_0 | \n Low Dim_Onehot | \n High Dim_Frequency | \n Winsorize_0 | \n Scale_Scale_No Scaler | \n 0.84 | \n High Recall | \n 1 | \n
\n \n 2 | \n Dataset_0 | \n Low Dim_Onehot | \n High Dim_Frequency | \n Winsorize_0 | \n Scale_Scale_No Scaler | \n 0.92 | \n Top Recall | \n 1 | \n
\n \n
\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 antecedentIndex | \n consequentIndex | \n Total | \n
\n \n \n \n 0 | \n Dataset_0 | \n Low Dim_Onehot | \n 7.0 | \n
\n \n 1 | \n Dataset_1 | \n Low Dim_Onehot | \n 7.0 | \n
\n \n 2 | \n Dataset_10 | \n Low Dim_Onehot | \n 7.0 | \n
\n \n 3 | \n Dataset_100 | \n Low Dim_Onehot | \n 7.0 | \n
\n \n 4 | \n Dataset_101 | \n Low Dim_Onehot | \n 7.0 | \n
\n \n 5 | \n Dataset_102 | \n Low Dim_Onehot | \n 7.0 | \n
\n \n 6 | \n Dataset_103 | \n Low Dim_Onehot | \n 7.0 | \n
\n \n 7 | \n Dataset_104 | \n Low Dim_Onehot | \n 7.0 | \n
\n \n 8 | \n Dataset_105 | \n Low Dim_Onehot | \n 7.0 | \n
\n \n 9 | \n Dataset_106 | \n Low Dim_Onehot | \n 7.0 | \n
\n \n
\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 sepal length (cm) | \n sepal width (cm) | \n petal length (cm) | \n petal width (cm) | \n
\n \n \n \n 0 | \n 5.1 | \n 3.5 | \n 1.4 | \n 0.2 | \n
\n \n 1 | \n 4.9 | \n 3.0 | \n 1.4 | \n 0.2 | \n
\n \n 2 | \n 4.7 | \n 3.2 | \n 1.3 | \n 0.2 | \n
\n \n 3 | \n 4.6 | \n 3.1 | \n 1.5 | \n 0.2 | \n
\n \n 4 | \n 5.0 | \n 3.6 | \n 1.4 | \n 0.2 | \n
\n \n
\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()"
]
}
]
}