SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Downloaden Sie, um offline zu lesen
データアーティスト株式会社
Rを用いたデータマイニング概論 第5回
判別分析
社内研修
Copyright© 2002-2013 Data Artist, Inc. All Rights Reserved. Page2Page2Page2Page2
アジェンダ
①判別分析の概要
②線形判別・樹木モデル・
SVM・ランダムフォレストを動かしてみよう!
③様々なデータでの比較
各手法の概念の理解と、
どのような特徴があるかを体感しよう!!
判別分析の概要
Copyright© 2002-2013 Data Artist, Inc. All Rights Reserved. Page4Page4Page4Page4
データマイニング
解析(微積)・線形代数・統計・プログラミング
土台
正解が
無い
ある
正解が
数値
クラス
regression
回帰分析
判別分析
クラスター
分析
classification
clustering
最大・最小を
調べる。
多変量を
あつかう。
不確かな
事象を扱う。
マーケティング
次元圧縮
メタヒューリスティクス
時系列データ
テキストデータ
ネットワークデータ
※”Rによるデータサイエンス 森北出版”で理論的解説が割愛されているところは、本講義でも割愛。
Copyright© 2002-2013 Data Artist, Inc. All Rights Reserved. Page5Page5Page5Page5
判別分析概要
※ちなみにt検定は100年以上も前に開発されました。
時代19951930 1960 2001
性能
線形分離 分類木 SVM ランダムフォレスト
分類機能 低 中 高 高
計算速度 高 中 低 中
可読性 中 高 低 中
知名度 高 高 高 低
線形判別
理解のため大切
1本の直線 2本以上の直線 曲線
樹木モデル
SVM
+
カーネル
トリック
ランダム
フォレスト
(集団学習)
良く使う
Copyright© 2002-2013 Data Artist, Inc. All Rights Reserved. Page6Page6Page6Page6
判別分析の流れ
データの取得・生成
埼玉・金融
東京・金融
神奈川・保険
大阪・保険
購入したクリエイティブA,B,C
訓練学習 テスト
Feature Generation
→ユーザーの特徴を造る。県、
会社、デモグラフィック、etc。
Feature Selection
→造った特徴の中から重要なもの
を選択する。
Dimensional Compression
→属性を掛け合わせて新しい重要な
属性を作る。人口/面積=人口密度
データの一部で訓練を行う。
どんな学習方法が良いか??
データの種類、目的に応じて。
LC TM
RFSVM
残りのデータでテストを行う。
RF
答え合わせ
データから学習するだけでなく
そのモデルが、未知のデータを
どれほど説明できるかを調べる。
動かしてみよう!
#今回必要なパッケージ、事前に実行してください
required.packages=c("mvpart","kernlab","randomForest","scatterplot3d")
install.packages(required.packages)
#irisデータを学習用とテスト用に分けましょう
sample.v=sort(sample(150,75))
train.iris=iris[sample.v,]
test.iris=iris[-sample.v,]
Copyright© 2002-2013 Data Artist, Inc. All Rights Reserved. Page8Page8Page8Page8
フィッシャーの線形判別
クラス間の重心が最も離れるように
軸をとり、垂線で区切る。
クラス内の分散が最小化される
ように軸をとる。
でクラス判別。0,0
22110


dd
nnd
ff
xaxaxaaf
fd
fd
fdはデータが二次元なら直線、三次元なら平面、4次元以上なら超平面。
変数の線形結合
うんちく:irisのデータは、フィッシャーが判別分析を行うために用意したデータだそうです。
Copyright© 2002-2013 Data Artist, Inc. All Rights Reserved. Page9Page9Page9Page9
線形判別を使ってみよう!!
#線形判別
library(MASS) #まずは分類
iris.lda=lda(Species~.,data=train.iris)
result.tab=table(test.iris[,"Species"],
predict(iris.lda,test.iris[,-5])$class)
sum(diag(result.tab))/sum(result.tab)
library(scatterplot3d) #描画(不便)
col.pallet=c("#f79646", "#9bbb59", "#4bacc6")
col.v=col.pallet[test.iris[,5]]
s3d=scatterplot3d(test.iris[,1:3],color=col.v,type="h",
cex.symbols=1,angle=55, scale.y=0.7, pch=16,
main="scatterplot3d")
coef.mat=iris.lda[[4]][1:2,]
coef.mat=rbind(coef.mat,
-apply(iris.lda$means%*%iris.lda$scaling,2,mean))
coef.mat[,1]=coef.mat[,1]/iris.lda[[4]][3,1]
coef.mat[,2]=coef.mat[,2]/iris.lda[[4]][3,2]
coef.mat=-coef.mat
s3d$plane3d(Intercept=coef.mat[3,1], x.coef =coef.mat[1,1],
y.coef =coef.mat[2,1],lty = "dashed",
lty.box = NULL,col="#93cddd")
s3d$plane3d(Intercept=coef.mat[3,2], x.coef =coef.mat[1,2],
y.coef=coef.mat[2,2],lty = "dashed",
lty.box = NULL,col="#c3bb59")
●Linear Discriminant Analysis
3次元プロット
境界面
予測
Copyright© 2002-2013 Data Artist, Inc. All Rights Reserved. Page10Page10Page10Page10
樹木モデル(CART)の理論概要
 

c
i
tipGI
1
2
)|(1
No. 風 気温 海水浴
1 弱 高 行く
2 弱 低 行かない
3 弱 高 行く
4 弱 中 行く
5 弱 低 行かない
6 弱 高 行かない
7 強 高 行かない
8 強 低 行かない
9 強 中 行かない
10 強 高 行く
08.0)(
10
4
)(
10
6
)()(
375.0
4
3
4
1
1)(
5.0
6
3
6
3
1)(
22
22













































強風弱風分岐前風で分類
強風
弱風
GIGIGIGI
GI
GI
起きる確率に偏りがある場合に、
値が小さくなる!
気温で分けた方がうまくいく!!
“風の弱or強”で分けるのと”気温の低or高中”で分けるのでどちらが良いか?
48.0
10
6
10
4
1)(
22





















分岐前GI
137.0)(
10
4
)(
10
6
)()(
490.0
4
3
4
1
1)(
0
2
0
3
3
1)(
22
22













































強風弱風分岐前気温で分類
高低気温
低気温
GIGIGIGI
GI
GI
tmp=c
wnd=a
tmp=ab
wnd=b
行かない
6/4
行かない
3/0
行く
3/4
行かない
2/1
行く
1/3
ジニ係数
Copyright© 2002-2013 Data Artist, Inc. All Rights Reserved. Page11Page11Page11Page11
樹木モデルを使ってみよう!!
#分類木
library(mvpart)
iris.rp=rpart(Species~.,data=train.iris)
predict(iris.rp,test.iris[,-5])
result.tab=table(test.iris[,"Species"],
predict(iris.rp,test.iris[,-5],type="class"))
sum(diag(result.tab))/sum(result.tab)
クラスの予測
確率の予測
Petal.Length< 2.35
Petal.Length< 4.95
Petal.Length>=2.35
Petal.Length>=4.95
versicolor
23/27/25
setosa
23/0/0
versicolor
0/27/25
versicolor
0/26/1
virginica
0/1/24
plot(iris.rp,uniform=T,branch=0.6,margin=0.05)
text(iris.rp,use.n=T,all=T)
●Tree Model
Copyright© 2002-2013 Data Artist, Inc. All Rights Reserved. Page12Page12Page12Page12
SVM+カーネルトリックの理論概要
直線で分けれない
平面で分けれない
z=xy
考える。
平面で分けれる
平面で分けれる
カーネル法を使うと、空間の変換が低計算コストで行える。
次元数が増えても平気!!
“[連載]フリーソフトによるデータ解析・マイニング第31 回”より抜粋
D
サポートベクターとの距離=マージンを
最大化して、新規データへの分類性能が、
非常に高いマシンを造る。
カーネルトリックSVM(Support Vector Machine)
log(D)∝確率
Copyright© 2002-2013 Data Artist, Inc. All Rights Reserved. Page13Page13Page13Page13
SVM+カーネル法を使ってみよう!!
-1.5
-1.0
-0.5
0.0
0.5
1.0
1.5
2.0 2.5 3.0 3.5 4.0
4.5
5.0
5.5
6.0
6.5
7.0
SVM classification plot
Sepal.Width
Sepal.Length
#SVM
library(kernlab)
iris.svm=ksvm(Species~.,data=train.iris)
result.tab=table(test.iris[,"Species"],
predict(iris.svm,test.iris[,-5]))
sum(diag(result.tab))/sum(result.tab)
iris.sepal=iris[1:100,-c(3,4)]
iris.sepal.svm=ksvm(Species~.,data=iris.sepal)
plot(iris.sepal.svm,data=iris.sepal[,-3])
iris.p.svm=ksvm(Species~.,data=train.iris,prob.mod
el=T)
predict(iris.p.svm,test.iris[,-5], type="probabilities")
●Support Vector Machine
Copyright© 2002-2013 Data Artist, Inc. All Rights Reserved. Page14Page14Page14Page14
ランダムフォレストの理論概要
変数1 変数2 変数3 変数4 変数5 クラス
個体1 1 5 5 9 5 A
個体2 2 1 8 8 6 B
個体3 5 2 5 5 2 A
個体4 1 1 4 6 1 B
個体5 3 1 2 7 4 B
個体6 8 8 7 4 7 A
個体7 4 4 9 1 5 A
個体8 7 3 6 6 6 B
個体9 8 9 5 2 9 A
個体10 5 4 8 3 8 B
個体11 2 2 7 6 7 B
個体12 2 6 4 4 4 A
個体13 3 7 2 8 5 B
個体14 6 6 3 5 6 A
変数を選択
変数を選択
データを
選択
データを
選択
……
B
個体X
変数(1,3,4,2,1)
A A
個体X
クラス:A!!
木がいっぱいで森になる!!→意見が偏らず未知データへの対応力が高くなる!
多数決
Copyright© 2002-2013 Data Artist, Inc. All Rights Reserved. Page15Page15Page15Page15
ランダムフォレストを使ってみよう!!
Sepal.Width
Sepal.Length
Petal.Width
Petal.Length
0 5 10 15 20
iris.rf
MeanDecreaseGini
library(randomForest)
iris.rf=randomForest(Species~.,data=train.iris)
varImpPlot(iris.rf)
getTree(iris.rf,k=5)
result.tab=table(test.iris[,"Species"],
predict(iris.rf,test.iris[,-5]))
sum(diag(result.tab))/sum(result.tab)
重要情報の抽出
●Random Forrest
様々なデータでの比較
Copyright© 2002-2013 Data Artist, Inc. All Rights Reserved. Page17Page17Page17Page17
相互作用のあるデータ
x.v=rnorm(3000)
y.v=rnorm(3000)
class.v=as.factor(as.numeric((x.v*y.v)>0)+1)
non.lin.data=data.frame(x.v,y.v,class.v)
plot(non.lin.data[,1:2],col=c("#4bacc6","#f79646")[non.lin.data[,3]],pch=20)
correct.ratio.lda.v1=c();correct.ratio.rp.v1=c()
correct.ratio.svm.v1=c();correct.ratio.rf.v1=c()
for(i in 1:5){
sample.v=sample(3000,1500)
train.data=non.lin.data[sample.v,]
test.data=non.lin.data[-sample.v,]
#LDA
learn=lda(class.v~.,data=train.data)
result.tab=table(test.data[,3],
predict(learn,test.data[,-3])$class)
correct.ratio.lda.v1[i]=sum(diag(result.tab))/sum(result.tab)
#TREE
learn=rpart(class.v~.,data=train.data)
result.tab=table(test.data[,3],predict(learn,test.data[,-3],type="class"))
correct.ratio.rp.v1[i]=sum(diag(result.tab))/sum(result.tab)
#SVM
learn=ksvm(class.v~.,data=train.data)
result.tab=table(test.data[,3],predict(learn,test.data[,-3]))
correct.ratio.svm.v1[i]=sum(diag(result.tab))/sum(result.tab)
#RF
learn=randomForest(class.v~.,data=train.data)
result.tab=table(test.data[,3],predict(learn,test.data[,-3]))
correct.ratio.rf.v1[i]=sum(diag(result.tab))/sum(result.tab)
}
Copyright© 2002-2013 Data Artist, Inc. All Rights Reserved. Page18Page18Page18Page18
高次元のデータ(spam)
data(spam) #kernlabに入ってる
SPAM=spam
colnames(SPAM)[ncol(SPAM)]="class.v"
correct.ratio.lda.v2=c()
correct.ratio.rp.v2=c()
correct.ratio.svm.v2=c()
correct.ratio.rf.v2=c()
for(i in 1:5){
sample.v=sample(4601,2300)
train.data=SPAM[sample.v,]
test.data=SPAM[-sample.v,]
#LDA
learn=lda(class.v~.,data=train.data)
result.tab=table(test.data[,ncol(train.data)],
predict(learn,test.data[,-ncol(train.data)])$class)
correct.ratio.lda.v2[i]=sum(diag(result.tab))/sum(result.tab)
#TREE
learn=rpart(class.v~.,data=train.data)
result.tab=table(test.data[,ncol(train.data)],predict(learn,test.data[,-ncol(train.data)],type="class"))
correct.ratio.rp.v2[i]=sum(diag(result.tab))/sum(result.tab)
#SVM
learn=ksvm(class.v~.,data=train.data)
result.tab=table(test.data[,ncol(train.data)],predict(learn,test.data[,-ncol(train.data)]))
correct.ratio.svm.v2[i]=sum(diag(result.tab))/sum(result.tab)
#RF
learn=randomForest(class.v~.,data=train.data)
result.tab=table(test.data[,ncol(train.data)],predict(learn,test.data[,-ncol(train.data)]))
correct.ratio.rf.v2[i]=sum(diag(result.tab))/sum(result.tab)
}
メールにどんな単語が含まれているかと、
スパムかスパムじゃないかのデータ。
Copyright© 2002-2013 Data Artist, Inc. All Rights Reserved. Page19Page19Page19Page19
high.dim.mat=matrix(rnorm(30000),ncol=10)
class.v=as.factor(as.numeric(apply(high.dim.mat[,1:3],1,prod)>0)+1)
high.dim.mat=data.frame(high.dim.mat,class.v)
names(high.dim.mat)=c(letters[1:(ncol(high.dim.mat)-1)],"class.v")
scatterplot3d(high.dim.mat[,1:3],color=c("#4bacc6","#f79646")[class.v],cex.symbols=0.5,
angle=55, scale.y=0.7, pch=16, main="scatterplot3d")
correct.ratio.lda.v3=c();correct.ratio.rp.v3=c()
correct.ratio.svm.v3=c();correct.ratio.rf.v3=c()
for(i in 1:5){
sample.v=sample(3000,1500)
train.data=high.dim.mat[sample.v,]
test.data=high.dim.mat[-sample.v,]
learn=lda(class.v~.,data=train.data) #LDA
result.tab=table(test.data[,ncol(high.dim.mat)],
predict(learn,test.data[,-ncol(high.dim.mat)])$class)
correct.ratio.lda.v3[i]=sum(diag(result.tab))/sum(result.tab)
learn=rpart(class.v~.,data=train.data) #TREE
result.tab=table(test.data[,ncol(high.dim.mat)],
predict(learn,test.data[,-ncol(high.dim.mat)],type="class"))
correct.ratio.rp.v3[i]=sum(diag(result.tab))/sum(result.tab)
learn=ksvm(class.v~.,data=train.data) #SVM
result.tab=table(test.data[,ncol(high.dim.mat)],predict(learn,test.data[,-ncol(high.dim.mat)]))
correct.ratio.svm.v3[i]=sum(diag(result.tab))/sum(result.tab)
learn=randomForest(class.v~.,data=train.data) #RF
result.tab=table(test.data[,ncol(high.dim.mat)],predict(learn,test.data[,-ncol(high.dim.mat)]))
correct.ratio.rf.v3[i]=sum(diag(result.tab))/sum(result.tab)
}
高次元(10次元)の相互作用のあるデータ
Copyright© 2002-2013 Data Artist, Inc. All Rights Reserved. Page20Page20Page20Page20
correct.ratio.lda.v1 correct.ratio.rp.v1 correct.ratio.svm.v1 correct.ratio.rf.v1
0.40.60.81.0
Intr
correct.ratio.lda.v2 correct.ratio.rp.v2 correct.ratio.svm.v2 correct.ratio.rf.v2
0.890.910.930.95
Spam
correct.ratio.lda.v3 correct.ratio.rp.v3 correct.ratio.svm.v3 correct.ratio.rf.v3
0.500.600.700.80
High.D.intr
各データの比較
#3種のデータの比較
par(mfrow=c(3,1))
boxplot(data.frame(correct.ratio.lda.v1,
correct.ratio.rp.v1,correct.ratio.svm.v1,
correct.ratio.rf.v1),main="Intr")
boxplot(data.frame(correct.ratio.lda.v2,
correct.ratio.rp.v2,correct.ratio.svm.v2,
correct.ratio.rf.v2),main="Spam")
boxplot(data.frame(correct.ratio.lda.v3,
correct.ratio.rp.v3,correct.ratio.svm.v3,
correct.ratio.rf.v3),main="High.D.intr")
#重要な属性のみを取り出す
learn=randomForest(class.v~.,data=train.data)
learn$importance
高次元なデータ
にはRFが強い。
正答率 2次の相互作用
スパムデータ
10次の相互作用
線形判別 < 樹木モデル < SVM < ランダムフォレスト
の順に高い正答率を示しています。
どのアルゴリズムを使うかは、ベンダーによりけりです
が、DSPの○○拡張は基本これまで学んできた判別分析
の技術を使います。
CV拡張の場合は、CVしたかどうかを正解不正解、どん
なページを見ているかを属性データとして拡張(学習)を
していきます。

Weitere ähnliche Inhalte

Was ist angesagt?

[DL輪読会]Deep Learning 第4章 数値計算
[DL輪読会]Deep Learning 第4章 数値計算[DL輪読会]Deep Learning 第4章 数値計算
[DL輪読会]Deep Learning 第4章 数値計算Deep Learning JP
 
Fisher線形判別分析とFisher Weight Maps
Fisher線形判別分析とFisher Weight MapsFisher線形判別分析とFisher Weight Maps
Fisher線形判別分析とFisher Weight MapsTakao Yamanaka
 
PFI Seminar 2012/03/15 カーネルとハッシュの機械学習
PFI Seminar 2012/03/15 カーネルとハッシュの機械学習PFI Seminar 2012/03/15 カーネルとハッシュの機械学習
PFI Seminar 2012/03/15 カーネルとハッシュの機械学習Preferred Networks
 
実社会・実環境におけるロボットの機械学習 ver. 2
実社会・実環境におけるロボットの機械学習 ver. 2実社会・実環境におけるロボットの機械学習 ver. 2
実社会・実環境におけるロボットの機械学習 ver. 2Kuniyuki Takahashi
 
行列計算アルゴリズム
行列計算アルゴリズム行列計算アルゴリズム
行列計算アルゴリズムTakuo Tachibana
 
StanとRでベイズ統計モデリング 11章 離散値をとるパラメータ
StanとRでベイズ統計モデリング 11章 離散値をとるパラメータStanとRでベイズ統計モデリング 11章 離散値をとるパラメータ
StanとRでベイズ統計モデリング 11章 離散値をとるパラメータMiki Katsuragi
 
15分でわかる(範囲の)ベイズ統計学
15分でわかる(範囲の)ベイズ統計学15分でわかる(範囲の)ベイズ統計学
15分でわかる(範囲の)ベイズ統計学Ken'ichi Matsui
 
R Markdownによるドキュメント生成と バージョン管理入門
R Markdownによるドキュメント生成と バージョン管理入門R Markdownによるドキュメント生成と バージョン管理入門
R Markdownによるドキュメント生成と バージョン管理入門nocchi_airport
 
[DL輪読会]Deep Learning 第5章 機械学習の基礎
[DL輪読会]Deep Learning 第5章 機械学習の基礎[DL輪読会]Deep Learning 第5章 機械学習の基礎
[DL輪読会]Deep Learning 第5章 機械学習の基礎Deep Learning JP
 
R を起動するその前に
R を起動するその前にR を起動するその前に
R を起動するその前にKosei ABE
 
機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計Takahiro Kubo
 
統計的学習の基礎6章前半 #カステラ本
統計的学習の基礎6章前半 #カステラ本統計的学習の基礎6章前半 #カステラ本
統計的学習の基礎6章前半 #カステラ本Akifumi Eguchi
 
ブースティング入門
ブースティング入門ブースティング入門
ブースティング入門Retrieva inc.
 
サポートベクトルマシン(SVM)の勉強
サポートベクトルマシン(SVM)の勉強サポートベクトルマシン(SVM)の勉強
サポートベクトルマシン(SVM)の勉強Kazuki Adachi
 
Map Reduce 〜入門編:仕組みの理解とアルゴリズムデザイン〜
Map Reduce 〜入門編:仕組みの理解とアルゴリズムデザイン〜Map Reduce 〜入門編:仕組みの理解とアルゴリズムデザイン〜
Map Reduce 〜入門編:仕組みの理解とアルゴリズムデザイン〜Takahiro Inoue
 
Rにおける大規模データ解析(第10回TokyoWebMining)
Rにおける大規模データ解析(第10回TokyoWebMining)Rにおける大規模データ解析(第10回TokyoWebMining)
Rにおける大規模データ解析(第10回TokyoWebMining)Shintaro Fukushima
 
線形代数の視覚的理解 V1.1-Gストラング勉強会
線形代数の視覚的理解 V1.1-Gストラング勉強会線形代数の視覚的理解 V1.1-Gストラング勉強会
線形代数の視覚的理解 V1.1-Gストラング勉強会Kenji Hiranabe
 
敵対的学習に対するラデマッハ複雑度
敵対的学習に対するラデマッハ複雑度敵対的学習に対するラデマッハ複雑度
敵対的学習に対するラデマッハ複雑度Masa Kato
 
マルコフ転換モデル:導入編
マルコフ転換モデル:導入編マルコフ転換モデル:導入編
マルコフ転換モデル:導入編Masa Kato
 

Was ist angesagt? (20)

[DL輪読会]Deep Learning 第4章 数値計算
[DL輪読会]Deep Learning 第4章 数値計算[DL輪読会]Deep Learning 第4章 数値計算
[DL輪読会]Deep Learning 第4章 数値計算
 
Fisher線形判別分析とFisher Weight Maps
Fisher線形判別分析とFisher Weight MapsFisher線形判別分析とFisher Weight Maps
Fisher線形判別分析とFisher Weight Maps
 
PFI Seminar 2012/03/15 カーネルとハッシュの機械学習
PFI Seminar 2012/03/15 カーネルとハッシュの機械学習PFI Seminar 2012/03/15 カーネルとハッシュの機械学習
PFI Seminar 2012/03/15 カーネルとハッシュの機械学習
 
実社会・実環境におけるロボットの機械学習 ver. 2
実社会・実環境におけるロボットの機械学習 ver. 2実社会・実環境におけるロボットの機械学習 ver. 2
実社会・実環境におけるロボットの機械学習 ver. 2
 
行列計算アルゴリズム
行列計算アルゴリズム行列計算アルゴリズム
行列計算アルゴリズム
 
StanとRでベイズ統計モデリング 11章 離散値をとるパラメータ
StanとRでベイズ統計モデリング 11章 離散値をとるパラメータStanとRでベイズ統計モデリング 11章 離散値をとるパラメータ
StanとRでベイズ統計モデリング 11章 離散値をとるパラメータ
 
15分でわかる(範囲の)ベイズ統計学
15分でわかる(範囲の)ベイズ統計学15分でわかる(範囲の)ベイズ統計学
15分でわかる(範囲の)ベイズ統計学
 
R Markdownによるドキュメント生成と バージョン管理入門
R Markdownによるドキュメント生成と バージョン管理入門R Markdownによるドキュメント生成と バージョン管理入門
R Markdownによるドキュメント生成と バージョン管理入門
 
[DL輪読会]Deep Learning 第5章 機械学習の基礎
[DL輪読会]Deep Learning 第5章 機械学習の基礎[DL輪読会]Deep Learning 第5章 機械学習の基礎
[DL輪読会]Deep Learning 第5章 機械学習の基礎
 
R を起動するその前に
R を起動するその前にR を起動するその前に
R を起動するその前に
 
機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計機械学習で泣かないためのコード設計
機械学習で泣かないためのコード設計
 
統計的学習の基礎6章前半 #カステラ本
統計的学習の基礎6章前半 #カステラ本統計的学習の基礎6章前半 #カステラ本
統計的学習の基礎6章前半 #カステラ本
 
ブースティング入門
ブースティング入門ブースティング入門
ブースティング入門
 
サポートベクトルマシン(SVM)の勉強
サポートベクトルマシン(SVM)の勉強サポートベクトルマシン(SVM)の勉強
サポートベクトルマシン(SVM)の勉強
 
Map Reduce 〜入門編:仕組みの理解とアルゴリズムデザイン〜
Map Reduce 〜入門編:仕組みの理解とアルゴリズムデザイン〜Map Reduce 〜入門編:仕組みの理解とアルゴリズムデザイン〜
Map Reduce 〜入門編:仕組みの理解とアルゴリズムデザイン〜
 
Rにおける大規模データ解析(第10回TokyoWebMining)
Rにおける大規模データ解析(第10回TokyoWebMining)Rにおける大規模データ解析(第10回TokyoWebMining)
Rにおける大規模データ解析(第10回TokyoWebMining)
 
線形代数の視覚的理解 V1.1-Gストラング勉強会
線形代数の視覚的理解 V1.1-Gストラング勉強会線形代数の視覚的理解 V1.1-Gストラング勉強会
線形代数の視覚的理解 V1.1-Gストラング勉強会
 
敵対的学習に対するラデマッハ複雑度
敵対的学習に対するラデマッハ複雑度敵対的学習に対するラデマッハ複雑度
敵対的学習に対するラデマッハ複雑度
 
マルコフ転換モデル:導入編
マルコフ転換モデル:導入編マルコフ転換モデル:導入編
マルコフ転換モデル:導入編
 
Rの高速化
Rの高速化Rの高速化
Rの高速化
 

Ähnlich wie 判別分析

エンジニアのための機械学習の基礎
エンジニアのための機械学習の基礎エンジニアのための機械学習の基礎
エンジニアのための機械学習の基礎Daiyu Hatakeyama
 
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用までデータサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用までShunsuke Nakamura
 
Why dont you_create_new_spark_jl
Why dont you_create_new_spark_jlWhy dont you_create_new_spark_jl
Why dont you_create_new_spark_jlShintaro Fukushima
 
nlpaper.challenge NLP/CV交流勉強会 画像認識 7章
nlpaper.challenge NLP/CV交流勉強会 画像認識 7章nlpaper.challenge NLP/CV交流勉強会 画像認識 7章
nlpaper.challenge NLP/CV交流勉強会 画像認識 7章Takahiro Kubo
 
2017年3月版データマエショリスト入門
2017年3月版データマエショリスト入門2017年3月版データマエショリスト入門
2017年3月版データマエショリスト入門Yuya Matsumura
 
Feature Selection with R / in JP
Feature Selection with R / in JPFeature Selection with R / in JP
Feature Selection with R / in JPSercan Ahi
 
不均衡データのクラス分類
不均衡データのクラス分類不均衡データのクラス分類
不均衡データのクラス分類Shintaro Fukushima
 
131101 foss4 g_tokyo_r_presentation
131101 foss4 g_tokyo_r_presentation131101 foss4 g_tokyo_r_presentation
131101 foss4 g_tokyo_r_presentationTakayuki Nuimura
 
ビジネス活用事例で学ぶデータサイエンス入門 #2
ビジネス活用事例で学ぶデータサイエンス入門 #2ビジネス活用事例で学ぶデータサイエンス入門 #2
ビジネス活用事例で学ぶデータサイエンス入門 #2you shimajiro
 
ディープラーニング入門 ~ 画像処理・自然言語処理について ~
ディープラーニング入門 ~ 画像処理・自然言語処理について ~ディープラーニング入門 ~ 画像処理・自然言語処理について ~
ディープラーニング入門 ~ 画像処理・自然言語処理について ~Kensuke Otsuki
 
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V e-1
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V e-1データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V e-1
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V e-1Shunsuke Nakamura
 
Ⅰ. Rの基礎 2017
Ⅰ. Rの基礎 2017Ⅰ. Rの基礎 2017
Ⅰ. Rの基礎 2017wada, kazumi
 
データ解析入門
データ解析入門データ解析入門
データ解析入門Takeo Noda
 
Rユーザのためのspark入門
Rユーザのためのspark入門Rユーザのためのspark入門
Rユーザのためのspark入門Shintaro Fukushima
 
2017年3月版データマエショリスト入門(誤植修正版)
2017年3月版データマエショリスト入門(誤植修正版)2017年3月版データマエショリスト入門(誤植修正版)
2017年3月版データマエショリスト入門(誤植修正版)Yuya Matsumura
 
R's anti sparseness
R's anti sparsenessR's anti sparseness
R's anti sparsenessybenjo
 
機械学習 / Deep Learning 大全 (1) 機械学習基礎編
機械学習 / Deep Learning 大全 (1) 機械学習基礎編機械学習 / Deep Learning 大全 (1) 機械学習基礎編
機械学習 / Deep Learning 大全 (1) 機械学習基礎編Daiyu Hatakeyama
 
Azure Machine Learning Services 概要 - 2019年3月版
Azure Machine Learning Services 概要 - 2019年3月版Azure Machine Learning Services 概要 - 2019年3月版
Azure Machine Learning Services 概要 - 2019年3月版Daiyu Hatakeyama
 
LET2011: Rによる教育データ分析入門
LET2011: Rによる教育データ分析入門LET2011: Rによる教育データ分析入門
LET2011: Rによる教育データ分析入門Yuichiro Kobayashi
 
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V7
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V7データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V7
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V7Shunsuke Nakamura
 

Ähnlich wie 判別分析 (20)

エンジニアのための機械学習の基礎
エンジニアのための機械学習の基礎エンジニアのための機械学習の基礎
エンジニアのための機械学習の基礎
 
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用までデータサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで
 
Why dont you_create_new_spark_jl
Why dont you_create_new_spark_jlWhy dont you_create_new_spark_jl
Why dont you_create_new_spark_jl
 
nlpaper.challenge NLP/CV交流勉強会 画像認識 7章
nlpaper.challenge NLP/CV交流勉強会 画像認識 7章nlpaper.challenge NLP/CV交流勉強会 画像認識 7章
nlpaper.challenge NLP/CV交流勉強会 画像認識 7章
 
2017年3月版データマエショリスト入門
2017年3月版データマエショリスト入門2017年3月版データマエショリスト入門
2017年3月版データマエショリスト入門
 
Feature Selection with R / in JP
Feature Selection with R / in JPFeature Selection with R / in JP
Feature Selection with R / in JP
 
不均衡データのクラス分類
不均衡データのクラス分類不均衡データのクラス分類
不均衡データのクラス分類
 
131101 foss4 g_tokyo_r_presentation
131101 foss4 g_tokyo_r_presentation131101 foss4 g_tokyo_r_presentation
131101 foss4 g_tokyo_r_presentation
 
ビジネス活用事例で学ぶデータサイエンス入門 #2
ビジネス活用事例で学ぶデータサイエンス入門 #2ビジネス活用事例で学ぶデータサイエンス入門 #2
ビジネス活用事例で学ぶデータサイエンス入門 #2
 
ディープラーニング入門 ~ 画像処理・自然言語処理について ~
ディープラーニング入門 ~ 画像処理・自然言語処理について ~ディープラーニング入門 ~ 画像処理・自然言語処理について ~
ディープラーニング入門 ~ 画像処理・自然言語処理について ~
 
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V e-1
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V e-1データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V e-1
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V e-1
 
Ⅰ. Rの基礎 2017
Ⅰ. Rの基礎 2017Ⅰ. Rの基礎 2017
Ⅰ. Rの基礎 2017
 
データ解析入門
データ解析入門データ解析入門
データ解析入門
 
Rユーザのためのspark入門
Rユーザのためのspark入門Rユーザのためのspark入門
Rユーザのためのspark入門
 
2017年3月版データマエショリスト入門(誤植修正版)
2017年3月版データマエショリスト入門(誤植修正版)2017年3月版データマエショリスト入門(誤植修正版)
2017年3月版データマエショリスト入門(誤植修正版)
 
R's anti sparseness
R's anti sparsenessR's anti sparseness
R's anti sparseness
 
機械学習 / Deep Learning 大全 (1) 機械学習基礎編
機械学習 / Deep Learning 大全 (1) 機械学習基礎編機械学習 / Deep Learning 大全 (1) 機械学習基礎編
機械学習 / Deep Learning 大全 (1) 機械学習基礎編
 
Azure Machine Learning Services 概要 - 2019年3月版
Azure Machine Learning Services 概要 - 2019年3月版Azure Machine Learning Services 概要 - 2019年3月版
Azure Machine Learning Services 概要 - 2019年3月版
 
LET2011: Rによる教育データ分析入門
LET2011: Rによる教育データ分析入門LET2011: Rによる教育データ分析入門
LET2011: Rによる教育データ分析入門
 
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V7
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V7データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V7
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V7
 

Mehr von Satoru Yamamoto

Ai artificial intelligence in japan
Ai artificial intelligence in japanAi artificial intelligence in japan
Ai artificial intelligence in japanSatoru Yamamoto
 
AI(人工知能)インフォグラフィックス【時間をかけずにすぐわかる】
AI(人工知能)インフォグラフィックス【時間をかけずにすぐわかる】AI(人工知能)インフォグラフィックス【時間をかけずにすぐわかる】
AI(人工知能)インフォグラフィックス【時間をかけずにすぐわかる】Satoru Yamamoto
 
営業現場で困らないためのディープラーニング
営業現場で困らないためのディープラーニング営業現場で困らないためのディープラーニング
営業現場で困らないためのディープラーニングSatoru Yamamoto
 
2014年 日本のコンバージョンニュース
2014年 日本のコンバージョンニュース2014年 日本のコンバージョンニュース
2014年 日本のコンバージョンニュースSatoru Yamamoto
 
ABテスト・LPOのための統計学【社内向けサディスティックエディション】データアーティスト株式会社
ABテスト・LPOのための統計学【社内向けサディスティックエディション】データアーティスト株式会社ABテスト・LPOのための統計学【社内向けサディスティックエディション】データアーティスト株式会社
ABテスト・LPOのための統計学【社内向けサディスティックエディション】データアーティスト株式会社Satoru Yamamoto
 
デジタルフィールドリサーチ
デジタルフィールドリサーチデジタルフィールドリサーチ
デジタルフィールドリサーチSatoru Yamamoto
 
【DMP x LPO ABテスト】パブリックdmpを用いたデータドリブンペルソナ構築
【DMP x LPO ABテスト】パブリックdmpを用いたデータドリブンペルソナ構築【DMP x LPO ABテスト】パブリックdmpを用いたデータドリブンペルソナ構築
【DMP x LPO ABテスト】パブリックdmpを用いたデータドリブンペルソナ構築Satoru Yamamoto
 
30分でわかる『R』によるデータ分析|データアーティスト
30分でわかる『R』によるデータ分析|データアーティスト30分でわかる『R』によるデータ分析|データアーティスト
30分でわかる『R』によるデータ分析|データアーティストSatoru Yamamoto
 
データアーティストの理念とビジョン~設立一周年記念スライド~
データアーティストの理念とビジョン~設立一周年記念スライド~データアーティストの理念とビジョン~設立一周年記念スライド~
データアーティストの理念とビジョン~設立一周年記念スライド~Satoru Yamamoto
 
効果的なAbテストがwebサイトを成長させる~abテスト成功メソッドのご紹介~
効果的なAbテストがwebサイトを成長させる~abテスト成功メソッドのご紹介~効果的なAbテストがwebサイトを成長させる~abテスト成功メソッドのご紹介~
効果的なAbテストがwebサイトを成長させる~abテスト成功メソッドのご紹介~Satoru Yamamoto
 
お金をかけないランディングページのつくりかた
お金をかけないランディングページのつくりかたお金をかけないランディングページのつくりかた
お金をかけないランディングページのつくりかたSatoru Yamamoto
 
【データアーティスト株式会社】5歳の娘でもわかるDMP
【データアーティスト株式会社】5歳の娘でもわかるDMP【データアーティスト株式会社】5歳の娘でもわかるDMP
【データアーティスト株式会社】5歳の娘でもわかるDMPSatoru Yamamoto
 
統計を始める方へ①_データ環境Rの基本的なプログラミング|データアーティスト
統計を始める方へ①_データ環境Rの基本的なプログラミング|データアーティスト統計を始める方へ①_データ環境Rの基本的なプログラミング|データアーティスト
統計を始める方へ①_データ環境Rの基本的なプログラミング|データアーティストSatoru Yamamoto
 
営業向け ABテストの統計学 データアーティスト
営業向け ABテストの統計学 データアーティスト営業向け ABテストの統計学 データアーティスト
営業向け ABテストの統計学 データアーティストSatoru Yamamoto
 
DMPを用いたデータドリブンLPOによる最適コミュニケーションの発見方法
DMPを用いたデータドリブンLPOによる最適コミュニケーションの発見方法DMPを用いたデータドリブンLPOによる最適コミュニケーションの発見方法
DMPを用いたデータドリブンLPOによる最適コミュニケーションの発見方法Satoru Yamamoto
 
都市工学調査資料
都市工学調査資料都市工学調査資料
都市工学調査資料Satoru Yamamoto
 

Mehr von Satoru Yamamoto (18)

Ai artificial intelligence in japan
Ai artificial intelligence in japanAi artificial intelligence in japan
Ai artificial intelligence in japan
 
AI(人工知能)インフォグラフィックス【時間をかけずにすぐわかる】
AI(人工知能)インフォグラフィックス【時間をかけずにすぐわかる】AI(人工知能)インフォグラフィックス【時間をかけずにすぐわかる】
AI(人工知能)インフォグラフィックス【時間をかけずにすぐわかる】
 
営業現場で困らないためのディープラーニング
営業現場で困らないためのディープラーニング営業現場で困らないためのディープラーニング
営業現場で困らないためのディープラーニング
 
2014年 日本のコンバージョンニュース
2014年 日本のコンバージョンニュース2014年 日本のコンバージョンニュース
2014年 日本のコンバージョンニュース
 
ABテスト・LPOのための統計学【社内向けサディスティックエディション】データアーティスト株式会社
ABテスト・LPOのための統計学【社内向けサディスティックエディション】データアーティスト株式会社ABテスト・LPOのための統計学【社内向けサディスティックエディション】データアーティスト株式会社
ABテスト・LPOのための統計学【社内向けサディスティックエディション】データアーティスト株式会社
 
デジタルフィールドリサーチ
デジタルフィールドリサーチデジタルフィールドリサーチ
デジタルフィールドリサーチ
 
【DMP x LPO ABテスト】パブリックdmpを用いたデータドリブンペルソナ構築
【DMP x LPO ABテスト】パブリックdmpを用いたデータドリブンペルソナ構築【DMP x LPO ABテスト】パブリックdmpを用いたデータドリブンペルソナ構築
【DMP x LPO ABテスト】パブリックdmpを用いたデータドリブンペルソナ構築
 
30分でわかる『R』によるデータ分析|データアーティスト
30分でわかる『R』によるデータ分析|データアーティスト30分でわかる『R』によるデータ分析|データアーティスト
30分でわかる『R』によるデータ分析|データアーティスト
 
データアーティストの理念とビジョン~設立一周年記念スライド~
データアーティストの理念とビジョン~設立一周年記念スライド~データアーティストの理念とビジョン~設立一周年記念スライド~
データアーティストの理念とビジョン~設立一周年記念スライド~
 
効果的なAbテストがwebサイトを成長させる~abテスト成功メソッドのご紹介~
効果的なAbテストがwebサイトを成長させる~abテスト成功メソッドのご紹介~効果的なAbテストがwebサイトを成長させる~abテスト成功メソッドのご紹介~
効果的なAbテストがwebサイトを成長させる~abテスト成功メソッドのご紹介~
 
お金をかけないランディングページのつくりかた
お金をかけないランディングページのつくりかたお金をかけないランディングページのつくりかた
お金をかけないランディングページのつくりかた
 
【データアーティスト株式会社】5歳の娘でもわかるDMP
【データアーティスト株式会社】5歳の娘でもわかるDMP【データアーティスト株式会社】5歳の娘でもわかるDMP
【データアーティスト株式会社】5歳の娘でもわかるDMP
 
統計を始める方へ①_データ環境Rの基本的なプログラミング|データアーティスト
統計を始める方へ①_データ環境Rの基本的なプログラミング|データアーティスト統計を始める方へ①_データ環境Rの基本的なプログラミング|データアーティスト
統計を始める方へ①_データ環境Rの基本的なプログラミング|データアーティスト
 
営業向け ABテストの統計学 データアーティスト
営業向け ABテストの統計学 データアーティスト営業向け ABテストの統計学 データアーティスト
営業向け ABテストの統計学 データアーティスト
 
DMPを用いたデータドリブンLPOによる最適コミュニケーションの発見方法
DMPを用いたデータドリブンLPOによる最適コミュニケーションの発見方法DMPを用いたデータドリブンLPOによる最適コミュニケーションの発見方法
DMPを用いたデータドリブンLPOによる最適コミュニケーションの発見方法
 
広告業界の俯瞰
広告業界の俯瞰広告業界の俯瞰
広告業界の俯瞰
 
音楽の正体
音楽の正体音楽の正体
音楽の正体
 
都市工学調査資料
都市工学調査資料都市工学調査資料
都市工学調査資料
 

Kürzlich hochgeladen

クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 

Kürzlich hochgeladen (8)

クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 

判別分析

  • 2. Copyright© 2002-2013 Data Artist, Inc. All Rights Reserved. Page2Page2Page2Page2 アジェンダ ①判別分析の概要 ②線形判別・樹木モデル・ SVM・ランダムフォレストを動かしてみよう! ③様々なデータでの比較 各手法の概念の理解と、 どのような特徴があるかを体感しよう!!
  • 4. Copyright© 2002-2013 Data Artist, Inc. All Rights Reserved. Page4Page4Page4Page4 データマイニング 解析(微積)・線形代数・統計・プログラミング 土台 正解が 無い ある 正解が 数値 クラス regression 回帰分析 判別分析 クラスター 分析 classification clustering 最大・最小を 調べる。 多変量を あつかう。 不確かな 事象を扱う。 マーケティング 次元圧縮 メタヒューリスティクス 時系列データ テキストデータ ネットワークデータ ※”Rによるデータサイエンス 森北出版”で理論的解説が割愛されているところは、本講義でも割愛。
  • 5. Copyright© 2002-2013 Data Artist, Inc. All Rights Reserved. Page5Page5Page5Page5 判別分析概要 ※ちなみにt検定は100年以上も前に開発されました。 時代19951930 1960 2001 性能 線形分離 分類木 SVM ランダムフォレスト 分類機能 低 中 高 高 計算速度 高 中 低 中 可読性 中 高 低 中 知名度 高 高 高 低 線形判別 理解のため大切 1本の直線 2本以上の直線 曲線 樹木モデル SVM + カーネル トリック ランダム フォレスト (集団学習) 良く使う
  • 6. Copyright© 2002-2013 Data Artist, Inc. All Rights Reserved. Page6Page6Page6Page6 判別分析の流れ データの取得・生成 埼玉・金融 東京・金融 神奈川・保険 大阪・保険 購入したクリエイティブA,B,C 訓練学習 テスト Feature Generation →ユーザーの特徴を造る。県、 会社、デモグラフィック、etc。 Feature Selection →造った特徴の中から重要なもの を選択する。 Dimensional Compression →属性を掛け合わせて新しい重要な 属性を作る。人口/面積=人口密度 データの一部で訓練を行う。 どんな学習方法が良いか?? データの種類、目的に応じて。 LC TM RFSVM 残りのデータでテストを行う。 RF 答え合わせ データから学習するだけでなく そのモデルが、未知のデータを どれほど説明できるかを調べる。
  • 8. Copyright© 2002-2013 Data Artist, Inc. All Rights Reserved. Page8Page8Page8Page8 フィッシャーの線形判別 クラス間の重心が最も離れるように 軸をとり、垂線で区切る。 クラス内の分散が最小化される ように軸をとる。 でクラス判別。0,0 22110   dd nnd ff xaxaxaaf fd fd fdはデータが二次元なら直線、三次元なら平面、4次元以上なら超平面。 変数の線形結合 うんちく:irisのデータは、フィッシャーが判別分析を行うために用意したデータだそうです。
  • 9. Copyright© 2002-2013 Data Artist, Inc. All Rights Reserved. Page9Page9Page9Page9 線形判別を使ってみよう!! #線形判別 library(MASS) #まずは分類 iris.lda=lda(Species~.,data=train.iris) result.tab=table(test.iris[,"Species"], predict(iris.lda,test.iris[,-5])$class) sum(diag(result.tab))/sum(result.tab) library(scatterplot3d) #描画(不便) col.pallet=c("#f79646", "#9bbb59", "#4bacc6") col.v=col.pallet[test.iris[,5]] s3d=scatterplot3d(test.iris[,1:3],color=col.v,type="h", cex.symbols=1,angle=55, scale.y=0.7, pch=16, main="scatterplot3d") coef.mat=iris.lda[[4]][1:2,] coef.mat=rbind(coef.mat, -apply(iris.lda$means%*%iris.lda$scaling,2,mean)) coef.mat[,1]=coef.mat[,1]/iris.lda[[4]][3,1] coef.mat[,2]=coef.mat[,2]/iris.lda[[4]][3,2] coef.mat=-coef.mat s3d$plane3d(Intercept=coef.mat[3,1], x.coef =coef.mat[1,1], y.coef =coef.mat[2,1],lty = "dashed", lty.box = NULL,col="#93cddd") s3d$plane3d(Intercept=coef.mat[3,2], x.coef =coef.mat[1,2], y.coef=coef.mat[2,2],lty = "dashed", lty.box = NULL,col="#c3bb59") ●Linear Discriminant Analysis 3次元プロット 境界面 予測
  • 10. Copyright© 2002-2013 Data Artist, Inc. All Rights Reserved. Page10Page10Page10Page10 樹木モデル(CART)の理論概要    c i tipGI 1 2 )|(1 No. 風 気温 海水浴 1 弱 高 行く 2 弱 低 行かない 3 弱 高 行く 4 弱 中 行く 5 弱 低 行かない 6 弱 高 行かない 7 強 高 行かない 8 強 低 行かない 9 強 中 行かない 10 強 高 行く 08.0)( 10 4 )( 10 6 )()( 375.0 4 3 4 1 1)( 5.0 6 3 6 3 1)( 22 22                                              強風弱風分岐前風で分類 強風 弱風 GIGIGIGI GI GI 起きる確率に偏りがある場合に、 値が小さくなる! 気温で分けた方がうまくいく!! “風の弱or強”で分けるのと”気温の低or高中”で分けるのでどちらが良いか? 48.0 10 6 10 4 1)( 22                      分岐前GI 137.0)( 10 4 )( 10 6 )()( 490.0 4 3 4 1 1)( 0 2 0 3 3 1)( 22 22                                              強風弱風分岐前気温で分類 高低気温 低気温 GIGIGIGI GI GI tmp=c wnd=a tmp=ab wnd=b 行かない 6/4 行かない 3/0 行く 3/4 行かない 2/1 行く 1/3 ジニ係数
  • 11. Copyright© 2002-2013 Data Artist, Inc. All Rights Reserved. Page11Page11Page11Page11 樹木モデルを使ってみよう!! #分類木 library(mvpart) iris.rp=rpart(Species~.,data=train.iris) predict(iris.rp,test.iris[,-5]) result.tab=table(test.iris[,"Species"], predict(iris.rp,test.iris[,-5],type="class")) sum(diag(result.tab))/sum(result.tab) クラスの予測 確率の予測 Petal.Length< 2.35 Petal.Length< 4.95 Petal.Length>=2.35 Petal.Length>=4.95 versicolor 23/27/25 setosa 23/0/0 versicolor 0/27/25 versicolor 0/26/1 virginica 0/1/24 plot(iris.rp,uniform=T,branch=0.6,margin=0.05) text(iris.rp,use.n=T,all=T) ●Tree Model
  • 12. Copyright© 2002-2013 Data Artist, Inc. All Rights Reserved. Page12Page12Page12Page12 SVM+カーネルトリックの理論概要 直線で分けれない 平面で分けれない z=xy 考える。 平面で分けれる 平面で分けれる カーネル法を使うと、空間の変換が低計算コストで行える。 次元数が増えても平気!! “[連載]フリーソフトによるデータ解析・マイニング第31 回”より抜粋 D サポートベクターとの距離=マージンを 最大化して、新規データへの分類性能が、 非常に高いマシンを造る。 カーネルトリックSVM(Support Vector Machine) log(D)∝確率
  • 13. Copyright© 2002-2013 Data Artist, Inc. All Rights Reserved. Page13Page13Page13Page13 SVM+カーネル法を使ってみよう!! -1.5 -1.0 -0.5 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 SVM classification plot Sepal.Width Sepal.Length #SVM library(kernlab) iris.svm=ksvm(Species~.,data=train.iris) result.tab=table(test.iris[,"Species"], predict(iris.svm,test.iris[,-5])) sum(diag(result.tab))/sum(result.tab) iris.sepal=iris[1:100,-c(3,4)] iris.sepal.svm=ksvm(Species~.,data=iris.sepal) plot(iris.sepal.svm,data=iris.sepal[,-3]) iris.p.svm=ksvm(Species~.,data=train.iris,prob.mod el=T) predict(iris.p.svm,test.iris[,-5], type="probabilities") ●Support Vector Machine
  • 14. Copyright© 2002-2013 Data Artist, Inc. All Rights Reserved. Page14Page14Page14Page14 ランダムフォレストの理論概要 変数1 変数2 変数3 変数4 変数5 クラス 個体1 1 5 5 9 5 A 個体2 2 1 8 8 6 B 個体3 5 2 5 5 2 A 個体4 1 1 4 6 1 B 個体5 3 1 2 7 4 B 個体6 8 8 7 4 7 A 個体7 4 4 9 1 5 A 個体8 7 3 6 6 6 B 個体9 8 9 5 2 9 A 個体10 5 4 8 3 8 B 個体11 2 2 7 6 7 B 個体12 2 6 4 4 4 A 個体13 3 7 2 8 5 B 個体14 6 6 3 5 6 A 変数を選択 変数を選択 データを 選択 データを 選択 …… B 個体X 変数(1,3,4,2,1) A A 個体X クラス:A!! 木がいっぱいで森になる!!→意見が偏らず未知データへの対応力が高くなる! 多数決
  • 15. Copyright© 2002-2013 Data Artist, Inc. All Rights Reserved. Page15Page15Page15Page15 ランダムフォレストを使ってみよう!! Sepal.Width Sepal.Length Petal.Width Petal.Length 0 5 10 15 20 iris.rf MeanDecreaseGini library(randomForest) iris.rf=randomForest(Species~.,data=train.iris) varImpPlot(iris.rf) getTree(iris.rf,k=5) result.tab=table(test.iris[,"Species"], predict(iris.rf,test.iris[,-5])) sum(diag(result.tab))/sum(result.tab) 重要情報の抽出 ●Random Forrest
  • 17. Copyright© 2002-2013 Data Artist, Inc. All Rights Reserved. Page17Page17Page17Page17 相互作用のあるデータ x.v=rnorm(3000) y.v=rnorm(3000) class.v=as.factor(as.numeric((x.v*y.v)>0)+1) non.lin.data=data.frame(x.v,y.v,class.v) plot(non.lin.data[,1:2],col=c("#4bacc6","#f79646")[non.lin.data[,3]],pch=20) correct.ratio.lda.v1=c();correct.ratio.rp.v1=c() correct.ratio.svm.v1=c();correct.ratio.rf.v1=c() for(i in 1:5){ sample.v=sample(3000,1500) train.data=non.lin.data[sample.v,] test.data=non.lin.data[-sample.v,] #LDA learn=lda(class.v~.,data=train.data) result.tab=table(test.data[,3], predict(learn,test.data[,-3])$class) correct.ratio.lda.v1[i]=sum(diag(result.tab))/sum(result.tab) #TREE learn=rpart(class.v~.,data=train.data) result.tab=table(test.data[,3],predict(learn,test.data[,-3],type="class")) correct.ratio.rp.v1[i]=sum(diag(result.tab))/sum(result.tab) #SVM learn=ksvm(class.v~.,data=train.data) result.tab=table(test.data[,3],predict(learn,test.data[,-3])) correct.ratio.svm.v1[i]=sum(diag(result.tab))/sum(result.tab) #RF learn=randomForest(class.v~.,data=train.data) result.tab=table(test.data[,3],predict(learn,test.data[,-3])) correct.ratio.rf.v1[i]=sum(diag(result.tab))/sum(result.tab) }
  • 18. Copyright© 2002-2013 Data Artist, Inc. All Rights Reserved. Page18Page18Page18Page18 高次元のデータ(spam) data(spam) #kernlabに入ってる SPAM=spam colnames(SPAM)[ncol(SPAM)]="class.v" correct.ratio.lda.v2=c() correct.ratio.rp.v2=c() correct.ratio.svm.v2=c() correct.ratio.rf.v2=c() for(i in 1:5){ sample.v=sample(4601,2300) train.data=SPAM[sample.v,] test.data=SPAM[-sample.v,] #LDA learn=lda(class.v~.,data=train.data) result.tab=table(test.data[,ncol(train.data)], predict(learn,test.data[,-ncol(train.data)])$class) correct.ratio.lda.v2[i]=sum(diag(result.tab))/sum(result.tab) #TREE learn=rpart(class.v~.,data=train.data) result.tab=table(test.data[,ncol(train.data)],predict(learn,test.data[,-ncol(train.data)],type="class")) correct.ratio.rp.v2[i]=sum(diag(result.tab))/sum(result.tab) #SVM learn=ksvm(class.v~.,data=train.data) result.tab=table(test.data[,ncol(train.data)],predict(learn,test.data[,-ncol(train.data)])) correct.ratio.svm.v2[i]=sum(diag(result.tab))/sum(result.tab) #RF learn=randomForest(class.v~.,data=train.data) result.tab=table(test.data[,ncol(train.data)],predict(learn,test.data[,-ncol(train.data)])) correct.ratio.rf.v2[i]=sum(diag(result.tab))/sum(result.tab) } メールにどんな単語が含まれているかと、 スパムかスパムじゃないかのデータ。
  • 19. Copyright© 2002-2013 Data Artist, Inc. All Rights Reserved. Page19Page19Page19Page19 high.dim.mat=matrix(rnorm(30000),ncol=10) class.v=as.factor(as.numeric(apply(high.dim.mat[,1:3],1,prod)>0)+1) high.dim.mat=data.frame(high.dim.mat,class.v) names(high.dim.mat)=c(letters[1:(ncol(high.dim.mat)-1)],"class.v") scatterplot3d(high.dim.mat[,1:3],color=c("#4bacc6","#f79646")[class.v],cex.symbols=0.5, angle=55, scale.y=0.7, pch=16, main="scatterplot3d") correct.ratio.lda.v3=c();correct.ratio.rp.v3=c() correct.ratio.svm.v3=c();correct.ratio.rf.v3=c() for(i in 1:5){ sample.v=sample(3000,1500) train.data=high.dim.mat[sample.v,] test.data=high.dim.mat[-sample.v,] learn=lda(class.v~.,data=train.data) #LDA result.tab=table(test.data[,ncol(high.dim.mat)], predict(learn,test.data[,-ncol(high.dim.mat)])$class) correct.ratio.lda.v3[i]=sum(diag(result.tab))/sum(result.tab) learn=rpart(class.v~.,data=train.data) #TREE result.tab=table(test.data[,ncol(high.dim.mat)], predict(learn,test.data[,-ncol(high.dim.mat)],type="class")) correct.ratio.rp.v3[i]=sum(diag(result.tab))/sum(result.tab) learn=ksvm(class.v~.,data=train.data) #SVM result.tab=table(test.data[,ncol(high.dim.mat)],predict(learn,test.data[,-ncol(high.dim.mat)])) correct.ratio.svm.v3[i]=sum(diag(result.tab))/sum(result.tab) learn=randomForest(class.v~.,data=train.data) #RF result.tab=table(test.data[,ncol(high.dim.mat)],predict(learn,test.data[,-ncol(high.dim.mat)])) correct.ratio.rf.v3[i]=sum(diag(result.tab))/sum(result.tab) } 高次元(10次元)の相互作用のあるデータ
  • 20. Copyright© 2002-2013 Data Artist, Inc. All Rights Reserved. Page20Page20Page20Page20 correct.ratio.lda.v1 correct.ratio.rp.v1 correct.ratio.svm.v1 correct.ratio.rf.v1 0.40.60.81.0 Intr correct.ratio.lda.v2 correct.ratio.rp.v2 correct.ratio.svm.v2 correct.ratio.rf.v2 0.890.910.930.95 Spam correct.ratio.lda.v3 correct.ratio.rp.v3 correct.ratio.svm.v3 correct.ratio.rf.v3 0.500.600.700.80 High.D.intr 各データの比較 #3種のデータの比較 par(mfrow=c(3,1)) boxplot(data.frame(correct.ratio.lda.v1, correct.ratio.rp.v1,correct.ratio.svm.v1, correct.ratio.rf.v1),main="Intr") boxplot(data.frame(correct.ratio.lda.v2, correct.ratio.rp.v2,correct.ratio.svm.v2, correct.ratio.rf.v2),main="Spam") boxplot(data.frame(correct.ratio.lda.v3, correct.ratio.rp.v3,correct.ratio.svm.v3, correct.ratio.rf.v3),main="High.D.intr") #重要な属性のみを取り出す learn=randomForest(class.v~.,data=train.data) learn$importance 高次元なデータ にはRFが強い。 正答率 2次の相互作用 スパムデータ 10次の相互作用 線形判別 < 樹木モデル < SVM < ランダムフォレスト の順に高い正答率を示しています。 どのアルゴリズムを使うかは、ベンダーによりけりです が、DSPの○○拡張は基本これまで学んできた判別分析 の技術を使います。 CV拡張の場合は、CVしたかどうかを正解不正解、どん なページを見ているかを属性データとして拡張(学習)を していきます。