Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
C
COMP3217 code and result
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Package registry
Model registry
Operate
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
yl1r22
COMP3217 code and result
Commits
7f8d6c84
Commit
7f8d6c84
authored
2 years ago
by
yl1r22
Browse files
Options
Downloads
Patches
Plain Diff
Upload New File
parent
0bd01afc
No related branches found
No related tags found
No related merge requests found
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
AI_Part2.ipynb
+281
-0
281 additions, 0 deletions
AI_Part2.ipynb
with
281 additions
and
0 deletions
AI_Part2.ipynb
0 → 100644
+
281
−
0
View file @
7f8d6c84
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "6064e0b1",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" 0 1 2 3 4 5 \\\n",
"0 70.399324 127673.0908 -49.572308 127648.0176 -169.578319 127723.2374 \n",
"\n",
" 6 7 8 9 ... 119 120 121 122 123 \\\n",
"0 65.689611 605.91099 -57.003571 626.78553 ... 0 0 0 0 0 \n",
"\n",
" 124 125 126 127 128 \n",
"0 0 0 0 0 0 \n",
"\n",
"[1 rows x 129 columns]\n"
]
}
],
"source": [
"#Import scikit-learn dataset library\n",
"#from sklearn import datasets\n",
"from sklearn.model_selection import train_test_split\n",
"from sklearn.model_selection import cross_val_score\n",
"from sklearn import svm, metrics\n",
"from sklearn.ensemble import RandomForestClassifier\n",
"from joblib import dump\n",
"from sklearn.metrics import confusion_matrix, f1_score\n",
"from sklearn.metrics import roc_curve, auc\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"import pandas as pd\n",
"import numpy as np\n",
"#Read training datasets\n",
"df = pd.read_csv('H:\\AI classification\\TrainingDataMulti.csv', header=None)\n",
"\n",
"# Print the head of csv document to check\n",
"print(df.head(1))\n",
"\n",
"# The first 128 columns are features\n",
"df_feature = df.iloc[:, :128]\n",
"\n",
"# the 129th column is labels\n",
"df_label = df.iloc[:, 128]\n",
"\n",
"\n",
"# Split dataset into training set and test set\n",
"X_train, X_test, y_train, y_test = train_test_split(df_feature, df_label, test_size=0.2) # 80% training and 20% test\n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "cdc65331",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Accuracy: 0.94\n"
]
}
],
"source": [
"# Create a Randomforest Classifier \n",
"clf1 = RandomForestClassifier(n_estimators=200, max_features=78)#\n",
"\n",
"# Train the model using the training sets\n",
"clf1.fit(X_train, y_train)\n",
"\n",
"# #Predict the response for test dataset\n",
"y_pred1 = clf1.predict(X_test)\n",
"\n",
"print(\"Accuracy:\",metrics.accuracy_score(y_test, y_pred1))\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "ae7d5339",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Scores [0.95 0.93541667 0.93541667 0.93020833 0.93541667]\n",
"Mean Scores 0.9372916666666666\n"
]
}
],
"source": [
"# Using Cross-validation to evaluate classifier\n",
"scores1 = cross_val_score(clf1, X_train, y_train, cv=5)\n",
"\n",
"#Print model's Scores\n",
"print(\"Scores\", scores1)\n",
"print(\"Mean Scores\", np.mean(scores1))"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "253d7c20",
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"['H:/AI classification/RFC_part2.pkl']"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#Dump the model\n",
"dump(clf1, 'H:/AI classification/RFC_part2.pkl')"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "943bcea4",
"metadata": {},
"outputs": [],
"source": [
"# Load testing dataset\n",
"test_data=pd.read_csv('H:\\AI classification\\TestingDataMulti.csv', header=None)\n",
"\n",
"# Predict Testing dataset\n",
"predictions = clf1.predict(test_data)\n",
"\n",
"# Convert predictions into dataframe format\n",
"predictions_df = pd.DataFrame(predictions)\n",
"\n",
"#Write the predictions to testing dataset\n",
"result = pd.concat([test_data,predictions_df], axis=1)\n",
"\n",
"#Output a csv document\n",
"result.to_csv('H:/AI classification/test_pre2.csv', index = False, header = False)\n"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "8a8a1e04",
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[2 2 2 2 2 2 1 1 2 2 2 1 1 1 2 2 2 1 1 1 1 1 2 2 2 2 0 2 2 0 0 0 0 1 1 1 1\n",
" 1 1 1 1 2 1 2 2 2 2 2 2 1 2 2 2 2 2 2 2 1 1 2 1 1 1 1 1 1 0 0 0 0 0 0 0 0\n",
" 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0]\n"
]
}
],
"source": [
"# print precdictions\n",
"print(predictions)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "1521abed",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Confusion Matrix:\n",
"[[580 2 6]\n",
" [ 12 274 20]\n",
" [ 6 26 274]]\n"
]
}
],
"source": [
"# Create and print confusion matrix\n",
"conf_mat = confusion_matrix(y_test, y_pred1)\n",
"print(\"Confusion Matrix:\")\n",
"print(conf_mat)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "52bac3fa",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"F1 Score: 0.9396875958397739\n"
]
}
],
"source": [
"# Calculating f1 score\n",
"f1 = f1_score(y_test, y_pred1, average='weighted')\n",
"print(\"F1 Score:\", f1)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "d63a6856",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 720x504 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#Plotting confusion matixs\n",
"plt.figure(figsize=(10, 7))\n",
"sns.heatmap(conf_mat, annot=True, fmt='d', cmap='YlGnBu')\n",
"plt.xlabel('Predicted')\n",
"plt.ylabel('Actual')\n",
"plt.show()\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "131cc0be",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"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.9.12"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
%% Cell type:code id:6064e0b1 tags:
```
python
#Import scikit-learn dataset library
#from sklearn import datasets
from
sklearn.model_selection
import
train_test_split
from
sklearn.model_selection
import
cross_val_score
from
sklearn
import
svm
,
metrics
from
sklearn.ensemble
import
RandomForestClassifier
from
joblib
import
dump
from
sklearn.metrics
import
confusion_matrix
,
f1_score
from
sklearn.metrics
import
roc_curve
,
auc
import
matplotlib.pyplot
as
plt
import
seaborn
as
sns
import
pandas
as
pd
import
numpy
as
np
#Read training datasets
df
=
pd
.
read_csv
(
'
H:\AI classification\TrainingDataMulti.csv
'
,
header
=
None
)
# Print the head of csv document to check
print
(
df
.
head
(
1
))
# The first 128 columns are features
df_feature
=
df
.
iloc
[:,
:
128
]
# the 129th column is labels
df_label
=
df
.
iloc
[:,
128
]
# Split dataset into training set and test set
X_train
,
X_test
,
y_train
,
y_test
=
train_test_split
(
df_feature
,
df_label
,
test_size
=
0.2
)
# 80% training and 20% test
```
%% Output
0 1 2 3 4 5 \
0 70.399324 127673.0908 -49.572308 127648.0176 -169.578319 127723.2374
6 7 8 9 ... 119 120 121 122 123 \
0 65.689611 605.91099 -57.003571 626.78553 ... 0 0 0 0 0
124 125 126 127 128
0 0 0 0 0 0
[1 rows x 129 columns]
%% Cell type:code id:cdc65331 tags:
```
python
# Create a Randomforest Classifier
clf1
=
RandomForestClassifier
(
n_estimators
=
200
,
max_features
=
78
)
#
# Train the model using the training sets
clf1
.
fit
(
X_train
,
y_train
)
# #Predict the response for test dataset
y_pred1
=
clf1
.
predict
(
X_test
)
print
(
"
Accuracy:
"
,
metrics
.
accuracy_score
(
y_test
,
y_pred1
))
```
%% Output
Accuracy: 0.94
%% Cell type:code id:ae7d5339 tags:
```
python
# Using Cross-validation to evaluate classifier
scores1
=
cross_val_score
(
clf1
,
X_train
,
y_train
,
cv
=
5
)
#Print model's Scores
print
(
"
Scores
"
,
scores1
)
print
(
"
Mean Scores
"
,
np
.
mean
(
scores1
))
```
%% Output
Scores [0.95 0.93541667 0.93541667 0.93020833 0.93541667]
Mean Scores 0.9372916666666666
%% Cell type:code id:253d7c20 tags:
```
python
#Dump the model
dump
(
clf1
,
'
H:/AI classification/RFC_part2.pkl
'
)
```
%% Output
['H:/AI classification/RFC_part2.pkl']
%% Cell type:code id:943bcea4 tags:
```
python
# Load testing dataset
test_data
=
pd
.
read_csv
(
'
H:\AI classification\TestingDataMulti.csv
'
,
header
=
None
)
# Predict Testing dataset
predictions
=
clf1
.
predict
(
test_data
)
# Convert predictions into dataframe format
predictions_df
=
pd
.
DataFrame
(
predictions
)
#Write the predictions to testing dataset
result
=
pd
.
concat
([
test_data
,
predictions_df
],
axis
=
1
)
#Output a csv document
result
.
to_csv
(
'
H:/AI classification/test_pre2.csv
'
,
index
=
False
,
header
=
False
)
```
%% Cell type:code id:8a8a1e04 tags:
```
python
# print precdictions
print
(
predictions
)
```
%% Output
[2 2 2 2 2 2 1 1 2 2 2 1 1 1 2 2 2 1 1 1 1 1 2 2 2 2 0 2 2 0 0 0 0 1 1 1 1
1 1 1 1 2 1 2 2 2 2 2 2 1 2 2 2 2 2 2 2 1 1 2 1 1 1 1 1 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0]
%% Cell type:code id:1521abed tags:
```
python
# Create and print confusion matrix
conf_mat
=
confusion_matrix
(
y_test
,
y_pred1
)
print
(
"
Confusion Matrix:
"
)
print
(
conf_mat
)
```
%% Output
Confusion Matrix:
[[580 2 6]
[ 12 274 20]
[ 6 26 274]]
%% Cell type:code id:52bac3fa tags:
```
python
# Calculating f1 score
f1
=
f1_score
(
y_test
,
y_pred1
,
average
=
'
weighted
'
)
print
(
"
F1 Score:
"
,
f1
)
```
%% Output
F1 Score: 0.9396875958397739
%% Cell type:code id:d63a6856 tags:
```
python
#Plotting confusion matixs
plt
.
figure
(
figsize
=
(
10
,
7
))
sns
.
heatmap
(
conf_mat
,
annot
=
True
,
fmt
=
'
d
'
,
cmap
=
'
YlGnBu
'
)
plt
.
xlabel
(
'
Predicted
'
)
plt
.
ylabel
(
'
Actual
'
)
plt
.
show
()
```
%% Output
%% Cell type:code id:131cc0be tags:
```
python
```
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment