library("kohonen")
data(nir)
attach(nir)
#SOM, the supervised learning, train the map using temperature as the class
variable.
set.seed(13)
nir.xyf<- xyf(data=spectra, Y=classvec2classmat(temperature), xweight = 0.9,
grid=somgrid(4, 4, "hexagonal"))
temp.xyf <- predict(nir.xyf)$unit.prediction #get prediction
temp.predict<- as.numeric(classmat2classvec(temp.xyf)) #change matrix to
vectors.
par(mfrow=c(1,2))
plot(nir.xyf, type="property", property=temp.predict, palette.name =rainbow,
main="Prediction ")
cl <- colors()
bgcols <- cl[2:14]
plot(nir.xyf, type="mapping", labels=nir$temperature,
bgcol=bgcols[as.integer(temp.predict)],
main="Mapping plot")
par(mfrow=c(1,1))
HI, Joris,
Thanks so much for your suggestion! I have modified the above codes, and
what I want is to label the notes by the temperature.
if a note has 3 objects mapped to it (the temperature are 30, 40, 30), then
I want the 30 be labeled on the note.
the right plot is the mapping plot, I want it to be labeled by only one
temperature.
Thanks so much!
On Tue, Jun 1, 2010 at 5:36 PM, Joris Meys <[email protected]> wrote:
> Dear Changbin,
>
> Please provide a self-contained, minimal example, meaning the whole code
> should run and create the plot as it is now, without having to load your
> dataset (which we don't have). Otherwise it's impossible to see what's going
> on and help you.
>
> Cheers
> Joris
>
> On Wed, Jun 2, 2010 at 2:21 AM, Changbin Du <[email protected]> wrote:
>
>> HI, Dear R community,
>>
>> I am using the following codes to do the som. I tried to label the notes
>> by
>> the majority vote. either through mapping or prediction.
>> I attached my output, the left one dont have any labels in the note, the
>> right one has more than one label in each note. I need to have only one
>> label for each note either by majority vote or prediction.
>>
>> Can anyone give some suggestions or advice? Thanks so much!
>>
>>
>>
>> alex<-read.table("/home/cdu/operon/alex2.txt", , sep="\t", skip=0,
>> header=T,
>> fill=T)
>> alex1<-alex[,c(1:257)]
>> levels(alex1$Label)
>>
>> alex1$outcome<-as.numeric(alex1$Label)
>> alex1$outcome[1:20]
>>
>>
>> #self-organizing maps(unsupervised learning)
>> library("kohonen")
>>
>>
>> #SOM, the supervised learning, train the map using outcome as the class
>> variable.
>> set.seed(13)
>> final.xyf<- xyf(data=as.matrix(alex1[,c(1:256)]),
>> Y=classvec2classmat(alex1$outcome), xweight = 0.99, grid=somgrid(20, 30,
>> "hexagonal"))
>>
>>
>> outcome.xyf <- predict(final.xyf)$unit.prediction#get prediction
>> outcome.predict<- as.numeric(classmat2classvec(outcome.xyf)) #change
>> matrix
>> to vectors.
>>
>> outcome.label<-LETTERS[outcome.predict] #conver the numeric value to
>> letters.
>>
>>
>> plot(final.xyf, type="property", property=outcome.predict,
>> labels=outcome.label, palette.name =rainbow, main="Prediction ")
>>
>>
>>
>> cl <- colors()
>> bgcols <- cl[2:14]
>> plot(final.xyf, type="mapping", labels=outcome.label, col="black",
>> bgcol=bgcols[as.integer(outcome.predict)],
>> main="Mapping plot")
>>
>>
>>
>>
>> --
>> Sincerely,
>> Changbin
>> --
>>
>> ______________________________________________
>> [email protected] mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide
>> http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>>
>>
>
>
> --
> Joris Meys
> Statistical Consultant
>
> Ghent University
> Faculty of Bioscience Engineering
> Department of Applied mathematics, biometrics and process control
>
> Coupure Links 653
> B-9000 Gent
>
> tel : +32 9 264 59 87
> [email protected]
> -------------------------------
> Disclaimer : http://helpdesk.ugent.be/e-maildisclaimer.php
>
--
Sincerely,
Changbin
--
[[alternative HTML version deleted]]
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.