SAS Viyaを使って機械学習を行う方法としてはStudioというWebアプリケーションで行う方法と、Python/Java/R/SASといった言語から操作する方法とがあります。
今回はR言語を使ったSAS Viyaのコントロール法についてまとめました。
ライブラリの読み込み
まずSASライブラリを読み込みます。
library('swat')
セッションを開始する
サーバに繋ぎます。
s <- CAS('localhost', port=5570, caslib="casuer")
アクションセットを読み込む
処理によって異なるアクションセットを読み込みます。今回はテキストマイニングを行うtextMiningを指定します。
loadActionSet(s, "textMining")
データを読み込む
処理対象のデータを読み込みます。インポート先のテーブルも指定します。
indata_dir <- 'data'
indata <- 'news'
indata2 <- 'engstop'
cas.table.loadTable(s, path = paste0(indata_dir, '/', indata, '.sas7bdat'), caslib = 'CASUSER(viyauser)', casOut = indata)
cas.table.loadTable(s, path = paste0(indata_dir, '/', indata2, '.sas7bdat'), caslib = 'CASUSER(viyauser)', casOut = indata2)
テキストマイニングを実行
newsテーブルに入っているデータを対象にテキストマイニングを実行します。
cas.textMining.tmMine(s,
documents=list(name = "news"),
stopList=list(name = "engstop"),
docId="key",
text="text",
reduce=2,
entities="STD",
k=10,
norm="DOC",
u=list(name = "svdu", replace = T),
terms=list(name = "terms", replace = T),
parent=list(name = "parent", replace = T),
parseConfig=list(name = "config", replace = T),
docPro=list(name = "docpro", replace = T),
topics=list(name = "topics", replace = T)
)
結果を表示する
例えば topics テーブルの結果を表示します。
cas.table.fetch(s, table = 'topics')
Index | TopicId | Name | TermCutOff |
---|---|---|---|
1 | 1 | league, +defenseman, hockey, tampa, +draft pick | 0.021 |
2 | 2 | +keyboard, pc, +price, +mouse, +thumb | 0.021 |
3 | 3 | +flyer, amour, +goal, tommy, lindros | 0.020 |
4 | 4 | period, scorer g, scorer, power, pp | 0.021 |
5 | 5 | gif, +injury, +muscle, +keyboard, +condition | 0.020 |
6 | 6 | +tool, +break, +exercise, +type, +description | 0.022 |
7 | 7 | +cancer, +day, +bath, water, +eat | 0.022 |
8 | 8 | +versus, tor, mon, van, series | 0.023 |
9 | 9 | business, political, college, +event, dr. | 0.020 |
10 | 10 | +system, sgi, virtual, graphics, +reality | 0.024 |
まとめ
Rで機械学習を分かりやすく書けるのがSAS Viyaの良いところです。他にもJava、Python、SASにも対応していますので、好きな言語でぜひお試しください!