Search Comments and Ratings

go

   
Date File Comment by Comment Rating
05 Feb 2015 Machine Learning with MATLAB These are the supporting MATLAB files for the MathWorks webinar of the same name. Author: Abhishek Gupta

Abhishek Gupta (view profile)

Benjamin

How are the categorical predictors handled in the sequentialfs step in MachineLearning.m line 430 if the logical matrix catPred isn't used in the critfun or in sequentialfs? Thanks for the clarification.

5
05 Feb 2015 Machine Learning with MATLAB These are the supporting MATLAB files for the MathWorks webinar of the same name. Author: Abhishek Gupta

Abhishek Gupta (view profile)

Benjamin

5
13 Nov 2012 ROCout=roc(varargin) compute a ROC curve Author: Giuseppe Cardillo Benjamin

In the 25 Sep 2012 version, can you describe/cite how 'trace(M)/sum(M(:))' , where M is a 2x2 of [TP FP;FN TN], results in an efficiency measure at each threshold?

Comment only
15 Mar 2011 ROCout=roc(varargin) compute a ROC curve Author: Giuseppe Cardillo Benjamin

I was also going to suggest adding a varagin to delineate a step-size, ex:
%add a varagin, in this case I am calling it step which can describe the distance between thresholds to be calculated
if(nargin<2 )
z=sortrows(x,1);
%find unique values in z
step=unique(z(:,1));
elseif length(step)==1 % the fixed step size is being requested
step=[min(pred):step:max(pred)]
end
% later in guiseppe code just do labels=step

Also, Guiseppe, I implemented your standard error and pythagoras into my code which generated data that will probably used in an upcoming paper. Do you mind being acknowledged or are there any actual articles to cite? Your call. And lastly, I have a GUI that is pretty beta, but works.

Comment only
12 Nov 2010 Clinical Test Performance The test calculate the performance of a clinical test based on the Bayes theorem Author: Giuseppe Cardillo Benjamin

Isn't 1-spec equal to false positive rate? I think this is backward on the output partest and roseplot figures (red should be false positive, and yellow should be false negative). In the code it seems like these values (fp1 and fp2) are used correctly throughout and just mis-labelled on the output graphs. Would you mind confirming this? As always, thanks for the excellent code. The comments in this one are really great and I learned a ton going through it.

Comment only
12 Nov 2010 ROCout=roc(varargin) compute a ROC curve Author: Giuseppe Cardillo Benjamin

Thanks, that fixed it and I now understand the difference with SE.

Comment only
12 Nov 2010 Clinical Test Performance The test calculate the performance of a clinical test based on the Bayes theorem Author: Giuseppe Cardillo Benjamin

5
12 Nov 2010 ROCout=roc(varargin) compute a ROC curve Author: Giuseppe Cardillo Benjamin

Thanks for answering all of my questions, I really do appreciate it. I still have an issue with your answer for number 3.

First, I was using an inverted data set when I stated the answer should be 151 not 150 (previous post). Second, using the download available on this page right now, running roc(x) gives a cutoff of 153. As you state, the correct answer is in fact 152. Therefore, I am not sure if you changed something and didn't update, since the cutoff value is still using the row of the minimum distance from xroc,yroc and grabbing that rows value from 'labels', hence the wrong answer of 153. (lines 184-186)

To confirm this, run the download from here and see what cutoff you get. Maybe it is something on my end?

As for the standard error calculation (#4), I was playing around and found that if I inverted the 1's and 0's before running, I would get a different Serror for the AUC, which I assumed should be the same regardless of whether they were inverted. The Serror of the sample data is 0.02713, and if I invert the observations, it becomes 0.0364. This is probably trivial.

Thanks again for your excellent responses.

5
11 Nov 2010 ROCout=roc(varargin) compute a ROC curve Author: Giuseppe Cardillo Benjamin

Also, when hbar>ubar, I think values in standard error calculations should be changed. Otherwise, you can get to different standard error values from the same area under the curve depending on whether healthy average is higher than disease average.

Sorry to keep bugging you here, but this is the best way I can see to make suggestions. As you can tell, I have been digging into this lately.

Comment only
11 Nov 2010 ROCout=roc(varargin) compute a ROC curve Author: Giuseppe Cardillo Benjamin

I think there may be an issue within the code, but I could be wrong. When you create xroc and yroc using
xroc=flipud([1; 1-a(:,2); 0]) , the additional two rows are not also added to labels. For instance, in your example data, this yields 72 paired points for the ROC curve (# rows in xroc or yroc) but only 70 thresholds (# rows in labels). This causes issues when reporting the threshold value since this is determined by a row reference back to labels (in the example, the threshold by your math should be 151 not 150 (using 'labels' and 'a').

If this doesn't make sense, or I am wrong, please let me know. Its really not a big deal with large datasets with many points on the curve, but becomes an issue with smaller sets where points are farther apart.

Comment only
03 Nov 2010 ROCout=roc(varargin) compute a ROC curve Author: Giuseppe Cardillo Benjamin

Giuseppe,

First off, great code, really. I was wondering if you used a specific citable method to calculate the standard error for the AUC, which is then used for the CI?

Second, and more trivial, have you thought about implementing this as a GUI or stand alone? My next side project is to make one for my boss to use (without Matlab).

Thanks again for the great code.

5
31 Oct 2010 putvar, uigetvar Move (get or put) variable(s) directly between a function workspace and the base workspace Author: John D'Errico

John D'Errico (view profile)

Benjamin

I used putvar and it is perfect. Right now I am calling it once the workspace variable has been filled and that seems to work fine. About putvar, are there any issues with assigning different types of variables, for instance adding single quotes to the variable like in the example ('C').

Thanks for the great tool.

5

Contact us