Classification Learner: Not all table variables appear as potential responses

조회 수: 6 (최근 30일)
I'm using the Classification Learner app in MATLAB 9.4.0.813654 (R2018a) on a Windows Server 2016 Datacenter with table data.The table has six variables and 10097 records. Four variables are doubles and two are catagorical. When I select the table from the available workspace variables in the New Session window all six variables appear in the Predictors window. Only four appear in the Response dropdown, however, two categorical and two double. Why are not all of the variables available as Resonse variables? More confusingly, if I try the same thing with a table that only incldues the first four records, all the variables show up as potential predictors but only two show up as potential response variables. If I do the same thing with a table that only includes the first six records, again, all of the variables show up as potential predictors but only two variables show up as potential response variables but they are different than in the four record case. What's going on? Stumped.
  댓글 수: 2
Stephan
Stephan 2019년 1월 15일
can you provide a sample of your data?
Stephan
Stephan 2019년 1월 16일
편집: Stephan 2019년 1월 16일
Please use comment function for comments, in order to let people see that there is no answer to your question until now.
If i open subtable1.mat i get:
Also i get the same result when opening subtable2.mat. I guess what you want me to test is the marked subtable1 and subtable2 (?).

댓글을 달려면 로그인하십시오.

채택된 답변

Stephan
Stephan 2019년 1월 16일
Hi,
here is a try for an answer, which i can not prove by a link from the documentation, but which seems to be logical to me:
If we try to use this dataset in classification learner app, we can use all variables as predictor:
ClassificationLearnerR2018a_subtable1.PNG
But we can not use 'E' as response.Try this on your subtable1 variable:
>> format long
>> unique(subtable1(:,'E'))
ans =
16×1 table
E
____________
6.8338422432
6.8342400812
6.8343378922
6.8343442664
6.8364939104
6.8368686694
6.8408070458
6.8411429002
6.841627779
6.8418271376
6.8431855016
6.8437495084
6.8438446818
6.8439594174
6.844679702
6.844730256
The dataset has a size of 16 observations and we want to classify. How can we classify if every observation has a different 'E' value. This is not very useful to try. I think Classification learner app is smart enough to notice, that this variable is not suitable for the purpose as a response variable.
This would be different if you would use the regression learner app, since this is the job of the regression learner. But in the regression learner app the categorical variables 'A' and 'B' would not work as response, since they do not make any sense for a regression result.
Best regards
Stephan
  댓글 수: 1
John Burkhardt
John Burkhardt 2019년 1월 23일
Thanks for the help and input. Still mulling the probem. If I figure anything out I'll repost.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

John Burkhardt
John Burkhardt 2019년 1월 16일
Sure. Attached are two sub-tables taken from arbitrary positions in the parent table. Specficaly,
subtable1 = parenttable(234:234+15,:);
subtable2 = parenttable(9734:9734+24,:);
Each behaves differently within the Classification Learner App and differently than the parent table.
Thanks for the assistance.
PS: I successfully worked with the full parent table data set a few months ago using the Classification Learner App. I did the work on a machine matained by others so I am unsure what, if any, configuration changes have occured. I am looking for earlier versions of MATLAB to try. I will post what I find.

카테고리

Help CenterFile Exchange에서 Classification Learner App에 대해 자세히 알아보기

제품


릴리스

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by