[GRASS-user] Problem with v.class.mIR

Moritz Lennert mlennert at club.worldonline.be
Wed Dec 4 03:27:55 PST 2019


[Guisseppe sent me the files].

The issue is your training file.

As the manual page states:


"The user provides a set of objects (or segments) to be classified, 
including all feature variables describing these object, and a set of 
objects to be used as training data, including the same feature 
variables as those describing the unknown objects, plus one additional 
column indicating the class each training falls into. The training data 
can, but does not have to be, a subset of the set of objects to be 
classified."

IOW, the training data file has to contain the same feature variables as 
the data you wish to classify.

Your data is:

$ head -1 segmentation_map.csv
cat,area,perimeter,compact_circle,fd

$ head -1 training_map.csv
cat,id,cate

i.e. you training data only includes the id and the class, but not the 
variables describing the objects.

The reason this is organised in this manner is that you might have 
training data which is independent of the data you wish to classify, 
i.e. the ids of the training data might not be linked to the ids in the 
object data.

Another issue is that in your command, you do not provide a good name 
for the column that contains the actual class label in the training data:

v.class.mlR segments_map=gbbb at PERMANENT training_map=tainning at PERMANENT 
train_class_column=fd [...]

v.class.mlR segments_map=gbbb training_map=tainning 
train_class_column=class [...]

Your training data does not contain a column 'fd' nor a column 'class'. 
I suppose that in your data it is the column 'cate'.

Moritz

On 4/12/19 10:38, Moritz Lennert wrote:
> Sorry for ignoring you up to now, just to much on the platter right now.
> 
> Would it be feasible for you to make the data available, privately if
> necessary ? The easiest (and lightest) would be just the csv output of
> v.db.select on the training_map and the segments_maps.
> 
> Moritz
> 
> On 2/12/19 16:31, Giuseppe Cillis wrote:
>> No one can help me?
>> GC
>>
>> Il giorno mer 20 nov 2019 alle ore 14:06 Giuseppe Cillis
>> <giucillis at gmail.com <mailto:giucillis at gmail.com>> ha scritto:
>>
>>      Thanks for the answer._
>>      _
>>      _
>>      _
>>      _v.class.mlR segments_map=gbbb at PERMANENT
>>      training_map=tainning at PERMANENT train_class_column=fd
>>      output_class_column=vote output_prob_column=prob folds=5
>>      partitions=10 tunelength=10 weighting_metric=accuracy_
>>
>>      _and the same error with this command:
>>      _
>>      _v.class.mlR segments_map=gbbb training_map=tainning
>>      train_class_column=class weighting_mode=smv,swv,qbwwv -i_
>>
>>      The vector used was elaborated with i.segment.stats module.
>>      An extract is here:
>>      cat 	area 	perimeter 	fd
>>      1 	958 	208 	1.555034
>>      2 	24 	22 	1.945217
>>      3 	160 	80 	1.726846
>>      4 	2036 	242 	1.440904
>>      5 	25 	26 	2.024344
>>      6 	222 	96 	1.68966
>>      7 	8435 	1012 	1.530879
>>
>>
>>      /cat /type Integer (9-0)
>>      /fd /type double/real (25-9)
>>      For the training area (t/ainning/), I use a simple vector with
>>      numerical categories (named/"cate"/) and there are 11 features (just
>>      for a trying). The type is in integer64 (10)
>>
>>      Il giorno mer 20 nov 2019 alle ore 12:18 Moritz Lennert
>>      <mlennert at club.worldonline.be <mailto:mlennert at club.worldonline.be>>
>>      ha scritto:
>>
>>          On 20/11/19 11:55, Giuseppe Cillis wrote:
>>           > Hi,
>>           > I'm trying to use this module for classification of an old
>>          aerial photos.
>>           > After a segmentation (i.segment and i.segment.stats), I would
>>          to use a
>>           > machine learning approach for the real classification.
>>           > I tried with v.class.mIR which use also R.
>>           > But there is an error and I don't know how to solve it:
>>           > */Durante l'avvio - Warning messages:
>>           > 1: Setting LC_CTYPE=it_IT.cp1252 failed
>>           > 2: Setting LC_COLLATE=it_IT.cp1252 failed
>>           > 3: Setting LC_TIME=it_IT.cp1252 failed
>>           > 4: Setting LC_MONETARY=it_IT.cp1252 failed
>>           > Carico il pacchetto richiesto: caret
>>           > Carico il pacchetto richiesto: lattice
>>           > Carico il pacchetto richiesto: ggplot2
>>           > Error in `$<-.data.frame`(`*tmp*`, fd, value = integer(0)) :
>>           >    replacement has 0 rows, data has 11
>>           > Calls: $<- -> $<-.data.frame/*
>>           > */
>>           > /*
>>           > A part is in italian, I'm sorry.
>>           > I'm a beginner in grass and R.
>>
>>          R messages are often not very explicit, unfortunately.
>>
>>          Could you provide us with the exact command line you use (If you
>>          use the
>>          GUI, you can get the command line by clicking the 'Copy' button
>>          once
>>          you've filled out all the parameters, or in the history of the
>>          'Console'
>>          in the Layer manager.) and an extract of the attribute data you
>>          feed
>>          into the module ?
>>
>>          Moritz
>>
>>
>> _______________________________________________
>> grass-user mailing list
>> grass-user at lists.osgeo.org
>> https://lists.osgeo.org/mailman/listinfo/grass-user
>>
> 
> 
> _______________________________________________
> grass-user mailing list
> grass-user at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/grass-user
> 




More information about the grass-user mailing list