{
  "id": 12465,
  "title": "Can you guys share percentage accuracy on validation data?",
  "url": "/competitions/datasciencebowl/discussion/12465",
  "author_name": "",
  "post_date": "2015-02-10T09:35:46.050Z",
  "votes": 1,
  "comment_count": 36,
  "views": 9582,
  "content": "<p>Hi,</p>\n<p>Can you guys share percentage accuracy versus log loss score on your training data?</p>\n<p>I have a score of 1.06 with 67.5% accuracy on validation data.</p>",
  "messages": [
    {
      "id": "63903",
      "postDate": "02/10/2015 09:35:46",
      "content": "<p>Hi,</p>\n<p>Can you guys share percentage accuracy versus log loss score on your training data?</p>\n<p>I have a score of 1.06 with 67.5% accuracy on validation data.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "63904",
      "postDate": "02/10/2015 09:41:21",
      "content": "<p>Hi, very similar to my results.</p>\n<p>valid (random 20%): Accuracy=0.683&nbsp;LogLossMulti=1.1244</p>\n<p>leaderboard:&nbsp;1.067027</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "63910",
      "postDate": "02/10/2015 10:53:22",
      "content": "<p>Thanks Michael.</p>\n<p>I wanted to know the maximum percentage accuracy people have got. It looks like the log-loss function needs to be optimized separately, I have found that even with 35% accuracy you can beat the top score if you are lucky with random submission. So basically log-loss is bit fishy.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "63912",
      "postDate": "02/10/2015 11:19:14",
      "content": "<p>[quote=Sash;63910]</p>\n<p>Thanks Michael.</p>\n<p>I wanted to know the maximum percentage accuracy people have got. It looks like the log-loss function needs to be optimized separately, I have found that even with 35% accuracy you can beat the top score if you are lucky with random submission. So basically log-loss is bit fishy.</p>\n<p>[/quote]</p>\n<p>Yep, logloss sounds also not natural for me given the problem here.</p>\n<p>By changing my train method I can achieve 71% accuracy, but logloss dropped a lot.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "63933",
      "postDate": "02/10/2015 16:40:22",
      "content": "<p>[quote=Sash;63910]</p>\n<p>Thanks Michael.</p>\n<p>I have found that even with 35% accuracy you can beat the top score if you are lucky with random submission.</p>\n<p>[/quote]</p>\n<p>Can you explain this a bit more?&nbsp;</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "63940",
      "postDate": "02/10/2015 17:13:46",
      "content": "<p>My cv accuracy is as high as 74% but, as other folks have reported, that doesn't always go hand in hand with lower&nbsp;logloss.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "63942",
      "postDate": "02/10/2015 17:20:30",
      "content": "<p>[quote=Michael Jahrer;63904]</p>\n<p>Hi, very similar to my results.</p>\n<p>valid (random 20%): Accuracy=0.683&nbsp;LogLossMulti=1.1244</p>\n<p>leaderboard:&nbsp;1.067027</p>\n<p>[/quote]</p>\n<p>Is it correct that you don't use CNNs? This would be an accomplishment.</p>\n<p>btw 0.87 logloss at ~74% acc</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "63959",
      "postDate": "02/10/2015 20:00:27",
      "content": "<p>[quote=Rafael;63942]</p>\n<p>[quote=Michael Jahrer;63904]</p>\n<p>Hi, very similar to my results.</p>\n<p>valid (random 20%): Accuracy=0.683&nbsp;LogLossMulti=1.1244</p>\n<p>leaderboard:&nbsp;1.067027</p>\n<p>[/quote]</p>\n<p>Is it correct that you don't use CNNs? This would be an accomplishment.</p>\n<p>btw 0.87 logloss at ~74% acc</p>\n<p>[/quote]</p>\n\n<p>yep, no CNN, but NN with geometric data augmentation :) - I cracked the 1.0 on the leaderboard. Thats it for now</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "63994",
      "postDate": "02/11/2015 02:39:38",
      "content": "<p>[quote=emolson;63933]</p>\n<p>[quote=Sash;63910]</p>\n<p>Thanks Michael.</p>\n<p>I have found that even with 35% accuracy you can beat the top score if you are lucky with random submission.</p>\n<p>[/quote]</p>\n<p>Can you explain this a bit more?&nbsp;</p>\n<p>[/quote]</p>\n<p>I just meant it is possible mathematically.. but looks impossible probabilistically.</p>\n<p>Say percentage accuracy is 35. so if we have probability of 1 for those images, contribution to CV score from 35% of data is 0. that is 0.35*ln(1) = 0.</p>\n<p>For the rest 65% which is erroneous - let us say we have probability of 0.49 for those locations where y(i,j) in log loss function so it sums up to -0.65*ln(0.49) = 0.4636.. so the total score is 0.4636...</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "64066",
      "postDate": "02/11/2015 21:11:42",
      "content": "<p>Mayby its goes as follows :</p>\n<p>for one observation LogLoss takes the following form : LL = -y*log(p), but we don't know `y`, if we could estimate probability of correct guess as 'q', then we obtain expected LogLoss in the form : E(LL) = -q*log(p) -(1-q)*log((1-p)/(n-1)), where n is number of classes, and probability assigned, to each of them is&nbsp;(1-p)/(n-1), now take derivative over p, and find p in terms of q and n, for n=1 case&nbsp; solution is simply p = q :-) for other values of n please calculate yourself, you can further optimize with use of a priori classes probabilities, deriving analytical solution should not be as hard as it seems</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "64087",
      "postDate": "02/12/2015 03:35:57",
      "content": "<p>[quote=xvnv;64066]</p>\n<p>Mayby its goes as follows :</p>\n<p>for one observation LogLoss takes the following form : LL = -y*log(p), but we don't know `y`, if we could estimate probability of correct guess as 'q', then we obtain expected LogLoss in the form : E(LL) = -q*log(p) -(1-q)*log((1-p)/(n-1)), where n is number of classes, and probability assigned, to each of them is&nbsp;(1-p)/(n-1), now take derivative over p, and find p in terms of q and n, for n=1 case&nbsp; solution is simply p = q :-) for other values of n please calculate yourself, you can further optimize with use of a priori classes probabilities, deriving analytical solution should not be as hard as it seems</p>\n<p>[/quote]</p>\n\n<p>This is the first thing I tried, but with this we cannot beat the best score unless we have an accuracy of 90+ percentage...may be 93% can't recall exactly..</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "65232",
      "postDate": "03/02/2015 12:54:58",
      "content": "<p>Logloss is there to penalize wildly wrong guesses. They are telling you it's better to have two options with 60%-40% accuracy (for example) than saying &quot;this one has 60%, so I'll go with this as the right option&quot;. My problem in this is that it creates some sort of moral dilema, since there is a lot of tricks you could use to reduce your logloss artificially, without improving your accuracy or even being realistic. I want to really give the probabilities as my model predicts them, without having to look at the logloss score.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "65374",
      "postDate": "03/04/2015 02:13:39",
      "content": "<p>Just to jump in here and offer my 2 cents.&nbsp;In our field (plankton imaging), one of the early papers put out ~83% overall accuracy as a high benchmark, and it has become a sort of &quot;gold standard.&quot; While I will - and have - argued that this benchmark is arbitrary and somewhat questionably derived, it remains that our field has yet to see this threshold broken with a real dataset (not an artificially curated learning set).&nbsp;</p>\n<p>I'm seeing on this forum and this thread accuracy rates of 78% - and possibly higher? - so I'm wondering whether this competition can break through this arbitrary limit of 83% accuracy. It would be very exciting to see it happen.&nbsp;</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "65377",
      "postDate": "03/04/2015 03:53:41",
      "content": "<p>@Jessica, I believe top ten players already went beyond 83%:)</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "65385",
      "postDate": "03/04/2015 06:27:43",
      "content": "<p>@Jessica</p>\n<p>Your are the competition admin, do you not know if it has broken 83% accuracy limit?</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "65386",
      "postDate": "03/04/2015 06:47:19",
      "content": "<p>My statistic on 10% validation set is: logloss~0.64 and accuracy~80%. So I support&nbsp;@Guocong Song's guess.</p>\n<p>If the evaluation is the accuracy itself, a higher accuracy can&nbsp;be reached using other loss functions, e.g., hinge loss.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "65387",
      "postDate": "03/04/2015 07:02:48",
      "content": "<p>[quote=yr;65386]</p>\n<p>My statistic on 10% validation set is: logloss~0.64 and accuracy~80%. So I support&nbsp;@Guocong Song's guess.</p>\n<p>If the evaluation is the accuracy itself, a higher accuracy can&nbsp;be reached using other loss functions, e.g., hinge loss.</p>\n<p>[/quote]</p>\n<p>Can you explain how we can achieve higher accuracy with other loss functions? Is it the objective function of neural network that we need to change?</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "65388",
      "postDate": "03/04/2015 07:05:15",
      "content": "<p>I don`t support, may be top-2 only :) Around 0.6 I have noticed that my more accurate models scores worse in logloss and visa-versa.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "65389",
      "postDate": "03/04/2015 07:13:36",
      "content": "<p>for people who would want to get percentage accuracy on training set, all you have to do is submit an entry containing only ones and zeros. That is in each row replace the max probability with 1 and rest with zeros.</p>\n<p>Then if you get a score X, the percentage accuracy would be</p>\n<p>1+ (x/log(10^-15))</p>\n<p>log is natural logarithm.</p>\n<p>So with this you can share your actual test data percentage accuracy if you wish.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "65390",
      "postDate": "03/04/2015 07:13:45",
      "content": "<p>10% validation set is not stable. The same model has ~+-0.04 difference on logloss.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "65394",
      "postDate": "03/04/2015 10:08:03",
      "content": "<p>[quote=Sachin;65387]</p>\n<p>[quote=yr;65386]</p>\n<p>My statistic on 10% validation set is: logloss~0.64 and accuracy~80%. So I support&nbsp;@Guocong Song's guess.</p>\n<p>If the evaluation is the accuracy itself, a higher accuracy can&nbsp;be reached using other loss functions, e.g., hinge loss.</p>\n<p>[/quote]</p>\n<p>Can you explain how we can achieve higher accuracy with other loss functions? Is it the objective function of neural network that we need to change?</p>\n<p>[/quote]</p>\n\n<p>If you would like to get higher accuracy using other loss function, you should change loss function. In Caffe you should change &quot;SOFTMAX_LOOS&quot; to &quot;HINGE_LOSS&quot;. This will change from LinerarClassifier to SVM. But for your information, SVM does not care about loss, only accuracy.</p>\n<p>I think that about is Sachin was thinking&nbsp;about&nbsp;</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "65431",
      "postDate": "03/04/2015 19:24:05",
      "content": "<p>[quote=Jessica Luo;65374]</p>\n<p>Just to jump in here and offer my 2 cents.&nbsp;In our field (plankton imaging), one of the early papers put out ~83% overall accuracy as a high benchmark, and it has become a sort of &quot;gold standard.&quot; While I will - and have - argued that this benchmark is arbitrary and somewhat questionably derived, it remains that our field has yet to see this threshold broken with a real dataset (not an artificially curated learning set).&nbsp;</p>\n<p>I'm seeing on this forum and this thread accuracy rates of 78% - and possibly higher? - so I'm wondering whether this competition can break through this arbitrary limit of 83% accuracy. It would be very exciting to see it happen.&nbsp;</p>\n<p>[/quote]</p>\n<p>I am curious about this paper. &nbsp;Do you have a link? &nbsp;I searched and found quite a few references to RAPID and an accuracy of 70-80% on 10-20 classes. &nbsp;There was also mention that the classification was often subjective among scientists, which is why we get class&nbsp;overlap&nbsp;like protist_other and&nbsp;protist_noctiluca. &nbsp;</p>\n<p>At any rate, it seems that this dataset is the most extensive to date. &nbsp;This should help get great results.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "65437",
      "postDate": "03/04/2015 20:43:22",
      "content": "<p>[quote=Ryan Munion;65431]</p>\n<p>[quote=Jessica Luo;65374]</p>\n<p>Just to jump in here and offer my 2 cents.&nbsp;In our field (plankton imaging), one of the early papers put out ~83% overall accuracy as a high benchmark, and it has become a sort of &quot;gold standard.&quot; While I will - and have - argued that this benchmark is arbitrary and somewhat questionably derived, it remains that our field has yet to see this threshold broken with a real dataset (not an artificially curated learning set).&nbsp;</p>\n<p>I'm seeing on this forum and this thread accuracy rates of 78% - and possibly higher? - so I'm wondering whether this competition can break through this arbitrary limit of 83% accuracy. It would be very exciting to see it happen.&nbsp;</p>\n<p>[/quote]</p>\n<p>I am curious about this paper. &nbsp;Do you have a link? &nbsp;I searched and found quite a few references to RAPID and an accuracy of 70-80% on 10-20 classes. &nbsp;There was also mention that the classification was often subjective among scientists, which is why we get class&nbsp;overlap&nbsp;like protist_other and&nbsp;protist_noctiluca. &nbsp;</p>\n<p>At any rate, it seems that this dataset is the most extensive to date. &nbsp;This should help get great results.</p>\n<p>[/quote]</p>\n<p>Hi Ryan,</p>\n<p>The RAPID article (<a href=\"http://www.tos.org/oceanography/archive/20-2_benfield.html\">Benfield et al. 2007</a>) that you mention is a great one for an intro to field and techniques used, and it has a more complete overview of the history of these imaging systems than what I am going to provide here. But nonetheless - to answer your question, the Video Plankton Recorder (&quot;VPR&quot;; <a href=\"http://www.sciencemag.org/content/257/5067/230.abstract\">Davis et al. 1992</a>) was one of the first - and still widely used - plankton imaging systems developed. The VPR&nbsp;team also developed one of the early automatic plankton classification techniques using SVMs and Neural Nets&nbsp;(<a href=\"http://www.int-res.com/abstracts/meps/v295/p21-31/\">Hu and Davis 2005</a>, <a href=\"http://www.int-res.com/abstracts/meps/v306/p51-61/\">Hu and Davis 2006</a>). That approach, along with Gabriel Gorsky's team's Random Forest based approach (<a href=\"http://plankt.oxfordjournals.org/content/32/3/285.abstract\">Gorsky et al. 2010</a>) remains among the more widely used / accepted approaches within plankton imaging today.&nbsp;</p>\n<p>Hu and Davis (VPR;&nbsp;<a href=\"http://www.int-res.com/abstracts/meps/v295/p21-31/\">2005</a>)&nbsp;were among the first to put out a benchmark for &quot;acceptable accuracy&quot; in classification: 67-83%, which is based on the work of Culverhouse et al. (<a href=\"http://www.int-res.com/abstracts/meps/v247/p17-25/\">2003</a>). For better or for worse, that number has more or less stuck (though some research groups functionally ignore accuracy and recall and optimize their workflow for analysis/processing time) -- and has become that high benchmark in our field. Of course, you can curate any kind of ideal learning set from your data and obtain a near perfect classification accuracy on it, but to then take your model and apply to your real data -- particularly in an unbounded problem, with Unknowns -- I have yet to see this value exceeded. So -- while it's really exciting to see us in an unbounded, 120+ class problem that&nbsp;represents real world data(*) get so close to breaking this&nbsp;benchmark, the real test would be when we take these algorithms to the whole dataset to see how they perform. That's when the magic will happen!</p>\n<p>Cheers,</p>\n<p>Jessica</p>\n<p>* - Of course, this competition dataset is not completely representative of our actual dataset. If so, you would get about 1 fish to 1,000&nbsp;detritus and that would be no fun at all. Plus, everyone would optimize their models to&nbsp;perfectly predict the detritus and get great log-loss scores whereas what we're really interested in is classifying&nbsp;the fish and other organisms.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "65462",
      "postDate": "03/04/2015 22:49:50",
      "content": "<p>Thank you.</p>\n<p>I will be interested in seeing how the results fair in practice.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "66018",
      "postDate": "03/12/2015 08:16:06",
      "content": "<p>My accuracy on test data is 73.5% with a log-loss of 0.862932 on the leader board.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "66026",
      "postDate": "03/12/2015 09:12:28",
      "content": "<p>We are seeing accuracy of 80% with log-loss around 1.0. Any advice on how to optimize log-loss?</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "66028",
      "postDate": "03/12/2015 09:42:15",
      "content": "<p>[quote=Alex Zam;66026]</p>\n<p>We are seeing accuracy of 80% with log-loss around 1.0. Any advice on how to optimize log-loss?</p>\n<p>[/quote]</p>\n<p>Is it 80% accurate on test data - that is 130400 images?</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "66033",
      "postDate": "03/12/2015 12:09:33",
      "content": "<p>Guys, my best single model performs 71.22% accuracy on validation data and it is 0.93 on LB.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "66049",
      "postDate": "03/12/2015 16:19:42",
      "content": "<p>They couldn't possibly know if it were &nbsp;80% accurate on the test data without cheating and hand labeling, Sachin.</p>\n\n<p>Anyway, I'm at ~73-74% accuracy.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "66051",
      "postDate": "03/12/2015 17:17:37",
      "content": "<p>[quote=Torgos;66049]</p>\n<p>They couldn't possibly know if it were &nbsp;80% accurate on the test data without cheating and hand labeling, Sachin.</p>\n<p>Anyway, I'm at ~73-74% accuracy.</p>\n<p>[/quote]</p>\n<p>Hi Torgos, you need not cheat and hand label to get percentage accuracy on test data.</p>\n<p>On this thread I have given a method to deduce percentage accuracy from log-loss, you can try that.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "66170",
      "postDate": "03/14/2015 09:32:13",
      "content": "<p>@Sachin, would like to explain your aforementioned equation in details?</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "66173",
      "postDate": "03/14/2015 10:45:01",
      "content": "<p>[quote=PengPai;66170]</p>\n<p>@Sachin, would like to explain your aforementioned equation in details?</p>\n<p>[/quote]<br><br></p>\n<p>Sure PengPai I will try my best.</p>\n\n<p>Note: All logarithms are to the base &quot;e&quot;</p>\n<p>Lets say there are 2 classes- class 0 and class 1. And there are 5 images. Let the probabilities predicated for each class be as follows</p>\n<p>class0&nbsp;&nbsp; class1&nbsp;&nbsp; actual_class</p>\n<p>0.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class1</p>\n<p>0.2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class1</p>\n<p>0.3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class1</p>\n<p>0.6 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.4 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class1</p>\n<p>0.25&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.75&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class0</p>\n\n<p>so the percentage accuracy would be 3*100/5 = 60%&nbsp; which is unknown at the moment for the test data. But the log-loss calculated based on the evaluation metric is</p>\n<p>-(log(0.9)+log(0.8)+log(0.7)+log(0.4)+log(0.25))/5 = 0.59755282</p>\n<p>But in order to get your percentage accuracy you need to make another submission making the class with highest probability in each row to be 1 and the rest to be 0.</p>\n<p>that is</p>\n<p>class0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; actual_class</p>\n<p>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class1</p>\n<p>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class1</p>\n<p>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class1</p>\n<p>1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class1</p>\n<p>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class0</p>\n\n<p>so your CV score would be&nbsp; -(log(1) + log(1) + log(1)+log(10^-15)+log(10^-15))/5 = 13.81551056</p>\n<p>since log(0) is -infinity the smallest number they consider is 10^-15.</p>\n\n<p>In order to get the percentage accuracy from this do</p>\n<p>1+ (13.81551056/log(10^-15)) = 0.6 = 60%</p>\n<p>If it is still not clear you can ask me again.</p>\n<p>Thanks</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "66174",
      "postDate": "03/14/2015 10:48:51",
      "content": "<p>[quote=Sachin;66051]</p>\n<p>[quote=Torgos;66049]</p>\n<p>They couldn't possibly know if it were &nbsp;80% accurate on the test data without cheating and hand labeling, Sachin.</p>\n<p>Anyway, I'm at ~73-74% accuracy.</p>\n<p>[/quote]</p>\n<p>Hi Torgos, you need not cheat and hand label to get percentage accuracy on test data.</p>\n<p>On this thread I have given a method to deduce percentage accuracy from log-loss, you can try that.</p>\n<p>[/quote]</p>\n\n<p>Hi Torgos,</p>\n<p>I don't really understand why you down voted my comment, but please have a look at the solution I have provided to get the percentage accuracy and then you can decide.</p>\n<p>Thanks</p>\n<p>-Sachin</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "66232",
      "postDate": "03/15/2015 12:36:23",
      "content": "<p>@Jessica Luo: After the competition could you please post some of the leading accuracy scores as well?&nbsp; Just for curiosity :-).&nbsp; Thanks!</p>\n\n<p>[quote=Jessica Luo;65437]</p>\n<p>Hu and Davis (VPR;&nbsp;<a href=\"http://www.int-res.com/abstracts/meps/v295/p21-31/\">2005</a>)&nbsp;were among the first to put out a benchmark for &quot;acceptable accuracy&quot; in classification: 67-83%, which is based on the work of Culverhouse et al. (<a href=\"http://www.int-res.com/abstracts/meps/v247/p17-25/\">2003</a>).</p>\n<p>[/quote]</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "66281",
      "postDate": "03/15/2015 20:56:00",
      "content": "<p>Instead of just looking at the overall accuracy, I did a breakdown of the per class percentage accuracy.<br><br>The charts are for: (i) total counts (ii) miss counts (iii) miss percentages &#8211; all as a function of class id (121 plankton classes, alphabetically sorted). For each image, a &#8220;hit&#8221; is attributed to a class only if the highest probability class prediction matches the actual class in the training set (last layer is CNN softmax). These stats are based on 80% of the ~30k training set from which the model predictions were created - this is usually a no no, but I also ran this procedure on the validation set and got very similar results (the problem with the validation set is that some classes are very small).</p>\n<p>In order to get a good overall score, a model needs to somehow lower those high bars in the middle misses chart, especially those with high miss rates (bottom chart).<br><br>The usual suspects for poorly predicted classes are the aptly named &#8220;others&#8221; and &#8220;unknowns&#8221; e.g. class ids: 11,85,118,119,120</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "66282",
      "postDate": "03/15/2015 20:57:41",
      "content": "<p>... inline image didn't work, please see attachment.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "66430",
      "postDate": "03/16/2015 18:15:54",
      "content": "<p>[quote=Moy;66232]</p>\n<p>@Jessica Luo: After the competition could you please post some of the leading accuracy scores as well?&nbsp; Just for curiosity :-).&nbsp; Thanks!</p>\n<p>[/quote]</p>\n<p>Yup - sure! I'll pull a few from the top of the leaderboard after the competition ends. Good luck to all in the final push!</p>",
      "rawMarkdown": "",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 63904,
      "author_name": "mjahrer",
      "author_url": "",
      "post_date": "02/10/2015 09:41:21",
      "content": "<p>Hi, very similar to my results.</p>\n<p>valid (random 20%): Accuracy=0.683&nbsp;LogLossMulti=1.1244</p>\n<p>leaderboard:&nbsp;1.067027</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 63910,
      "author_name": "sachinvernekar",
      "author_url": "",
      "post_date": "02/10/2015 10:53:22",
      "content": "<p>Thanks Michael.</p>\n<p>I wanted to know the maximum percentage accuracy people have got. It looks like the log-loss function needs to be optimized separately, I have found that even with 35% accuracy you can beat the top score if you are lucky with random submission. So basically log-loss is bit fishy.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 63912,
      "author_name": "mjahrer",
      "author_url": "",
      "post_date": "02/10/2015 11:19:14",
      "content": "<p>[quote=Sash;63910]</p>\n<p>Thanks Michael.</p>\n<p>I wanted to know the maximum percentage accuracy people have got. It looks like the log-loss function needs to be optimized separately, I have found that even with 35% accuracy you can beat the top score if you are lucky with random submission. So basically log-loss is bit fishy.</p>\n<p>[/quote]</p>\n<p>Yep, logloss sounds also not natural for me given the problem here.</p>\n<p>By changing my train method I can achieve 71% accuracy, but logloss dropped a lot.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 63933,
      "author_name": "emolson",
      "author_url": "",
      "post_date": "02/10/2015 16:40:22",
      "content": "<p>[quote=Sash;63910]</p>\n<p>Thanks Michael.</p>\n<p>I have found that even with 35% accuracy you can beat the top score if you are lucky with random submission.</p>\n<p>[/quote]</p>\n<p>Can you explain this a bit more?&nbsp;</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 63940,
      "author_name": "adjgiulio",
      "author_url": "",
      "post_date": "02/10/2015 17:13:46",
      "content": "<p>My cv accuracy is as high as 74% but, as other folks have reported, that doesn't always go hand in hand with lower&nbsp;logloss.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 63942,
      "author_name": "potamitis",
      "author_url": "",
      "post_date": "02/10/2015 17:20:30",
      "content": "<p>[quote=Michael Jahrer;63904]</p>\n<p>Hi, very similar to my results.</p>\n<p>valid (random 20%): Accuracy=0.683&nbsp;LogLossMulti=1.1244</p>\n<p>leaderboard:&nbsp;1.067027</p>\n<p>[/quote]</p>\n<p>Is it correct that you don't use CNNs? This would be an accomplishment.</p>\n<p>btw 0.87 logloss at ~74% acc</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 63959,
      "author_name": "mjahrer",
      "author_url": "",
      "post_date": "02/10/2015 20:00:27",
      "content": "<p>[quote=Rafael;63942]</p>\n<p>[quote=Michael Jahrer;63904]</p>\n<p>Hi, very similar to my results.</p>\n<p>valid (random 20%): Accuracy=0.683&nbsp;LogLossMulti=1.1244</p>\n<p>leaderboard:&nbsp;1.067027</p>\n<p>[/quote]</p>\n<p>Is it correct that you don't use CNNs? This would be an accomplishment.</p>\n<p>btw 0.87 logloss at ~74% acc</p>\n<p>[/quote]</p>\n\n<p>yep, no CNN, but NN with geometric data augmentation :) - I cracked the 1.0 on the leaderboard. Thats it for now</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 63994,
      "author_name": "sachinvernekar",
      "author_url": "",
      "post_date": "02/11/2015 02:39:38",
      "content": "<p>[quote=emolson;63933]</p>\n<p>[quote=Sash;63910]</p>\n<p>Thanks Michael.</p>\n<p>I have found that even with 35% accuracy you can beat the top score if you are lucky with random submission.</p>\n<p>[/quote]</p>\n<p>Can you explain this a bit more?&nbsp;</p>\n<p>[/quote]</p>\n<p>I just meant it is possible mathematically.. but looks impossible probabilistically.</p>\n<p>Say percentage accuracy is 35. so if we have probability of 1 for those images, contribution to CV score from 35% of data is 0. that is 0.35*ln(1) = 0.</p>\n<p>For the rest 65% which is erroneous - let us say we have probability of 0.49 for those locations where y(i,j) in log loss function so it sums up to -0.65*ln(0.49) = 0.4636.. so the total score is 0.4636...</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 64066,
      "author_name": "oneoff",
      "author_url": "",
      "post_date": "02/11/2015 21:11:42",
      "content": "<p>Mayby its goes as follows :</p>\n<p>for one observation LogLoss takes the following form : LL = -y*log(p), but we don't know `y`, if we could estimate probability of correct guess as 'q', then we obtain expected LogLoss in the form : E(LL) = -q*log(p) -(1-q)*log((1-p)/(n-1)), where n is number of classes, and probability assigned, to each of them is&nbsp;(1-p)/(n-1), now take derivative over p, and find p in terms of q and n, for n=1 case&nbsp; solution is simply p = q :-) for other values of n please calculate yourself, you can further optimize with use of a priori classes probabilities, deriving analytical solution should not be as hard as it seems</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 64087,
      "author_name": "sachinvernekar",
      "author_url": "",
      "post_date": "02/12/2015 03:35:57",
      "content": "<p>[quote=xvnv;64066]</p>\n<p>Mayby its goes as follows :</p>\n<p>for one observation LogLoss takes the following form : LL = -y*log(p), but we don't know `y`, if we could estimate probability of correct guess as 'q', then we obtain expected LogLoss in the form : E(LL) = -q*log(p) -(1-q)*log((1-p)/(n-1)), where n is number of classes, and probability assigned, to each of them is&nbsp;(1-p)/(n-1), now take derivative over p, and find p in terms of q and n, for n=1 case&nbsp; solution is simply p = q :-) for other values of n please calculate yourself, you can further optimize with use of a priori classes probabilities, deriving analytical solution should not be as hard as it seems</p>\n<p>[/quote]</p>\n\n<p>This is the first thing I tried, but with this we cannot beat the best score unless we have an accuracy of 90+ percentage...may be 93% can't recall exactly..</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 65232,
      "author_name": "atreo1",
      "author_url": "",
      "post_date": "03/02/2015 12:54:58",
      "content": "<p>Logloss is there to penalize wildly wrong guesses. They are telling you it's better to have two options with 60%-40% accuracy (for example) than saying &quot;this one has 60%, so I'll go with this as the right option&quot;. My problem in this is that it creates some sort of moral dilema, since there is a lot of tricks you could use to reduce your logloss artificially, without improving your accuracy or even being realistic. I want to really give the probabilities as my model predicts them, without having to look at the logloss score.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 65374,
      "author_name": "jessicaluo",
      "author_url": "",
      "post_date": "03/04/2015 02:13:39",
      "content": "<p>Just to jump in here and offer my 2 cents.&nbsp;In our field (plankton imaging), one of the early papers put out ~83% overall accuracy as a high benchmark, and it has become a sort of &quot;gold standard.&quot; While I will - and have - argued that this benchmark is arbitrary and somewhat questionably derived, it remains that our field has yet to see this threshold broken with a real dataset (not an artificially curated learning set).&nbsp;</p>\n<p>I'm seeing on this forum and this thread accuracy rates of 78% - and possibly higher? - so I'm wondering whether this competition can break through this arbitrary limit of 83% accuracy. It would be very exciting to see it happen.&nbsp;</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 65377,
      "author_name": "songgc",
      "author_url": "",
      "post_date": "03/04/2015 03:53:41",
      "content": "<p>@Jessica, I believe top ten players already went beyond 83%:)</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 65385,
      "author_name": "sachinvernekar",
      "author_url": "",
      "post_date": "03/04/2015 06:27:43",
      "content": "<p>@Jessica</p>\n<p>Your are the competition admin, do you not know if it has broken 83% accuracy limit?</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 65386,
      "author_name": "chenglongchen",
      "author_url": "",
      "post_date": "03/04/2015 06:47:19",
      "content": "<p>My statistic on 10% validation set is: logloss~0.64 and accuracy~80%. So I support&nbsp;@Guocong Song's guess.</p>\n<p>If the evaluation is the accuracy itself, a higher accuracy can&nbsp;be reached using other loss functions, e.g., hinge loss.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 65387,
      "author_name": "sachinvernekar",
      "author_url": "",
      "post_date": "03/04/2015 07:02:48",
      "content": "<p>[quote=yr;65386]</p>\n<p>My statistic on 10% validation set is: logloss~0.64 and accuracy~80%. So I support&nbsp;@Guocong Song's guess.</p>\n<p>If the evaluation is the accuracy itself, a higher accuracy can&nbsp;be reached using other loss functions, e.g., hinge loss.</p>\n<p>[/quote]</p>\n<p>Can you explain how we can achieve higher accuracy with other loss functions? Is it the objective function of neural network that we need to change?</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 65388,
      "author_name": "oldufo",
      "author_url": "",
      "post_date": "03/04/2015 07:05:15",
      "content": "<p>I don`t support, may be top-2 only :) Around 0.6 I have noticed that my more accurate models scores worse in logloss and visa-versa.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 65389,
      "author_name": "sachinvernekar",
      "author_url": "",
      "post_date": "03/04/2015 07:13:36",
      "content": "<p>for people who would want to get percentage accuracy on training set, all you have to do is submit an entry containing only ones and zeros. That is in each row replace the max probability with 1 and rest with zeros.</p>\n<p>Then if you get a score X, the percentage accuracy would be</p>\n<p>1+ (x/log(10^-15))</p>\n<p>log is natural logarithm.</p>\n<p>So with this you can share your actual test data percentage accuracy if you wish.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 65390,
      "author_name": "liangpang",
      "author_url": "",
      "post_date": "03/04/2015 07:13:45",
      "content": "<p>10% validation set is not stable. The same model has ~+-0.04 difference on logloss.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 65394,
      "author_name": "melgor",
      "author_url": "",
      "post_date": "03/04/2015 10:08:03",
      "content": "<p>[quote=Sachin;65387]</p>\n<p>[quote=yr;65386]</p>\n<p>My statistic on 10% validation set is: logloss~0.64 and accuracy~80%. So I support&nbsp;@Guocong Song's guess.</p>\n<p>If the evaluation is the accuracy itself, a higher accuracy can&nbsp;be reached using other loss functions, e.g., hinge loss.</p>\n<p>[/quote]</p>\n<p>Can you explain how we can achieve higher accuracy with other loss functions? Is it the objective function of neural network that we need to change?</p>\n<p>[/quote]</p>\n\n<p>If you would like to get higher accuracy using other loss function, you should change loss function. In Caffe you should change &quot;SOFTMAX_LOOS&quot; to &quot;HINGE_LOSS&quot;. This will change from LinerarClassifier to SVM. But for your information, SVM does not care about loss, only accuracy.</p>\n<p>I think that about is Sachin was thinking&nbsp;about&nbsp;</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 65431,
      "author_name": "iamthep",
      "author_url": "",
      "post_date": "03/04/2015 19:24:05",
      "content": "<p>[quote=Jessica Luo;65374]</p>\n<p>Just to jump in here and offer my 2 cents.&nbsp;In our field (plankton imaging), one of the early papers put out ~83% overall accuracy as a high benchmark, and it has become a sort of &quot;gold standard.&quot; While I will - and have - argued that this benchmark is arbitrary and somewhat questionably derived, it remains that our field has yet to see this threshold broken with a real dataset (not an artificially curated learning set).&nbsp;</p>\n<p>I'm seeing on this forum and this thread accuracy rates of 78% - and possibly higher? - so I'm wondering whether this competition can break through this arbitrary limit of 83% accuracy. It would be very exciting to see it happen.&nbsp;</p>\n<p>[/quote]</p>\n<p>I am curious about this paper. &nbsp;Do you have a link? &nbsp;I searched and found quite a few references to RAPID and an accuracy of 70-80% on 10-20 classes. &nbsp;There was also mention that the classification was often subjective among scientists, which is why we get class&nbsp;overlap&nbsp;like protist_other and&nbsp;protist_noctiluca. &nbsp;</p>\n<p>At any rate, it seems that this dataset is the most extensive to date. &nbsp;This should help get great results.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 65437,
      "author_name": "jessicaluo",
      "author_url": "",
      "post_date": "03/04/2015 20:43:22",
      "content": "<p>[quote=Ryan Munion;65431]</p>\n<p>[quote=Jessica Luo;65374]</p>\n<p>Just to jump in here and offer my 2 cents.&nbsp;In our field (plankton imaging), one of the early papers put out ~83% overall accuracy as a high benchmark, and it has become a sort of &quot;gold standard.&quot; While I will - and have - argued that this benchmark is arbitrary and somewhat questionably derived, it remains that our field has yet to see this threshold broken with a real dataset (not an artificially curated learning set).&nbsp;</p>\n<p>I'm seeing on this forum and this thread accuracy rates of 78% - and possibly higher? - so I'm wondering whether this competition can break through this arbitrary limit of 83% accuracy. It would be very exciting to see it happen.&nbsp;</p>\n<p>[/quote]</p>\n<p>I am curious about this paper. &nbsp;Do you have a link? &nbsp;I searched and found quite a few references to RAPID and an accuracy of 70-80% on 10-20 classes. &nbsp;There was also mention that the classification was often subjective among scientists, which is why we get class&nbsp;overlap&nbsp;like protist_other and&nbsp;protist_noctiluca. &nbsp;</p>\n<p>At any rate, it seems that this dataset is the most extensive to date. &nbsp;This should help get great results.</p>\n<p>[/quote]</p>\n<p>Hi Ryan,</p>\n<p>The RAPID article (<a href=\"http://www.tos.org/oceanography/archive/20-2_benfield.html\">Benfield et al. 2007</a>) that you mention is a great one for an intro to field and techniques used, and it has a more complete overview of the history of these imaging systems than what I am going to provide here. But nonetheless - to answer your question, the Video Plankton Recorder (&quot;VPR&quot;; <a href=\"http://www.sciencemag.org/content/257/5067/230.abstract\">Davis et al. 1992</a>) was one of the first - and still widely used - plankton imaging systems developed. The VPR&nbsp;team also developed one of the early automatic plankton classification techniques using SVMs and Neural Nets&nbsp;(<a href=\"http://www.int-res.com/abstracts/meps/v295/p21-31/\">Hu and Davis 2005</a>, <a href=\"http://www.int-res.com/abstracts/meps/v306/p51-61/\">Hu and Davis 2006</a>). That approach, along with Gabriel Gorsky's team's Random Forest based approach (<a href=\"http://plankt.oxfordjournals.org/content/32/3/285.abstract\">Gorsky et al. 2010</a>) remains among the more widely used / accepted approaches within plankton imaging today.&nbsp;</p>\n<p>Hu and Davis (VPR;&nbsp;<a href=\"http://www.int-res.com/abstracts/meps/v295/p21-31/\">2005</a>)&nbsp;were among the first to put out a benchmark for &quot;acceptable accuracy&quot; in classification: 67-83%, which is based on the work of Culverhouse et al. (<a href=\"http://www.int-res.com/abstracts/meps/v247/p17-25/\">2003</a>). For better or for worse, that number has more or less stuck (though some research groups functionally ignore accuracy and recall and optimize their workflow for analysis/processing time) -- and has become that high benchmark in our field. Of course, you can curate any kind of ideal learning set from your data and obtain a near perfect classification accuracy on it, but to then take your model and apply to your real data -- particularly in an unbounded problem, with Unknowns -- I have yet to see this value exceeded. So -- while it's really exciting to see us in an unbounded, 120+ class problem that&nbsp;represents real world data(*) get so close to breaking this&nbsp;benchmark, the real test would be when we take these algorithms to the whole dataset to see how they perform. That's when the magic will happen!</p>\n<p>Cheers,</p>\n<p>Jessica</p>\n<p>* - Of course, this competition dataset is not completely representative of our actual dataset. If so, you would get about 1 fish to 1,000&nbsp;detritus and that would be no fun at all. Plus, everyone would optimize their models to&nbsp;perfectly predict the detritus and get great log-loss scores whereas what we're really interested in is classifying&nbsp;the fish and other organisms.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 65462,
      "author_name": "iamthep",
      "author_url": "",
      "post_date": "03/04/2015 22:49:50",
      "content": "<p>Thank you.</p>\n<p>I will be interested in seeing how the results fair in practice.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 66018,
      "author_name": "sachinvernekar",
      "author_url": "",
      "post_date": "03/12/2015 08:16:06",
      "content": "<p>My accuracy on test data is 73.5% with a log-loss of 0.862932 on the leader board.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 66026,
      "author_name": "alexzam",
      "author_url": "",
      "post_date": "03/12/2015 09:12:28",
      "content": "<p>We are seeing accuracy of 80% with log-loss around 1.0. Any advice on how to optimize log-loss?</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 66028,
      "author_name": "sachinvernekar",
      "author_url": "",
      "post_date": "03/12/2015 09:42:15",
      "content": "<p>[quote=Alex Zam;66026]</p>\n<p>We are seeing accuracy of 80% with log-loss around 1.0. Any advice on how to optimize log-loss?</p>\n<p>[/quote]</p>\n<p>Is it 80% accurate on test data - that is 130400 images?</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 66033,
      "author_name": "pengpai",
      "author_url": "",
      "post_date": "03/12/2015 12:09:33",
      "content": "<p>Guys, my best single model performs 71.22% accuracy on validation data and it is 0.93 on LB.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 66049,
      "author_name": "telser",
      "author_url": "",
      "post_date": "03/12/2015 16:19:42",
      "content": "<p>They couldn't possibly know if it were &nbsp;80% accurate on the test data without cheating and hand labeling, Sachin.</p>\n\n<p>Anyway, I'm at ~73-74% accuracy.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 66051,
      "author_name": "sachinvernekar",
      "author_url": "",
      "post_date": "03/12/2015 17:17:37",
      "content": "<p>[quote=Torgos;66049]</p>\n<p>They couldn't possibly know if it were &nbsp;80% accurate on the test data without cheating and hand labeling, Sachin.</p>\n<p>Anyway, I'm at ~73-74% accuracy.</p>\n<p>[/quote]</p>\n<p>Hi Torgos, you need not cheat and hand label to get percentage accuracy on test data.</p>\n<p>On this thread I have given a method to deduce percentage accuracy from log-loss, you can try that.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 66170,
      "author_name": "pengpai",
      "author_url": "",
      "post_date": "03/14/2015 09:32:13",
      "content": "<p>@Sachin, would like to explain your aforementioned equation in details?</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 66173,
      "author_name": "sachinvernekar",
      "author_url": "",
      "post_date": "03/14/2015 10:45:01",
      "content": "<p>[quote=PengPai;66170]</p>\n<p>@Sachin, would like to explain your aforementioned equation in details?</p>\n<p>[/quote]<br><br></p>\n<p>Sure PengPai I will try my best.</p>\n\n<p>Note: All logarithms are to the base &quot;e&quot;</p>\n<p>Lets say there are 2 classes- class 0 and class 1. And there are 5 images. Let the probabilities predicated for each class be as follows</p>\n<p>class0&nbsp;&nbsp; class1&nbsp;&nbsp; actual_class</p>\n<p>0.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class1</p>\n<p>0.2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class1</p>\n<p>0.3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class1</p>\n<p>0.6 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.4 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class1</p>\n<p>0.25&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.75&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class0</p>\n\n<p>so the percentage accuracy would be 3*100/5 = 60%&nbsp; which is unknown at the moment for the test data. But the log-loss calculated based on the evaluation metric is</p>\n<p>-(log(0.9)+log(0.8)+log(0.7)+log(0.4)+log(0.25))/5 = 0.59755282</p>\n<p>But in order to get your percentage accuracy you need to make another submission making the class with highest probability in each row to be 1 and the rest to be 0.</p>\n<p>that is</p>\n<p>class0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; actual_class</p>\n<p>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class1</p>\n<p>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class1</p>\n<p>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class1</p>\n<p>1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class1</p>\n<p>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class0</p>\n\n<p>so your CV score would be&nbsp; -(log(1) + log(1) + log(1)+log(10^-15)+log(10^-15))/5 = 13.81551056</p>\n<p>since log(0) is -infinity the smallest number they consider is 10^-15.</p>\n\n<p>In order to get the percentage accuracy from this do</p>\n<p>1+ (13.81551056/log(10^-15)) = 0.6 = 60%</p>\n<p>If it is still not clear you can ask me again.</p>\n<p>Thanks</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 66174,
      "author_name": "sachinvernekar",
      "author_url": "",
      "post_date": "03/14/2015 10:48:51",
      "content": "<p>[quote=Sachin;66051]</p>\n<p>[quote=Torgos;66049]</p>\n<p>They couldn't possibly know if it were &nbsp;80% accurate on the test data without cheating and hand labeling, Sachin.</p>\n<p>Anyway, I'm at ~73-74% accuracy.</p>\n<p>[/quote]</p>\n<p>Hi Torgos, you need not cheat and hand label to get percentage accuracy on test data.</p>\n<p>On this thread I have given a method to deduce percentage accuracy from log-loss, you can try that.</p>\n<p>[/quote]</p>\n\n<p>Hi Torgos,</p>\n<p>I don't really understand why you down voted my comment, but please have a look at the solution I have provided to get the percentage accuracy and then you can decide.</p>\n<p>Thanks</p>\n<p>-Sachin</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 66232,
      "author_name": "moyeaswaran",
      "author_url": "",
      "post_date": "03/15/2015 12:36:23",
      "content": "<p>@Jessica Luo: After the competition could you please post some of the leading accuracy scores as well?&nbsp; Just for curiosity :-).&nbsp; Thanks!</p>\n\n<p>[quote=Jessica Luo;65437]</p>\n<p>Hu and Davis (VPR;&nbsp;<a href=\"http://www.int-res.com/abstracts/meps/v295/p21-31/\">2005</a>)&nbsp;were among the first to put out a benchmark for &quot;acceptable accuracy&quot; in classification: 67-83%, which is based on the work of Culverhouse et al. (<a href=\"http://www.int-res.com/abstracts/meps/v247/p17-25/\">2003</a>).</p>\n<p>[/quote]</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 66281,
      "author_name": "gala1276881",
      "author_url": "",
      "post_date": "03/15/2015 20:56:00",
      "content": "<p>Instead of just looking at the overall accuracy, I did a breakdown of the per class percentage accuracy.<br><br>The charts are for: (i) total counts (ii) miss counts (iii) miss percentages &#8211; all as a function of class id (121 plankton classes, alphabetically sorted). For each image, a &#8220;hit&#8221; is attributed to a class only if the highest probability class prediction matches the actual class in the training set (last layer is CNN softmax). These stats are based on 80% of the ~30k training set from which the model predictions were created - this is usually a no no, but I also ran this procedure on the validation set and got very similar results (the problem with the validation set is that some classes are very small).</p>\n<p>In order to get a good overall score, a model needs to somehow lower those high bars in the middle misses chart, especially those with high miss rates (bottom chart).<br><br>The usual suspects for poorly predicted classes are the aptly named &#8220;others&#8221; and &#8220;unknowns&#8221; e.g. class ids: 11,85,118,119,120</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 66282,
      "author_name": "gala1276881",
      "author_url": "",
      "post_date": "03/15/2015 20:57:41",
      "content": "<p>... inline image didn't work, please see attachment.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 66430,
      "author_name": "jessicaluo",
      "author_url": "",
      "post_date": "03/16/2015 18:15:54",
      "content": "<p>[quote=Moy;66232]</p>\n<p>@Jessica Luo: After the competition could you please post some of the leading accuracy scores as well?&nbsp; Just for curiosity :-).&nbsp; Thanks!</p>\n<p>[/quote]</p>\n<p>Yup - sure! I'll pull a few from the top of the leaderboard after the competition ends. Good luck to all in the final push!</p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "63903": "",
    "63904": "",
    "63910": "",
    "63912": "",
    "63933": "",
    "63940": "",
    "63942": "",
    "63959": "",
    "63994": "",
    "64066": "",
    "64087": "",
    "65232": "",
    "65374": "",
    "65377": "",
    "65385": "",
    "65386": "",
    "65387": "",
    "65388": "",
    "65389": "",
    "65390": "",
    "65394": "",
    "65431": "",
    "65437": "",
    "65462": "",
    "66018": "",
    "66026": "",
    "66028": "",
    "66033": "",
    "66049": "",
    "66051": "",
    "66170": "",
    "66173": "",
    "66174": "",
    "66232": "",
    "66281": "",
    "66282": "",
    "66430": ""
  },
  "source": "meta"
}