Skip to content

Commit f381113

Browse files
committed
Refactored codes in Assignment 1 to ensure number of features and columns needed are loaded as required. Added time elapsed logs to debug the issue of long training process.
1 parent f62fb16 commit f381113

File tree

34 files changed

+97
-155
lines changed

34 files changed

+97
-155
lines changed

‎Assignment 1 - Model Comparison/CSI5155 Assignment 1 Evaluation Part - Kelvin Mock 300453668.ipynb‎

Lines changed: 50 additions & 50 deletions
Large diffs are not rendered by default.

‎Assignment 1 - Model Comparison/CSI5155 Assignment 1 Modelling Part- Kelvin Mock 300453668.ipynb‎

Lines changed: 29 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -1678,7 +1678,7 @@
16781678
"name": "stdout",
16791679
"output_type": "stream",
16801680
"text": [
1681-
"{'decision tree': DecisionTreeClassifier(criterion='entropy', splitter='random'), 'random forest': RandomForestClassifier(criterion='entropy'), 'SVM': SVC(), 'gradient boosting': GradientBoostingClassifier(), 'multi-layer perceptron (MLP)': MLPClassifier(hidden_layer_sizes=3769, learning_rate='adaptive', max_iter=500), 'k��nearest neighbour (k-NN) classifier': KNeighborsClassifier(n_jobs=-1, n_neighbors=7, weights='distance')}\n"
1681+
"{'decision tree': DecisionTreeClassifier(criterion='entropy', splitter='random'), 'random forest': RandomForestClassifier(criterion='entropy'), 'SVM': SVC(), 'gradient boosting': GradientBoostingClassifier(), 'multi-layer perceptron (MLP)': MLPClassifier(hidden_layer_sizes=3769, learning_rate='adaptive', max_iter=500), 'k‐nearest neighbour (k-NN) classifier': KNeighborsClassifier(n_jobs=-1, weights='distance')}\n"
16821682
]
16831683
}
16841684
],
@@ -1742,15 +1742,15 @@
17421742
"output_type": "stream",
17431743
"text": [
17441744
"Number of samples in the Chocolate dataset: 1885\n",
1745-
"Number of features in a sample: 13\n",
1745+
"Number of features in a sample: 12\n",
17461746
"Number of Labels in the Chocolate dataset: 1885\n",
17471747
"Unique Labels: ['non-user' 'user']\n"
17481748
]
17491749
}
17501750
],
17511751
"source": [
17521752
"# Convert the dataset to a numpy array\n",
1753-
"np_samples_choco = df_dataset_choco.iloc[:, :-1].to_numpy();\n",
1753+
"np_samples_choco = df_dataset_choco.iloc[:, 1:-1].to_numpy();\n",
17541754
"np_labels_choco = df_dataset_choco.iloc[:,-1].to_numpy();\n",
17551755
"print(\"Number of samples in the Chocolate dataset: \" + str(len(np_samples_choco)));\n",
17561756
"print(\"Number of features in a sample: \" + str(len(np_samples_choco[random.randint(0, len(np_samples_choco)-1)])));\n",
@@ -1768,13 +1768,13 @@
17681768
"name": "stdout",
17691769
"output_type": "stream",
17701770
"text": [
1771-
"Columns for chocolate dataset: ['ID' 'age' 'gender' 'education' 'country' 'ethnicity' 'nscore' 'escore'\n",
1772-
" 'oscore' 'ascore' 'cscore' 'impuslive' 'ss' 'choc']\n"
1771+
"Columns for chocolate dataset: ['age' 'gender' 'education' 'country' 'ethnicity' 'nscore' 'escore'\n",
1772+
" 'oscore' 'ascore' 'cscore' 'impuslive' 'ss']\n"
17731773
]
17741774
}
17751775
],
17761776
"source": [
1777-
"columns_choco = df_dataset_choco.columns.to_numpy();\n",
1777+
"columns_choco = df_dataset_choco.columns.to_numpy()[1:-1];\n",
17781778
"print(f\"Columns for chocolate dataset: {columns_choco}\");"
17791779
]
17801780
},
@@ -1858,7 +1858,7 @@
18581858
"joblib.dump(choco_y_test, constants.choco_dataset + '_test-set_labels.pkl');\n",
18591859
"# Save the columns array\n",
18601860
"# Note: We don't use the first ID column and the last labels column\n",
1861-
"joblib.dump(columns_choco[1:-1], constants.choco_dataset + \"_columns.pkl\");"
1861+
"joblib.dump(columns_choco, constants.choco_dataset + \"_columns.pkl\");"
18621862
]
18631863
},
18641864
{
@@ -1917,7 +1917,7 @@
19171917
},
19181918
{
19191919
"cell_type": "code",
1920-
"execution_count": null,
1920+
"execution_count": 20,
19211921
"id": "59089074",
19221922
"metadata": {},
19231923
"outputs": [],
@@ -1939,40 +1939,14 @@
19391939
"name": "stdout",
19401940
"output_type": "stream",
19411941
"text": [
1942-
"Training all models\n"
1943-
]
1944-
},
1945-
{
1946-
"name": "stderr",
1947-
"output_type": "stream",
1948-
"text": [
1949-
"c:\\Users\\kelvi\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:702: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
1950-
" warnings.warn(\n",
1951-
"c:\\Users\\kelvi\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:702: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
1952-
" warnings.warn(\n",
1953-
"c:\\Users\\kelvi\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:702: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
1954-
" warnings.warn(\n",
1955-
"c:\\Users\\kelvi\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:702: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
1956-
" warnings.warn(\n",
1957-
"c:\\Users\\kelvi\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:702: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
1958-
" warnings.warn(\n",
1959-
"c:\\Users\\kelvi\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:702: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
1960-
" warnings.warn(\n",
1961-
"c:\\Users\\kelvi\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:702: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
1962-
" warnings.warn(\n",
1963-
"c:\\Users\\kelvi\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:702: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
1964-
" warnings.warn(\n",
1965-
"c:\\Users\\kelvi\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:702: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
1966-
" warnings.warn(\n",
1967-
"c:\\Users\\kelvi\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:702: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
1968-
" warnings.warn(\n"
1969-
]
1970-
},
1971-
{
1972-
"name": "stdout",
1973-
"output_type": "stream",
1974-
"text": [
1975-
"All models are completely trained.\n"
1942+
"Training all models\n",
1943+
"Completed training decision tree, in 0:00:00.105568s\n",
1944+
"Completed training random forest, in 0:00:05.836123s\n",
1945+
"Completed training SVM, in 0:00:06.196589s\n",
1946+
"Completed training gradient boosting, in 0:00:12.179263s\n",
1947+
"Completed training MLP, in 0:01:06.500467s\n",
1948+
"Completed training KNN, in 0:01:11.832748s\n",
1949+
"All models are completely trained, within 0:01:11.933396s\n"
19761950
]
19771951
}
19781952
],
@@ -2007,7 +1981,7 @@
20071981
"name": "stdout",
20081982
"output_type": "stream",
20091983
"text": [
2010-
"{'decision tree': DecisionTreeClassifier(criterion='entropy', splitter='random'), 'random forest': RandomForestClassifier(criterion='entropy'), 'SVM': SVC(), 'gradient boosting': GradientBoostingClassifier(), 'multi-layer perceptron (MLP)': MLPClassifier(hidden_layer_sizes=3769, learning_rate='adaptive', max_iter=500), 'k‐nearest neighbour (k-NN) classifier': KNeighborsClassifier(n_jobs=-1, n_neighbors=7, weights='distance')}\n"
1984+
"{'decision tree': DecisionTreeClassifier(criterion='entropy', splitter='random'), 'random forest': RandomForestClassifier(criterion='entropy'), 'SVM': SVC(), 'gradient boosting': GradientBoostingClassifier(), 'multi-layer perceptron (MLP)': MLPClassifier(hidden_layer_sizes=3769, learning_rate='adaptive', max_iter=500), 'k‐nearest neighbour (k-NN) classifier': KNeighborsClassifier(n_jobs=-1, weights='distance')}\n"
20111985
]
20121986
}
20131987
],
@@ -2095,13 +2069,13 @@
20952069
"name": "stdout",
20962070
"output_type": "stream",
20972071
"text": [
2098-
"Columns for mushroom dataset: ['ID' 'age' 'gender' 'education' 'country' 'ethnicity' 'nscore' 'escore'\n",
2099-
" 'oscore' 'ascore' 'cscore' 'impuslive' 'ss' 'mushrooms']\n"
2072+
"Columns for mushroom dataset: ['age' 'gender' 'education' 'country' 'ethnicity' 'nscore' 'escore'\n",
2073+
" 'oscore' 'ascore' 'cscore' 'impuslive' 'ss']\n"
21002074
]
21012075
}
21022076
],
21032077
"source": [
2104-
"columns_mush = df_dataset_mushrooms.columns.to_numpy();\n",
2078+
"columns_mush = df_dataset_mushrooms.columns.to_numpy()[1:-1];\n",
21052079
"print(f\"Columns for mushroom dataset: {columns_mush}\");"
21062080
]
21072081
},
@@ -2197,7 +2171,7 @@
21972171
"joblib.dump(mush_y_test, constants.mushrooms_dataset + '_test-set_labels.pkl');\n",
21982172
"# Save the column names\n",
21992173
"# Note: We don't use the first ID column and the last labels column\n",
2200-
"joblib.dump(columns_mush[1:-1], constants.mushrooms_dataset + \"_columns.pkl\");"
2174+
"joblib.dump(columns_mush, constants.mushrooms_dataset + \"_columns.pkl\");"
22012175
]
22022176
},
22032177
{
@@ -2266,56 +2240,14 @@
22662240
"name": "stdout",
22672241
"output_type": "stream",
22682242
"text": [
2269-
"Training all models\n"
2270-
]
2271-
},
2272-
{
2273-
"name": "stderr",
2274-
"output_type": "stream",
2275-
"text": [
2276-
"c:\\Users\\kelvi\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:702: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (500) reached and the optimization hasn't converged yet.\n",
2277-
" warnings.warn(\n",
2278-
"c:\\Users\\kelvi\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:702: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (500) reached and the optimization hasn't converged yet.\n",
2279-
" warnings.warn(\n",
2280-
"c:\\Users\\kelvi\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:702: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (500) reached and the optimization hasn't converged yet.\n",
2281-
" warnings.warn(\n",
2282-
"c:\\Users\\kelvi\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:702: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
2283-
" warnings.warn(\n",
2284-
"c:\\Users\\kelvi\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:702: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
2285-
" warnings.warn(\n",
2286-
"c:\\Users\\kelvi\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:702: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
2287-
" warnings.warn(\n",
2288-
"c:\\Users\\kelvi\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:702: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
2289-
" warnings.warn(\n",
2290-
"c:\\Users\\kelvi\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:702: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
2291-
" warnings.warn(\n",
2292-
"c:\\Users\\kelvi\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:702: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
2293-
" warnings.warn(\n",
2294-
"c:\\Users\\kelvi\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:702: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
2295-
" warnings.warn(\n",
2296-
"c:\\Users\\kelvi\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:702: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
2297-
" warnings.warn(\n",
2298-
"c:\\Users\\kelvi\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:702: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
2299-
" warnings.warn(\n",
2300-
"c:\\Users\\kelvi\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:702: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
2301-
" warnings.warn(\n",
2302-
"c:\\Users\\kelvi\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:702: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
2303-
" warnings.warn(\n",
2304-
"c:\\Users\\kelvi\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:702: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
2305-
" warnings.warn(\n",
2306-
"c:\\Users\\kelvi\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:702: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
2307-
" warnings.warn(\n",
2308-
"c:\\Users\\kelvi\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:702: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
2309-
" warnings.warn(\n",
2310-
"c:\\Users\\kelvi\\AppData\\Local\\Programs\\Python\\Python310\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:702: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (200) reached and the optimization hasn't converged yet.\n",
2311-
" warnings.warn(\n"
2312-
]
2313-
},
2314-
{
2315-
"name": "stdout",
2316-
"output_type": "stream",
2317-
"text": [
2318-
"All models are completely trained.\n"
2243+
"Training all models\n",
2244+
"Completed training decision tree, in 0:00:00.060516s\n",
2245+
"Completed training random forest, in 0:00:05.128584s\n",
2246+
"Completed training SVM, in 0:00:07.143005s\n",
2247+
"Completed training gradient boosting, in 0:00:15.253115s\n",
2248+
"Completed training MLP, in 0:02:04.641959s\n",
2249+
"Completed training KNN, in 0:02:06.566441s\n",
2250+
"All models are completely trained, within 0:02:06.704161s\n"
23192251
]
23202252
}
23212253
],
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

0 commit comments

Comments
 (0)