ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

新元号の発表はいつに・・・

2018-01-25 20:38:50 | Weblog
「あまり早いと盛り上がらなくなる」

いや、そういう問題じゃないから、

盛り上げなくていいから・・・

【引用元(太字は引用)】
新元号の発表はいつになるのか…。現役SE「システム屋を殺す気か」と悲鳴
http://www.huffingtonpost.jp/2018/01/23/new-gengou_a_23341471/

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Rでのアソシエーション分析

2018-01-25 15:07:20 | Weblog
いろいろ書いてあるサイトがあるんだけど、
Rのパッケージには、Groceriesっていうバスケット分析用の
データが入っているので、簡単にやるのなら、以下のコマンドだけでいい。

install.packages("arules")
library(arules)
data(Groceries)
rules <- apriori(Groceries, parameter = list(support = 0.005, confidence = 0.01))

inspect(rules[1:100])


ここで指定してる、support(支持率)、confidence(確信度)について、くわしくは
http://sinhrks.hatenablog.com/entry/2014/12/12/081841

最後の
inspect(rules[1:100])
で、1位から100位までを表示している。[1:100]を入れないと、最後のほうしか見れない。

ファイルに書き出すには、
write(rules,file="data.csv", sep=",", col.names=NA)

なお、
write(Groceries,file="source.csv",sep=",")
とすると、サンプルデータGroceriesが書き出せる。これは、1レコード1バスケット内の商品の羅列になっている。

この形式のファイルを読みだすには、
# スーパーマーケットの買い物かごのデータをトランザクションとして読み込む
tranPosData <- read.transactions(posData, sep=",", rm.duplicates=TRUE)
詳しくは(引用元)https://qiita.com/uchim/items/8a532945a1fb2f068b5a

レコード形式を、この形式に変換するには
#トランザクションデータに変換
data.tran<-as(as.matrix(df[2:(ncol(df)]),”transactions”)
詳しくはhttps://www.gixo.jp/blog/3920/


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Watson API まとめ

2018-01-25 11:07:12 | AI・BigData
とりあえず、メモ

自然言語や性格分析も!知っておきたい Watson API まとめ
https://www.ibm.com/think/jp-ja/watson/watson-api-matome/

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

「あれを買っている人は、これも買っています」というのを、Webサイトでやる方法

2018-01-25 00:21:52 | AI・BigData

「あれを買っている人は、これも買っています」っていう
レコメンデーション(=協調フィルタリング)を実現する方法として、
アソシエーション分析を行ったりします。
(そのアソシエーション分析を実装するアルゴリズムの1つがアプリオリ(Apriori))


で、Webサイトでこれをやりたい場合

・ブラウザから、対象商品を引数として、REST APIを呼び出し、
・そのAPIがDBを検索して、アソシエーション分析を行い、
・結果を画面にJSONで返す

ということを実装すればよい。




ここで、問題になるのは、そのREST APIだと思うけど、
その作り方でかんがえられるのは、

・たとえばREST API部分をPHPで作成し、PHPからRを呼び出し
 Rで、アソシエーション分析を行う(パッケージarulesのaprioriを使う)
  →Rを裏で動かすため、Rserv等がいるかも

・JavaでREST APIを書く(たとえば、Spring Boot でREST Controllerにする)
 で、そのAPIのなかで、WekaのライブラリからAssociateのAprioriを呼び出す


はいはいはいはい、どっちもめんどくさそうですよね。

・Pythonで、flaskを使って、REST APIを作成し、その中で、Orangeで
 アソシエーション分析を行う

っていうのが、妥当ですよね(scikit-learnには、ないらしい)




ということで、最後のpythonでやる方法のためのメモ

flask部分
PythonでREST APIをサクっと実装
https://qiita.com/Morinikiz/items/c2af4ffa180856d1bf30


一般的に
Flaskの簡単な使い方
https://qiita.com/zaburo/items/5091041a5afb2a7dffc8


アソシエーション分析部分

Pythonでデータサイエンスを試す(7_アソシエーションルール)
http://esu-ko.hatenablog.com/entry/2016/03/13/Python%E3%81%A7%E3%83%87%E3%83%BC%E3%82%BF%E3%82%B5%E3%82%A4%E3%82%A8%E3%83%B3%E3%82%B9%E3%82%92%E8%A9%A6%E3%81%99%287_%E3%82%A2%E3%82%BD%E3%82%B7%E3%82%A8%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%AB

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする