Borrar filtros
Borrar filtros

How to plot feature importance on x-axis and variable names on y-axis?

16 visualizaciones (últimos 30 días)
I wish to plot variables names on y-axis and feature importance on x-axis in Random Forest Regression. Also the variables on y-axis should be in descending order according to their feature importance on x-axis. I request you to kindly suggest me how to do it. D S Chahar
  1 comentario
Devendra
Devendra el 8 de Ag. de 2023
I want to generate the feature importance plot similar to attached image. I request you all to please suggest me how to create it in matlab. Many thanks in advance.
Devendra

Iniciar sesión para comentar.

Respuesta aceptada

dpb
dpb el 8 de Ag. de 2023
Editada: dpb el 8 de Ag. de 2023
See barh and particularly <the example>. Use the second optional output from sort to get the order of the variables when you sort them to put in descending order to use with xticklabels to label the y-axis tick values. Or, you could convert to categorical variable type for the x-value (as ordinal to keep the sorted order) and will get the labels automagically.
nfacts=8;
features="f"+[0:nfacts-1].';
F=randi([20,125],size(features));
[F,ix]=sort(F);
hB=barh(F);
yticklabels(features(ix))
xlabel('F Score'), ylabel('Features')
hTxt=text(hB.YEndPoints,hB.XEndPoints," "+string(F),'horizontal','left','vertical','middle');
NOTA BENE: with the horiontal bar, the x,y postions for text() are y,x on the plot axes nomenclature; that's easy to confuse and the text doesn't show up or is somewhere bizarre.
  3 comentarios
dpb
dpb el 9 de Ag. de 2023
"...keep the values ... up to two decimal points only"
Just replace
" "+string(F)
generating the string to write with
compose(" %0.2f",F)
The olden way was with num2str

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Labels and Annotations en Help Center y File Exchange.

Productos


Versión

R2023a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by