2017年10月7日土曜日

Cognitive Class R101(無料!)を受講してみた。

R言語入門編がオンライン学べる「R101」コースを受講してみました。
当コース含めて、全て無料で受講できちゃいます!!


実施環境については、以下の通りです。

・MacBook Air(CPU:1.6GHz,Memory 8GB)
・macOS Sierra ver10.12.3
・RStudio ver 1.0.136  ※実際は不要ですが、あったほうが楽です。

※本エントリーは、私、小田一弥が一個人として勉強を兼ねて記載したものです。私の勤務先である日本アイ・ビー・エム株式会社の見解・見識ではない、個人としての記載内容としてご覧ください。



そもそも「Cognitive Class」ってなに?


IBMが主導するビックデータに関するオンライン上の学習コミュニティです。
しつこいですが、全部、「無料」ですっ!
インターネットが繋がるパソコン環境をお持ちであれば使えます。なお、パソコンのスペックは高くなくても大丈夫です(OS問わず)。


早速使ってみよう!


以下、簡単に手順含めてご紹介します。

1.Cognitive Classにサインイン
まずは、下記リンクからアクセスし、画面右上の「Sign in」からサインインをおこなってください。
Cognitive Class - Free Data Science and Cognitive Computing Courses

2.受講希望コースを選択する
サインイン後、コース一覧が表示されますので、お好きなコースを選択してください。
今回は、「R101」を選択します。


3.学習スタート!
画面上部にある「Start the Free Course」を押して学習を始めてください。



なお、各コースには、シラバスが用意されているので、どのような学習コンテンツになっているのかすぐに確認できます。「ちょっと、自分が求めている内容とは違うな」と思ったら他のコースも確認してみてください。

ご参考までに、「R101」のシラバスを掲載します。

COURSE SYLLABUS
Module 1 - R basics
Math, Variables, and Strings
Vectors and Factors
Vector operations

Module 2 - Data structures in R
Arrays & Matrices
Lists
Dataframes

Module 3 - R programming fundamentals
Conditions and loops
Functions in R
Objects and Classes
Debugging

Module 4 - Working with data in R
Reading CSV and Excel Files
Reading text files
Writing and saving data objects to file in R

Module 5 - Strings and Dates in R
String operations in R
Regular Expressions
Dates in R

おさえておきたい「合格のコツ」


R101に限らず、各クラスにはテストが設定されており、基準点以下だと不合格となってしまいます。合格すれば証明書やバッチがもらえるので、テスト以外の学習パート含めてしっかりと学び取るコツが重要になります。

(合格のコツ1)Google Chromeを使用する
Cognitive Classは全部英語です。各モジュールで表示されるテストや動画のキャプションも全て英語のため、英語が苦手な方はハードルが高いと感じられるかもしれません。
Google Chromeはページ翻訳や動画と同期を取って表示される英語キャプションも翻訳してくれます。

(合格のコツ2)モジュール別テストはじっくり真剣に答える
各クラスには、「モジュール別」(時間無制限)テストと「最終テスト(1時間制限)」の2種類があり、それぞれの合計点が基準に達していれば合格となります。
そのため、「モジュール別」テストはじっくり真剣に答え、確実に得点をゲットすることが重要となります。

(合格のコツ3)クラスに合わせた実行環境を整備しておく
クラスの内容にもよるのですが、コードを走らせる必要のある場合は、その実行環境を準備しておいた方が確実に回答できるので、面倒でもインストールなどしておきましょう。
R101クラスの場合は、「Rstudio」をインストールするか、Web上で「Rstudio」が無料で使える「Data Scientist Workbench 」を申し込んでおくといいと思います。


最後に、テストの基準に達すると、こんな証明書を発行してもらえます♪

https://courses.cognitiveclass.ai/certificates/3692e71984464638a139933b00b50d27

なお、この「Cognitive Class R101」の修了ですが、IBMが発行する「Data Science Foundations - Level 2」バッチ取得の条件にもなっています。
R言語は他のコンピューター言語と比べ、データフレームなどの考え方が若干特殊なので早いうちに取り組まれた方が宜しいかと思います。


2017年9月9日土曜日

MacのSublime text3で書いたJavaScriptが文字化けた話(UTF-8なのに。。)

表題そのままです。
最近、お仕事でデジタルマーケティング界隈のアレをホニャララするようになってきまして、齢40手前にしてJavaScriptを勉強なうです。

まずは、開発環境だと思い、MacにSublime text3をインストールし、参考書のJavaScriptを写経していました。
そのコードを試しにブラウザで開いてみると・・・全く同じコードなのに文字化ける?UTF-8で保存しているのに。。



唸りながら色々と調べていたら「UTF-8 with BOM」で保存する必要性に気づいたわけです。
以下、参考にしたURLを順に記載してきます。

※注意:
MacのSublime text3だと、最初、「Sublime text3」→「Preference」→「基本設定-標準」で開いても設定ファイルが編集できないようです。
一旦、開いた設定ファイルをcmd+Sで保存してから開き直すと「false→true」のパラメータ変更などが可能になりました。


SublimeTextの設定まとめ
http://blog.seeds-std.co.jp/entry/1871.html

Sublime Text 3 のステータスバーに文字コードを表示する方法 (ついでに改行コードも)
https://beadored.com/sublime-text-3-character_code/

UTF-8のBOMにはまった話
http://qiita.com/MuriNishimori/items/a89fe986e28909208e30

上記をリファーしてSublime text3の設定を変更しましたら、「ファイル」→「エンコードを指定して上書き保存」→「UTF-8 with BOM」で保存してください。

(JavaScript)基礎用語をコソっと書き留めた。

備忘録代わりにJavaScriptの基礎をキソっと・・・コソっと書いておきます。
今後、適宜、追記しようかと思います。

■基本用語

項目内容
CSSWebページのデザインやレイアウトを決める為に使われるファイルで、別名「スタイルシート」という。
セレクタHTML文書中の要素。
プロパティセレクタに記載された色やフォントなどの属性。
文JavaScriptにおける処理の単位。文末には「;」(セミコロン)をつける。

・スタイルシートの記述例
body{
    background-color: #FFFFFF;
}
セレクタ プロパティ 値


■オブジェクトについて

項目内容
オブジェクトプロパティとメソッドをまとめたもの。オブジェクト内には「プロパティ」と「メソッド」の「メンバ」がある。
プロパティオブジェクトによってまとめられたデータ。
メソッドオブジェクトによってまとめられた機能。

オブジェクトの記述の仕方
・プロパティの場合
 オブジェクト.プロパティ
・メソッドの場合
 オブジェクト.メソッド

とりあえず、まずは、これぐらいで。

2017年9月2日土曜日

Mac環境でのSublime Text3を用いたJava Script環境づくり

齢40手前にして、お仕事でJava Scriptを使う必要性が出てきました。
まずは、開発環境を整えたいので、下記サイトを参照しながら整備しましたです。

実施環境については、以下の通りです。


・MacBook Air:CPU:1.6GHz,Memory 8GB
・macOS Sierra ver10.12.3
・Sublime Text3 Build 3126


参照サイトと実施内容


Sublime Text - パッケージのインストール
https://webkaru.net/dev/sublime-text-package-install/
→Mac環境におけるSublime Text3のインストール方法が記載されています。

<Sublime Text3でのパッケージインストール>
 ・Command + Shift + P
     ↓
 ・Package Controlのフォームに「install」と入力
     ↓
 ・インストールしたいパッケージ名の一部を入力
     ↓
 ・returnキーを押す
     ↓
 ・ウインドウ下部のメニューバーにインストール完了のメッセージが表示される


Sublime Text3 のインストール直後に行った設定メモ
http://tomoyamkung.net/2014/03/06/sublimetext3-install/
→表題の通りです。「IMESupport 」「Vintageous」以外を入力し、フォントサイズを変更しました。

とりあえず、動きましたっ!


2017年8月29日火曜日

R言語:「stringr」パッケージでレビューデータの加工が簡単(その3)

ほんとに小ネタなのですが、原因気づくのに時間がかかったので備忘録がわりに。
過去、何回かに分けて宿泊レビューのテキストマイニングの前処理を色々やっておりました。

R言語:「stringr」パッケージでレビューデータの加工が簡単。
http://sapporomkt.blogspot.jp/2017/08/rstringr.html

R言語:「stringr」パッケージでレビューデータの加工が簡単(その2)
http://sapporomkt.blogspot.jp/2017/08/rstringr2.html


今回、テキストマイニングで集計したデータ(品詞の頻度など)と、性別や年代といった属性データを掛け合わせた分析するため、後者の分布状況などをヒストグラムなどで確認しようと思ったところ凡ミスしたのでご紹介です。

実施環境については、以下の通りです。

・MacBook Air(CPU:1.6GHz,Memory 8GB)
・macOS Sierra ver10.12.3
・RStudio ver 1.0.136


ソースコードのご紹介


わかったら何のこともない凡ミスだったのですが、ソースコードは以下です。
データの読み込みプロセスなどは以前のエントリーをご参照ください。

# 宿泊者の満足度(CS)が入っている「rank」でヒストグラムを・・・できません。
hist(hotel2.dat[,"rank"])
 hist.default(hotel2.dat[, "purpose1"]) でエラー:
   'x' は数値でなければなりません


# 各変数のクラスをザラーっと調べてみます。
# 「rank」がcharacter型になっていますね。numeric型じゃなきゃ、ダメだこりゃ。
sapply(hotel2.dat,class)
          rank           user          time1   com_sentence       purpose1
   "character"    "character"    "character"    "character"    "character"
      purpose2       purpose3          time2 reply_sentence          plan1
   "character"    "character"    "character"    "character"    "character"
         plan2      user_name            age            sex            flg
   "character"    "character"    "character"    "character"      "logical"

# rankをnumeric型に変換して元のデータセットに上書きします。
hotel2.dat$rank <- as.numeric(hotel2.dat$rank)

# 念のためチェックします。「rank」がnumeric型になっていますね。
sapply(hotel2.dat,class)
          rank           user          time1   com_sentence       purpose1
     "numeric"    "character"    "character"    "character"    "character"
      purpose2       purpose3          time2 reply_sentence          plan1
   "character"    "character"    "character"    "character"    "character"
         plan2      user_name            age            sex            flg
   "character"    "character"    "character"    "character"      "logical"

# 再度、ヒストグラムにトライです。colには他の色も適用可能です。colors() で色々出てきます。
hist(hotel2.dat[,"rank"], col ="aliceblue")


# せっかくなのでクロス集計もしてみます。
hotel2.crs <- xtabs(~purpose2+sex, data=hotel2.dat)
hotel2.crs

         sex
purpose2   女性 男性
              1    1
  その他      1    1
  一人        6   12
  家族       58   77
  仕事仲間    1    0
  友達        8    6
  恋人        4    7

# 有用性はアレですが、モザイクプロットでも。
# どうてもいいですが、表頭と表側が入れ替わるんですね。
mosaicplot(hotel2.crs)


以上です。

R関連エントリー


R言語:starwarsキャラの身長や年齢をdplyrで加工してggplot2する。http://sapporomkt.blogspot.jp/2017/08/rstarwarsdplyrggplot2.html

RESASの不動産取引データでheatmapを作ってみた。
http://sapporomkt.blogspot.jp/2017/05/resasheatmap.html 

RESASデータを「IBM Data Scientist Workbench」でゴニョゴニョしてみた。
http://sapporomkt.blogspot.jp/2017/05/resasibm-data-scientist-workbench.html

ggplot2でクロス集計的に複数グラフをプロットする方法
http://sapporomkt.blogspot.jp/2016/11/ggplot2.html

R開発環境が無料で簡単導入!「Data Scientist Workbench」を使ってみた。

http://sapporomkt.blogspot.jp/2016/10/rdata-scientist-workbench.html

(Bluemix)知ってた?dashDBってTwitter分析にもツカエルのさ(+ちょっとだけコンサドーレ調べ)
http://sapporomkt.blogspot.jp/2016/07/bluemixdashdbtwitter.html

RMeCabで形容詞の形態素解析をやってみた。
http://sapporomkt.blogspot.jp/2016/07/rmecab.html

【R言語】今年は、leafletでマップをグリグリしたい。
http://sapporomkt.blogspot.jp/2016/01/rleaflet.html

(R言語)当ブログアクセス者の興味関心事をコレポン(コレスポンデンス)した。
http://sapporomkt.blogspot.jp/2015/12/r.htm

2017年8月24日木曜日

新宿アカシアが羽田空港第2ターミナルにもあった!〜ロールキャベツの名店

先日、羽田空港第2ターミナルに行ったのですが、そこで新宿にあるロールキャベツの名店「アカシア」を発見しましたっ!


場所は、第2ターミナルマーケットプレイスの4階でエスカレーターを上がった右手すぐのところにあります。若干、目立ちにくいですが、この日もほぼ満席でした。


メニューは店内にもありますが、本店とお値段はほぼ変わらずでした。
空港の食事は高いものが多いのでありがたいですね。


自分は、もちろん、ロールキャベツ!
味やボリュームも本店と変わらずお値打ちです!


嫁さんはポークカツ。初めて食べたのですが、くどくなくて美味しかったです。


出発・到着前後でお時間のある方には、是非ともオススメしたいお店です。

R言語:「stringr」パッケージでレビューデータの加工が簡単。

レビューデータのテキストマイニングがしたくて、データ加工プロセスのお勉強なうです。
「stringr」パッケージが使いやすいと評判だったので、今更ながら書いてみました。

実施環境については、以下の通りです。

・MacBook Air(CPU:1.6GHz,Memory 8GB)
・macOS Sierra ver10.12.3
・RStudio ver 1.0.136


思ってたよりも簡単だったソースコードのご紹介


実施前は難しいかなと思っていましたが、やってみたら意外と簡単でした。

# パッケージの読み込み。
# 「xlsx」形式の読み込みは他にもパッケージがありますが、Javaの導入など面倒が増えるので、このパッケージがオススメです。ただし、「xls」形式は読めません。
library(openxlsx)
library(dplyr)

# データの読み込み
setwd("~/blog/hotel_170819_TM")
hotel.dat <- read.xlsx("170819_hotel.xlsx")

# カラム名を表示します。不要なカラムもたくさん含まれています。
colnames(hotel.dat)
 [1] "url"            "rank"           "com_title"    
 [4] "com_title_link" "user"           "time1"        
 [7] "com_sentence"   "flg1"           "flg1_link"    
[10] "flg2"           "flg2_link"      "flg3"         
[13] "flg3_link"      "purpose1"       "purpose2"     
[16] "purpose3"       "time2"          "reply_sentence"
[19] "plan1"          "plan2_link"     "plan2"

# 分析データをattachします。「hotel.dat$hoge」と入力せずに、hogeで狙ったカラムにアクセスできます。
attach(hotel.dat)

# 分析に必要なカラムだけ抜き出します。見た目はわかりづらいですが、「dplyr」パッケージのおかげです。
hotel2.dat <- select(hotel.dat,rank,user,time1,com_sentence,purpose1,purpose2,purpose3,time2,reply_sentence,plan1,plan2)

# データ内容を確認してみます。
View(hotel2.dat)

今回用いたデータセットでは、user列に、「ユーザー名・年代・性別」データが同一カラムに入っていました。年代・性別は分析に有用なので別カラムに切り出したいです。

小田一弥さん [30代/男性]
↓
user_nameagesex
小田一弥さん30代男性

「おっと、正規表現だな・・・」と思われたあなた、大丈夫です。
自分も不慣れですが、今回はとっても簡単です。

# パッケージを読み込みます。最初は「for」で繰り返し処理を書こうと思ったのですが、こちらの方がずっとシンプルで早いそうです。
library(stringr)

# userの名前と年代・性別を分離
hotel2.dat$user_name <- str_extract(hotel2.dat$user,"^.*さん")
hotel2.dat$age <- str_extract(hotel2.dat$user,"\\d{2}代")
hotel2.dat$sex <- str_extract(hotel2.dat$user,".性")

 View関数で見ると下記のようになります。


# パッケージを読み込みます。
library(rpivotTable)
# グラフ化します
rpivotTable(hotel2.dat)


以上です。

R関連エントリー


R言語:starwarsキャラの身長や年齢をdplyrで加工してggplot2する。http://sapporomkt.blogspot.jp/2017/08/rstarwarsdplyrggplot2.html

RESASの不動産取引データでheatmapを作ってみた。
http://sapporomkt.blogspot.jp/2017/05/resasheatmap.html 

RESASデータを「IBM Data Scientist Workbench」でゴニョゴニョしてみた。
http://sapporomkt.blogspot.jp/2017/05/resasibm-data-scientist-workbench.html

ggplot2でクロス集計的に複数グラフをプロットする方法
http://sapporomkt.blogspot.jp/2016/11/ggplot2.html

R開発環境が無料で簡単導入!「Data Scientist Workbench」を使ってみた。

http://sapporomkt.blogspot.jp/2016/10/rdata-scientist-workbench.html

(Bluemix)知ってた?dashDBってTwitter分析にもツカエルのさ(+ちょっとだけコンサドーレ調べ)
http://sapporomkt.blogspot.jp/2016/07/bluemixdashdbtwitter.html

RMeCabで形容詞の形態素解析をやってみた。
http://sapporomkt.blogspot.jp/2016/07/rmecab.html

【R言語】今年は、leafletでマップをグリグリしたい。
http://sapporomkt.blogspot.jp/2016/01/rleaflet.html

(R言語)当ブログアクセス者の興味関心事をコレポン(コレスポンデンス)した。
http://sapporomkt.blogspot.jp/2015/12/r.htm