1
00:00:00,270 --> 00:00:06,270
Hello, everyone, and welcome to this new and exciting session in which we are going to log our data

2
00:00:06,270 --> 00:00:07,770
to one DB.

3
00:00:08,400 --> 00:00:13,320
In previous sessions we already saw how to do one DB logs.

4
00:00:14,100 --> 00:00:17,610
That is, logging our metrics like this.

5
00:00:17,640 --> 00:00:21,390
Also, log in this confession matrices.

6
00:00:22,050 --> 00:00:23,340
As we can see here.

7
00:00:23,340 --> 00:00:28,980
We also looked at hyper parameter tuning dataset, versioning and model versioning.

8
00:00:29,010 --> 00:00:37,980
In this session, we'll not just only log metrics but also log tables like this, just as we had done

9
00:00:37,980 --> 00:00:38,600
before.

10
00:00:38,610 --> 00:00:41,910
We are going to start with this weights and biases installation.

11
00:00:41,910 --> 00:00:47,400
So we we have this PIP installed one DB that's fine.

12
00:00:47,400 --> 00:00:53,130
And then we import one to B and then from one DB cross we import the one to be called back.

13
00:00:53,130 --> 00:00:56,040
So we run this and then we go ahead and log in.

14
00:00:56,400 --> 00:01:01,980
Now we've gone through this already in some previous sessions and here you just have to click on this

15
00:01:02,280 --> 00:01:03,180
authorize.

16
00:01:03,180 --> 00:01:09,120
So you get your, you should have this link or this code to copy from your.

17
00:01:09,150 --> 00:01:15,960
Now if you do not have this this key, if you don't see this key to copy, then you would have to sign

18
00:01:15,960 --> 00:01:18,690
up on the weights and biases platform.

19
00:01:18,690 --> 00:01:20,070
So let's get back here.

20
00:01:20,070 --> 00:01:23,640
We now paste this and then we press enter.

21
00:01:24,570 --> 00:01:25,830
So that should be it.

22
00:01:25,860 --> 00:01:31,800
Now with with that, we initialize this project and we call the project emotion detection entity neural

23
00:01:31,800 --> 00:01:32,130
learning.

24
00:01:32,130 --> 00:01:35,460
So we have that and that should be fine.

25
00:01:35,460 --> 00:01:42,960
So you could change this to whatever name you want and then whatever entity you corresponds to to yours.

26
00:01:42,960 --> 00:01:43,800
So that's it.

27
00:01:43,800 --> 00:01:47,130
Currently logged in as neural and use this to force re log in.

28
00:01:47,130 --> 00:01:51,030
Okay, So we have that and then we have this config here.

29
00:01:51,030 --> 00:01:56,220
So we run that train and validation directory.

30
00:01:56,220 --> 00:01:57,030
That's fine.

31
00:01:57,900 --> 00:02:03,150
Now we go ahead and train our model and we include this one DB callback right here.

32
00:02:03,150 --> 00:02:08,730
So all you need to do here is include this one to be callback and training can start now.

33
00:02:08,730 --> 00:02:15,900
We just run this for say three epochs, just do that for three epochs and then let's just take a small

34
00:02:15,900 --> 00:02:17,190
part of our dataset.

35
00:02:17,190 --> 00:02:18,660
So let's take the small part.

36
00:02:18,660 --> 00:02:27,600
So we have that and we run this Now, as we train this model, you'll notice that we are just a very

37
00:02:27,600 --> 00:02:29,400
small part of our data set.

38
00:02:29,400 --> 00:02:32,550
The hugging face model performs quite well.

39
00:02:32,550 --> 00:02:39,390
As you see, we already have 77% of validation accuracy with just this small part.

40
00:02:39,420 --> 00:02:46,230
Now the other point is we get back to one TB So here we could check out on our profile.

41
00:02:46,980 --> 00:02:48,030
There we go.

42
00:02:48,030 --> 00:02:56,010
You see projects, you select emotion detection, and then while this loads, okay, so we have this

43
00:02:56,010 --> 00:02:58,490
and we click on this hopeful plant right here.

44
00:02:58,500 --> 00:03:01,620
This is what we currently have and these are current run.

45
00:03:01,620 --> 00:03:04,800
So you see, it shows us already this chart.

46
00:03:04,800 --> 00:03:10,860
Here we have our topic accuracy, validation, accuracy, validation laws and all of that just by specifying

47
00:03:10,860 --> 00:03:12,170
that one to be called.

48
00:03:12,180 --> 00:03:15,570
So this is already information which has already been locked in.

49
00:03:15,570 --> 00:03:23,820
And as we know, you could always get access to this any time since this information is locked on weights

50
00:03:23,820 --> 00:03:25,470
and biases servers.

51
00:03:25,860 --> 00:03:32,670
From here we see that the validation accuracy goes right up to about 79.63%.

52
00:03:32,670 --> 00:03:41,580
So that's about 80% validation accuracy while the accuracy itself goes to 82.6%.

53
00:03:41,850 --> 00:03:49,110
And you could check this here you see 82.6 and then you're seven and 9.63.

54
00:03:49,110 --> 00:03:50,130
So that's it.

55
00:03:50,400 --> 00:03:52,950
We're able to log this data very easily.

56
00:03:52,950 --> 00:03:59,550
The next callback will be added here will be that of including coefficient matrices.

57
00:03:59,550 --> 00:04:05,790
So yeah, we'll put log confusion metrics.

58
00:04:06,210 --> 00:04:11,140
Okay, So we have this log conversion matrix and now we'll go ahead and put out a code for this.

59
00:04:11,160 --> 00:04:17,730
Note that for the one DB callback we didn't necessarily need to pass in any information here, but with

60
00:04:17,730 --> 00:04:21,690
this log of metrics, this is our custom callback.

61
00:04:21,690 --> 00:04:30,030
We are going to write code such that each and every time we done with the training, we are going to

62
00:04:30,660 --> 00:04:36,090
automatically generate this coefficient matrix based off what the model predicts.

63
00:04:36,660 --> 00:04:41,730
Now recall that we've already treated conversion matrices, so you could click on this and then we'll

64
00:04:41,730 --> 00:04:48,000
copy out this code, copy out this part which permits us, get those predictions and the labels, and

65
00:04:48,000 --> 00:04:55,950
then we will not make use of this any longer as one DB as a method which takes in our conversion matrix

66
00:04:55,950 --> 00:04:59,820
method which takes in those predictions and this levels and automatically produces the.

67
00:04:59,900 --> 00:05:00,860
Coefficient metrics.

68
00:05:00,860 --> 00:05:06,620
So let's copy this here and then let's get back to our callback.

69
00:05:07,280 --> 00:05:08,230
There we go.

70
00:05:08,240 --> 00:05:17,210
So at the end of each epoch here we get the epoch logs and then we, we, we go to the validation data

71
00:05:17,210 --> 00:05:22,790
set and then we have our image and the image is partial model to get the predictions.

72
00:05:22,790 --> 00:05:26,730
And then we have the levels obviously coming from this level right here.

73
00:05:26,750 --> 00:05:32,720
Then from here we produce a simple list of the predictions and the labels.

74
00:05:32,720 --> 00:05:37,550
So now once we have this list, once we're able to get this list, which we've treated already in some

75
00:05:37,550 --> 00:05:44,360
previous sessions, you now just have this part so this you could check on the documentation for this

76
00:05:44,360 --> 00:05:44,840
plots.

77
00:05:44,840 --> 00:05:49,160
Let's get to the documentation, the want to be documentation.

78
00:05:49,160 --> 00:05:56,360
You could check this out here as type in confusion matrix.

79
00:05:56,360 --> 00:05:57,110
There we go.

80
00:05:57,110 --> 00:06:01,160
We have confusion matrix want to be of that.

81
00:06:01,880 --> 00:06:04,130
Let's check out this log plots right here.

82
00:06:04,520 --> 00:06:04,710
Okay.

83
00:06:04,820 --> 00:06:12,980
So yeah we yeah we in this experiment tracking and log editor we want to be log log major and objects

84
00:06:12,980 --> 00:06:14,090
then log plots.

85
00:06:14,120 --> 00:06:20,330
Okay so we have this we the RC curves or our curves and our coefficient matrices.

86
00:06:20,330 --> 00:06:27,560
So we saw this already in some previous sessions so you could get back to looking at how to make use

87
00:06:27,560 --> 00:06:28,130
of this one.

88
00:06:28,130 --> 00:06:30,710
DB So that's it?

89
00:06:30,710 --> 00:06:37,160
You see, we copy out this piece of code here where we have this coefficient matrix, we have all the

90
00:06:37,160 --> 00:06:40,730
ground truth that's a levels and then we have what the model predicts.

91
00:06:40,730 --> 00:06:43,280
Then we obviously have the class names, so that's it.

92
00:06:43,280 --> 00:06:50,510
And then you see just want to be log and then you specify this string right here and then you pass in

93
00:06:50,510 --> 00:06:51,530
the coefficient matrix.

94
00:06:51,530 --> 00:06:55,130
CM Which is this, and that's basically what we are doing here.

95
00:06:55,130 --> 00:06:57,140
So we just copy down that code.

96
00:06:57,140 --> 00:07:02,720
So with this year we have our Y true spreads class names we should specified already and then we just

97
00:07:02,720 --> 00:07:03,530
run this.

98
00:07:03,920 --> 00:07:06,680
So we run this and that's fine.

99
00:07:06,740 --> 00:07:13,010
Now the next thing we'll do is we are going to create tables and now we're going to see all how important

100
00:07:13,010 --> 00:07:19,670
working with tables is as compared to just simply log in values Tables will permit us visualize our

101
00:07:19,670 --> 00:07:22,700
data in a more interactive manner.

102
00:07:22,700 --> 00:07:25,670
And you're you see all of this data visualization.

103
00:07:25,670 --> 00:07:31,940
You have those log tables and we'll see how to create a simple table and log this.

104
00:07:31,940 --> 00:07:33,740
So here we have the data.

105
00:07:33,740 --> 00:07:41,630
You notice that we have different rows this row 100012 and three, and that you have the image and you

106
00:07:41,630 --> 00:07:44,660
have the predicted and the truth levels.

107
00:07:44,660 --> 00:07:49,250
So basically what we're doing here is we're taking this image.

108
00:07:50,030 --> 00:07:51,260
Then we log.

109
00:07:51,260 --> 00:07:54,920
So here's our image, then we log as predicted value.

110
00:07:54,920 --> 00:08:00,530
Let's say, for example, class eight, let's say predict class eight, and then the true level is class

111
00:08:00,530 --> 00:08:01,070
zero.

112
00:08:01,100 --> 00:08:06,380
Then we take some other image that's a predictor, this one and yours one.

113
00:08:06,380 --> 00:08:08,270
So basically, this is what we're doing.

114
00:08:08,270 --> 00:08:15,350
We created now this table where we have different roles and different columns.

115
00:08:16,490 --> 00:08:17,630
Okay, so that's it.

116
00:08:17,630 --> 00:08:27,380
We see how to create this and we also see how to log this tables into one tab runs.

117
00:08:27,680 --> 00:08:35,450
So getting back to the code here, you see we have this different columns, image predicted and labeled,

118
00:08:35,630 --> 00:08:39,140
and then we're going to call this table of validation table.

119
00:08:39,140 --> 00:08:42,320
Or we have those columns which takes in our columns here.

120
00:08:42,320 --> 00:08:47,450
Obviously, you could add this, you could increase this and put whatever values you want there and

121
00:08:47,450 --> 00:08:48,410
then fill that.

122
00:08:48,410 --> 00:08:52,280
So we have this validation table, which we've just created.

123
00:08:52,280 --> 00:08:56,800
And then now we're going to fill this table color row by row.

124
00:08:56,810 --> 00:09:03,890
So for our first row, you see we have the predicted values, our model text in the image, that's it.

125
00:09:03,890 --> 00:09:05,450
And we have the labels.

126
00:09:05,450 --> 00:09:11,900
And then here you see for a given row we have one DB image, we pass in our image.

127
00:09:12,440 --> 00:09:13,280
That's it.

128
00:09:13,280 --> 00:09:19,940
We pass in the predicted scores, then we pass in the labels course to the corresponding to these three

129
00:09:19,940 --> 00:09:21,200
columns right here.

130
00:09:21,200 --> 00:09:27,080
And then for this validator table that we created here, we're going to add this data.

131
00:09:27,080 --> 00:09:30,750
So we're going to do this for each and every element of our validation data set.

132
00:09:30,770 --> 00:09:35,240
Now, here would decided to take 100 and then we'll get him back up.

133
00:09:35,390 --> 00:09:44,090
What we'll do is we are going to somehow batch this, so we're going to change this batch size to one

134
00:09:44,660 --> 00:09:52,310
because we want to be able to play around with a single validation element and not, say, for example,

135
00:09:52,310 --> 00:09:53,150
32 of them.

136
00:09:53,150 --> 00:09:58,310
So because of that, we'll just changes to one and we run this again.

137
00:09:59,180 --> 00:09:59,750
This should be fine.

138
00:10:00,380 --> 00:10:04,400
Okay, So, so we have this validation data.

139
00:10:04,430 --> 00:10:05,390
That's fine.

140
00:10:05,390 --> 00:10:07,970
And then you're, uh, training.

141
00:10:07,970 --> 00:10:10,700
Okay, we run this again, and that's it.

142
00:10:10,700 --> 00:10:12,350
We have our validation there.

143
00:10:12,500 --> 00:10:14,360
Now, let's get back here.

144
00:10:14,360 --> 00:10:17,810
As we said, we're taking just 100 of this.

145
00:10:17,810 --> 00:10:19,190
So we take just 100.

146
00:10:19,190 --> 00:10:20,630
Let's let's even reduce this.

147
00:10:20,630 --> 00:10:21,500
Let's say 25.

148
00:10:21,500 --> 00:10:22,010
Okay.

149
00:10:22,010 --> 00:10:24,140
So you could take all the elements.

150
00:10:24,140 --> 00:10:27,560
Actually, we just want to make this a bit faster so we have that.

151
00:10:27,560 --> 00:10:33,590
And once now you feel this, you see this follow permits you to fill each and every row.

152
00:10:33,590 --> 00:10:36,590
So you just keep filling rows in your table and that's it.

153
00:10:36,800 --> 00:10:40,280
You could get this here, See this?

154
00:10:40,280 --> 00:10:44,480
We you see you have this table, the columns and you have the data right here.

155
00:10:44,480 --> 00:10:46,250
And then you just log this information.

156
00:10:46,250 --> 00:10:54,410
So it's from this documentation, you could be able to understand exactly how we build this table,

157
00:10:54,410 --> 00:10:55,900
although it's quite straightforward.

158
00:10:55,910 --> 00:11:01,670
So from here we do want to be log and then we have our model results and we pass in the wild table.

159
00:11:01,670 --> 00:11:04,550
So let's run this, let's get back here.

160
00:11:04,670 --> 00:11:06,320
Let's run this to cells.

161
00:11:06,920 --> 00:11:10,790
We run this to cells now and then we start with the training.

162
00:11:10,790 --> 00:11:15,740
So we have the training now over and we could check out this custom chat, which is that of the coefficient

163
00:11:15,740 --> 00:11:17,720
matrix you see here.

164
00:11:17,990 --> 00:11:24,260
We could get the number of times, the model predictor angry when we're supposed to be angry.

165
00:11:24,290 --> 00:11:25,850
Here is the prediction.

166
00:11:25,850 --> 00:11:30,170
Happy when it's supposed to be happy, then your is prediction sat when it's supposed to be sad.

167
00:11:30,170 --> 00:11:38,690
So we see this is 357 times for happy 876 for sad 682.

168
00:11:38,900 --> 00:11:43,880
And then here we have the times when the model predicts sad when it's supposed to be angry.

169
00:11:43,880 --> 00:11:51,260
So this is our coefficient metrics which we generate automatically using one DB conversion matrix method

170
00:11:51,620 --> 00:11:53,630
and then we move on to this tables.

171
00:11:53,630 --> 00:11:59,060
So here you'll notice that this tables contains a hundred different elements.

172
00:11:59,060 --> 00:12:03,500
So you could keep going on to the next.

173
00:12:03,500 --> 00:12:06,700
So we want to the next ten and so on and so forth.

174
00:12:06,710 --> 00:12:13,400
So let's get back or let's, let's just work with this now here you'll see that with this table you

175
00:12:13,400 --> 00:12:19,040
can actually like your you see, if you scroll, if you get get to this, hover on this and you have

176
00:12:19,040 --> 00:12:22,220
this three dots, you click on that and you could group.

177
00:12:22,220 --> 00:12:26,300
So check on this you see you group by image for this one.

178
00:12:26,450 --> 00:12:35,060
What we have here is this predictions you see happy the level happy, sad, sad, angry, angry and

179
00:12:35,060 --> 00:12:35,980
so on and so forth.

180
00:12:35,990 --> 00:12:38,960
So this model predictions here are quite great.

181
00:12:38,990 --> 00:12:49,580
Now, if we increase this move, you see we have this example here where the model or rather the true

182
00:12:49,580 --> 00:12:52,490
labels is happy and the model predicts angry.

183
00:12:52,490 --> 00:12:58,880
But when you look at this photo is it shows that this person is not necessarily happy.

184
00:12:58,880 --> 00:13:04,310
So we understand why the model may be thinking that this person is angry.

185
00:13:04,310 --> 00:13:06,080
And so with this one, they be tool.

186
00:13:06,080 --> 00:13:13,130
You see that it becomes very easy to detect mislabeled images like this one.

187
00:13:13,340 --> 00:13:18,500
Now, another way to get this more systematically is by getting here.

188
00:13:19,850 --> 00:13:23,450
But since we do not have the group, we just start by grouping right here.

189
00:13:23,450 --> 00:13:24,830
So let's get back here.

190
00:13:25,250 --> 00:13:26,450
Click on this.

191
00:13:26,450 --> 00:13:36,110
We group now with one group already and then we get to this level and then we group by this different

192
00:13:36,110 --> 00:13:36,860
levels.

193
00:13:36,860 --> 00:13:40,010
You see that here we have happy, sad, angry.

194
00:13:40,040 --> 00:13:43,520
Now this is what the model predicts.

195
00:13:43,520 --> 00:13:48,590
The model you see, the other model predicts mostly happy because obviously the level is happy group.

196
00:13:48,590 --> 00:13:53,500
By happy level you're sad, you see mostly sad, angry and mostly angry.

197
00:13:53,510 --> 00:13:57,110
Now, what is interesting to note here is for this angry.

198
00:13:57,110 --> 00:13:58,550
Well, the level is angry.

199
00:13:58,550 --> 00:14:01,370
The model never predicts happy.

200
00:14:01,370 --> 00:14:04,220
Anyways, let's get back here.

201
00:14:04,310 --> 00:14:06,470
You should be able to scroll to this.

202
00:14:06,470 --> 00:14:12,680
You see, You should be able to scroll through all the different happy images and you should be able.

203
00:14:12,680 --> 00:14:16,400
Now, let's look at this.

204
00:14:16,400 --> 00:14:22,610
You should be able to detect cases where the model or rather the data set has been mislabeled.

205
00:14:22,610 --> 00:14:25,040
Like you're this person isn't necessarily happy.

206
00:14:25,040 --> 00:14:34,070
So already you could detect these kinds of miss classified or mislabeled data points.

207
00:14:35,200 --> 00:14:38,420
Then we also have this image which is almost completely blurred out.

208
00:14:38,420 --> 00:14:47,120
You could always check on those kinds of images and take them off, actually, because if your model

209
00:14:47,120 --> 00:14:52,010
isn't going to be seeing this in real life, then it's preferable to take this off.

210
00:14:52,010 --> 00:14:57,710
Nonetheless, if in the real world the model is going to be meeting this kind of images, then you could

211
00:14:58,130 --> 00:14:59,120
allow this.

212
00:15:00,200 --> 00:15:02,180
Um, let's keep going this way.

213
00:15:02,180 --> 00:15:08,720
You could also check out for those sad images and be sure that this I actually saw people.

214
00:15:10,610 --> 00:15:11,240
You're again.

215
00:15:11,240 --> 00:15:18,920
You see this person actually smiling and is labeled as sad then for the angry you see, this little

216
00:15:18,920 --> 00:15:22,820
boy was visibly happy but instead labeled angry.

217
00:15:22,820 --> 00:15:30,920
So the want to be tables permits us check these kinds of errors in a very interactive manner.

218
00:15:31,910 --> 00:15:38,660
Now we will again on group so we can group this and then we could take this out for the pretreated group

219
00:15:38,660 --> 00:15:40,760
by pretty levels.

220
00:15:40,760 --> 00:15:42,980
So this is what the model sees.

221
00:15:42,980 --> 00:15:50,630
So the model predicts that this is happy, this is side and this image is angry.

222
00:15:50,630 --> 00:15:57,320
You see, what you notice here is because this image recall, this image which we just saw, because

223
00:15:57,320 --> 00:16:00,710
this image has been had been labeled as angry.

224
00:16:00,710 --> 00:16:05,930
The model now predicts that this image is an angry image, which is not true.

225
00:16:05,930 --> 00:16:12,710
And so when you deploy this now into production, you will find that this kind of images or this image

226
00:16:12,710 --> 00:16:17,360
will be predicted as angry, whereas it's meant to be happy.

227
00:16:18,440 --> 00:16:26,300
And the worst part of it is that even your evaluation wouldn't find this as an error, because already

228
00:16:26,300 --> 00:16:32,180
the level of the class for this was set to be angry.

229
00:16:33,290 --> 00:16:40,370
Then another thing you could do here, if you get your let's have this back.

230
00:16:40,520 --> 00:16:46,460
Another thing you could do is you get to this column settings here.

231
00:16:46,490 --> 00:16:47,120
Click on this.

232
00:16:47,120 --> 00:16:52,490
You could get the column settings just by clicking on this column settings, this column settings,

233
00:16:52,490 --> 00:16:53,330
click on that.

234
00:16:53,330 --> 00:16:56,600
And then you're you select the labels.

235
00:16:56,600 --> 00:17:04,910
So here you, you're picking all the labels where the predicted value is different from what the label

236
00:17:04,910 --> 00:17:08,720
or rather what the model predicts.

237
00:17:08,720 --> 00:17:10,610
So here we could see row predicted.

238
00:17:10,610 --> 00:17:15,410
So when row level is different from a row predicted, we and that's it.

239
00:17:15,410 --> 00:17:16,760
So we have that.

240
00:17:17,060 --> 00:17:19,040
So press enter.

241
00:17:21,870 --> 00:17:28,800
And then what we notice here is we have this true, this false and and that.

242
00:17:28,800 --> 00:17:37,380
So basically the reason why you have this true and this false is the true is for when let's get back

243
00:17:37,380 --> 00:17:38,460
to this year.

244
00:17:39,060 --> 00:17:44,660
The true is for when the road level is driven from the road predicted.

245
00:17:44,670 --> 00:17:46,710
So this is this are the wrong predictions.

246
00:17:46,710 --> 00:17:53,520
So what we could do here is we could modify this to equal so that equal, that's fine.

247
00:17:53,970 --> 00:17:54,990
They should be reset.

248
00:17:54,990 --> 00:17:55,800
So you see.

249
00:17:55,800 --> 00:17:56,160
Okay.

250
00:17:56,160 --> 00:18:02,220
So you see now it's true, meaning that this false is when the prediction is not the same as the level.

251
00:18:02,220 --> 00:18:02,970
So that's it.

252
00:18:03,240 --> 00:18:05,490
We could increase the size of this table.

253
00:18:05,490 --> 00:18:06,990
Let's get to this.

254
00:18:07,650 --> 00:18:11,400
Increase the size and basically that's it.

255
00:18:11,400 --> 00:18:16,530
So you see the greens are for when the coincide and the reds are for when.

256
00:18:16,530 --> 00:18:20,910
What the model predicts is different from what the model ought to have predicted.

257
00:18:21,690 --> 00:18:27,540
Now we could get again to this top and then check this column settings and then take this off.

258
00:18:27,690 --> 00:18:30,810
So you see, you could simply take that off.

259
00:18:31,290 --> 00:18:36,720
Okay, So we have that reset again and you now have your levels as you had originally.

260
00:18:36,720 --> 00:18:38,510
You could do the same for the predicted.

261
00:18:38,520 --> 00:18:46,050
Now you could also get your see this, click on this and then you you check the row row.

262
00:18:46,050 --> 00:18:56,760
We're trying to get all the rows where the row label is different C different from the row C type row

263
00:18:56,970 --> 00:18:57,930
predicted.

264
00:18:58,050 --> 00:18:58,740
So that's it.

265
00:18:58,740 --> 00:19:01,860
Because if you say row label from a row label, obviously you have no row.

266
00:19:01,860 --> 00:19:06,990
So let's test that and you could see you could apply, you should have no element in your C, There's

267
00:19:06,990 --> 00:19:09,910
no element that's not actually possible.

268
00:19:09,930 --> 00:19:13,580
Now let's take this off and now we take row predicted.

269
00:19:13,590 --> 00:19:24,750
So row predicted and then you apply or you apply both know, um, some connectivity issues.

270
00:19:25,860 --> 00:19:32,130
So yeah, we apply we check out where the, the the predicted event from the label.

271
00:19:32,130 --> 00:19:38,580
So yeah we have this your C happy and the predictors either side or angry.

272
00:19:38,580 --> 00:19:40,080
So you are the wrong predictions.

273
00:19:40,080 --> 00:19:48,540
So with this you could check out and see the kinds of images which the model finds difficult or find

274
00:19:48,540 --> 00:19:51,420
difficulties in correctly predicting.

275
00:19:51,420 --> 00:19:58,410
So like with this one you see happy this the label here is happy, but clearly this man isn't happy.

276
00:19:58,410 --> 00:20:03,180
This one doesn't look too happy, doesn't necessarily even look happy.

277
00:20:03,180 --> 00:20:04,560
This one is happy.

278
00:20:04,560 --> 00:20:06,960
And you could look at that.

279
00:20:06,960 --> 00:20:15,150
So generally for this problem, we see clearly that many, many problems come or many of these classifications

280
00:20:15,150 --> 00:20:18,180
come already from our data set.

281
00:20:18,180 --> 00:20:24,210
So this means that the dataset we have to look at the dataset and ensure that it is cleaned before making

282
00:20:24,210 --> 00:20:24,960
use of it.

283
00:20:24,960 --> 00:20:29,610
So you see this happy, this person isn't happy, this, this happy, this happy.

284
00:20:30,210 --> 00:20:31,170
We could get too sad.

285
00:20:31,170 --> 00:20:33,830
You see, this person is happy, but this labeled as sad.

286
00:20:33,840 --> 00:20:39,120
So with these kinds of interactive visualizations, we could be able to save.

287
00:20:39,120 --> 00:20:46,080
For example, we want to see where the model was was pretty a certain value and it didn't produce that

288
00:20:46,080 --> 00:20:46,620
value.

289
00:20:46,650 --> 00:20:51,990
Now, we could also check out where this is equal, so you could check equals and say, okay, where

290
00:20:51,990 --> 00:20:58,770
the the row label is equal to predicted, we apply and then we check out the kinds of images we have.

291
00:20:58,920 --> 00:21:04,050
You see from here that most times the labeling will be correct.

292
00:21:04,050 --> 00:21:07,800
You see the label happy label sad, the label angry.

293
00:21:08,760 --> 00:21:13,980
We are we still have this image here, the shows that we have even gone as far as teaching the model

294
00:21:13,980 --> 00:21:17,100
to look at this kind of image as an angry image.
