Skip to main content
captialized i's and question readability
Source Link

I use a MLP to classify three different classes A, B, C. The loss function I use is categorical cross entropy and the optimiser is adam. To estimate my models performance I use 10-fold Cross Validation. On average i get 60% accuracy score but I need it to be higher. The confusion matrix for the classes A,B,C, I get is the following:

Class A Class B Class C
14440 8118 11229
6045 21863 5879
6207 4264 23315

The amount of data points I have for each class is sufficiently large and equal (the ratio is 1:1:1). I was trying to see how the model would fare, if instead of 3 classes it classified two classes. Each time I remove from the dataset the data points of the class I wont be using. So when I train it to classify data points between class B and C I get around 80% accuracy scoreand the following confusion matrix:

Class B Class C
26456 7331
6255 27531

However when I train the model to classify data points between A and C i get around 69.5% and the following confusion matrix:

Class A Class C
22180 11607
9659 24127

For the classes A and B I get around 72% accuracy score and the following confusion matrix:

Class A Class B
23971 9816
9616 24170

In all cases the precision score, recall score and f1 score are more or less equal to the accuracy score.

  • Could the reason why I get low accuracy when I classify the 3 classes be class A?
  • Maybe some data points from class A are too similar with data points from class B and others are too similar with data points of class C?
  • If

    If so what could I do to improve the score provided that I can't improve the dataset.

I use a MLP to classify three different classes A, B, C. The loss function I use is categorical cross entropy and the optimiser is adam. To estimate my models performance I use 10-fold Cross Validation. On average i get 60% accuracy score but I need it to be higher. The confusion matrix for the classes A,B,C, I get is the following:

Class A Class B Class C
14440 8118 11229
6045 21863 5879
6207 4264 23315

The amount of data points I have for each class is sufficiently large and equal (the ratio is 1:1:1). I was trying to see how the model would fare, if instead of 3 classes it classified two classes. Each time I remove from the dataset the data points of the class I wont be using. So when I train it to classify data points between class B and C I get around 80% accuracy scoreand the following confusion matrix:

Class B Class C
26456 7331
6255 27531

However when I train the model to classify data points between A and C i get around 69.5% and the following confusion matrix:

Class A Class C
22180 11607
9659 24127

For the classes A and B I get around 72% accuracy score and the following confusion matrix:

Class A Class B
23971 9816
9616 24170

In all cases the precision score, recall score and f1 score are more or less equal to the accuracy score.

  • Could the reason why I get low accuracy when I classify the 3 classes be class A?
  • Maybe some data points from class A are too similar with data points from class B and others are too similar with data points of class C?
  • If so what could I do to improve the score provided that I can't improve the dataset.

I use a MLP to classify three different classes A, B, C. The loss function I use is categorical cross entropy and the optimiser is adam. To estimate my models performance I use 10-fold Cross Validation. On average i get 60% accuracy score but I need it to be higher. The confusion matrix for the classes A,B,C, I get is the following:

Class A Class B Class C
14440 8118 11229
6045 21863 5879
6207 4264 23315

The amount of data points I have for each class is sufficiently large and equal (the ratio is 1:1:1). I was trying to see how the model would fare, if instead of 3 classes it classified two classes. Each time I remove from the dataset the data points of the class I wont be using. So when I train it to classify data points between class B and C I get around 80% accuracy scoreand the following confusion matrix:

Class B Class C
26456 7331
6255 27531

However when I train the model to classify data points between A and C i get around 69.5% and the following confusion matrix:

Class A Class C
22180 11607
9659 24127

For the classes A and B I get around 72% accuracy score and the following confusion matrix:

Class A Class B
23971 9816
9616 24170

In all cases the precision score, recall score and f1 score are more or less equal to the accuracy score.

  • Could the reason why I get low accuracy when I classify the 3 classes be class A?
  • Maybe some data points from class A are too similar with data points from class B and others are too similar with data points of class C?

    If so what could I do to improve the score provided that I can't improve the dataset.

I use a MLP to classify three different classes A, B, C. The loss function iI use is categorical cross entropy and the optimiser is adam. To estimate my models performance iI use 10-fold Cross Validation. On average i get 60% accuracy score but iI need it to be higher. The confusion matrix for the classes A,B,C i, I get is the following:

Class A Class B Class C
14440 8118 11229
6045 21863 5879
6207 4264 23315

The amount of data points iI have for each class is sufficiently large and equal (the ratio is 1:1:1). I was trying to see how the model would fare, if instead of 3 classes it classified two classes. Each time iI remove from the dataset the data points of the class iI wont be using. So when iI train it to classify data points between class B and C iI get around 80% accuracy scoreand the following confusion matrix:

Class B Class C
26456 7331
6255 27531

However when iI train the model to classify data points between A and C i get around 69.5% and the following confusion matrix:

Class A Class C
22180 11607
9659 24127

For the classes A and B iI get around 72% accuracy score and the following confusion matrix:

Class A Class B
23971 9816
9616 24170

In all cases the precision score, recall score and f1 score are more or less equal to the accuracy score. Could the reason why i get low accuracy when i classify the 3 classes be class A? Maybe some data points from class A are too similar with data points from class B and others are too similar with data points of class C? If so what could i do to improve the score provided that i can't improve the dataset.
Thanks in advance!

  • Could the reason why I get low accuracy when I classify the 3 classes be class A?
  • Maybe some data points from class A are too similar with data points from class B and others are too similar with data points of class C?
  • If so what could I do to improve the score provided that I can't improve the dataset.

I use a MLP to classify three different classes A, B, C. The loss function i use is categorical cross entropy and the optimiser is adam. To estimate my models performance i use 10-fold Cross Validation. On average i get 60% accuracy score but i need it to be higher. The confusion matrix for the classes A,B,C i get is the following:

Class A Class B Class C
14440 8118 11229
6045 21863 5879
6207 4264 23315

The amount of data points i have for each class is sufficiently large and equal (the ratio is 1:1:1). I was trying to see how the model would fare, if instead of 3 classes it classified two classes. Each time i remove from the dataset the data points of the class i wont be using. So when i train it to classify data points between class B and C i get around 80% accuracy scoreand the following confusion matrix:

Class B Class C
26456 7331
6255 27531

However when i train the model to classify data points between A and C i get around 69.5% and the following confusion matrix:

Class A Class C
22180 11607
9659 24127

For the classes A and B i get around 72% accuracy score and the following confusion matrix:

Class A Class B
23971 9816
9616 24170

In all cases the precision score, recall score and f1 score are more or less equal to the accuracy score. Could the reason why i get low accuracy when i classify the 3 classes be class A? Maybe some data points from class A are too similar with data points from class B and others are too similar with data points of class C? If so what could i do to improve the score provided that i can't improve the dataset.
Thanks in advance!

I use a MLP to classify three different classes A, B, C. The loss function I use is categorical cross entropy and the optimiser is adam. To estimate my models performance I use 10-fold Cross Validation. On average i get 60% accuracy score but I need it to be higher. The confusion matrix for the classes A,B,C, I get is the following:

Class A Class B Class C
14440 8118 11229
6045 21863 5879
6207 4264 23315

The amount of data points I have for each class is sufficiently large and equal (the ratio is 1:1:1). I was trying to see how the model would fare, if instead of 3 classes it classified two classes. Each time I remove from the dataset the data points of the class I wont be using. So when I train it to classify data points between class B and C I get around 80% accuracy scoreand the following confusion matrix:

Class B Class C
26456 7331
6255 27531

However when I train the model to classify data points between A and C i get around 69.5% and the following confusion matrix:

Class A Class C
22180 11607
9659 24127

For the classes A and B I get around 72% accuracy score and the following confusion matrix:

Class A Class B
23971 9816
9616 24170

In all cases the precision score, recall score and f1 score are more or less equal to the accuracy score.

  • Could the reason why I get low accuracy when I classify the 3 classes be class A?
  • Maybe some data points from class A are too similar with data points from class B and others are too similar with data points of class C?
  • If so what could I do to improve the score provided that I can't improve the dataset.
Source Link

Improve model accuracy in multi-classification problem

I use a MLP to classify three different classes A, B, C. The loss function i use is categorical cross entropy and the optimiser is adam. To estimate my models performance i use 10-fold Cross Validation. On average i get 60% accuracy score but i need it to be higher. The confusion matrix for the classes A,B,C i get is the following:

Class A Class B Class C
14440 8118 11229
6045 21863 5879
6207 4264 23315

The amount of data points i have for each class is sufficiently large and equal (the ratio is 1:1:1). I was trying to see how the model would fare, if instead of 3 classes it classified two classes. Each time i remove from the dataset the data points of the class i wont be using. So when i train it to classify data points between class B and C i get around 80% accuracy scoreand the following confusion matrix:

Class B Class C
26456 7331
6255 27531

However when i train the model to classify data points between A and C i get around 69.5% and the following confusion matrix:

Class A Class C
22180 11607
9659 24127

For the classes A and B i get around 72% accuracy score and the following confusion matrix:

Class A Class B
23971 9816
9616 24170

In all cases the precision score, recall score and f1 score are more or less equal to the accuracy score. Could the reason why i get low accuracy when i classify the 3 classes be class A? Maybe some data points from class A are too similar with data points from class B and others are too similar with data points of class C? If so what could i do to improve the score provided that i can't improve the dataset.
Thanks in advance!