試験後勉強_1
すでに試験は終わってしまいましたが、とりあえず残りの分もやっておきます。
そうじゃないと気持ち悪いので。
今回も興味のない人には無意味な文字の羅列でしょうが…
興味のある人は下の判別分析をクリック!!



11/30 判別分析の復習

もう試験は済んでしまって必要が無いかもしれませんが、
とりあえず中途半端は嫌いなので五回分を全てUPして
いこうと思います。記念にねw
また来年同じ講義の場合は参考になるかもしれないしw

今回も判別分析の復習の前に前回のレポートの復習です。

dat<-c
prcomp(dat[,1:3],scale=TRUE)
こうすることでサンプル2-1の内容を平均0,分散1に変換し、
データを正規化(規格化)することが出来ます。
僕は今回の試験で問1をこれを使うことで規格化しました。
こうしないと主成分が偏って分析結果がうまく得られない
事が多いです。いわゆる重みをつけるってことですかね。


それでは、判別分析の復習に行きましょう!!
今回から行数をつけることにしました。
コマンドの頭にある数字:は入力しないでいいので。
まぁ、ある程度慣れてる人はわかりますよねw

01:train<-h
02:test<-i
03:plot(train[,1:2])
04:train$class=="a"
05:train[train$class=="a",1:2]
06:points(train[train$class=="a",1:2],col="red")
07:points(train[train$class=="a",1:2],col="red",pch=21)
08:points(train[train$class=="a",1:2],col="red",pch=19)
09:points(train[train$class=="b",1:2],col="blue")
10:library(MASS)
11:names(train)
12:names(test)
13:lda(class~x1+x2,data=train)
14:ld<-lda(class~x1+x2,data=train)
15:summary(ld)
16:predict(ld,test)
17:table(test$class,predict(ld,test)$class)
18:points(test[test$class=="a",1:2,col="green",pch=19)
19:points(test[test$class=="b",1:2,col="orange",pch=19)
20:text(test[,1:2],label=1:20)
21:cov(train[train$class=="a",1:2])
22:cov(train[train$class=="b",1:2])

01:サンプル4_1の読み込み
02:サンプル4_2の読み込み
03:サンプル4_1のプロット
04:trainの中のclassがaであるものをTRUE、違うものをFALSEと表示
05:trainの中のclassがaであるものを表示
06:プロットの中のaを赤色にする
07:プロットのaを白抜きの赤色にする
08:プロットのaを赤く塗りつぶす
pch=xxのxxに数字を入れるといろいろなプロットの仕方をしてくれます

09:プロットのbを青色にする
10:MASSというパッケージを読み込む
11:trainのリストの名前をみる
12:testのリストの名前をみる
13:以下のような計算をする

Prior probabilities of groups:
含有率を表示
Group means:
それぞれの平均を表示
Coefficients of linear discriminants:
F=αx1+βx2+cとしてFの正負でa,bを判断するときの
係数α,βをそれぞれx1,x2に表示

14: 13:をldの中に入れる
15:式の詳細を表示
16:ldによってtestのclassを判別する
[1]に判別結果を表示
$posterior
testのそれぞれのデータがa,bどちららしいかを表示
それぞれらしい確率なので和は1
0.5より大きい方が判別結果として採用される
$x
正負でa,bに分ける
判別関数の値の一覧

17:判別結果がどれだけ合っているかを表示
対角成分が正しい判定結果
そのほかは間違った判定結果

18:testのaを緑色(塗りつぶし)でプロットする
19:testのbを橙色(塗りつぶし)でプロットする
20:testのプロットに数字を打ち込む
何番がどこにあるかがわかるようになる


21:…
22:…
21:22:はどういうコマンドかわかりません。
とりあえず何かのデータが出てきます。
> cov(train[train$class=="a",1:2])
x1 x2
x1 15.296838 1.026082
x2 1.026082 4.928047
> cov(train[train$class=="b",1:2])
x1 x2
x1 15.99447 -1.989760
x2 -1.98976 6.430269

どういう意味かわかる人がいたら教えてください。
というところで、11/30の復習は終了です。
[PR]
by skc_rr-22 | 2006-01-20 01:20 | 戯言(雑記)


<< 試験後勉強_2 久々に >>