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月27日日曜日

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

前回、「stringr」パッケージを使って宿泊レビューデータの加工プロセスをまとめました。

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

「よし、これでテキストマイニングできるぞー」と思ったら・・・「宿泊利用目的」のカラムに「宿泊年月」データが混入orz...
まぁ、ソーシャルデータのテキストマイニング前処理にはよくある話ですね。


今回は、地味ですが、上記で混在している「宿泊年月」データを「stringr」パッケージを使って正しいカラムに移動する手順をご紹介します。

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

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


「if文無しでもいけちゃう」ソースコードのご紹介


最初、苦労したのは下記仕様への対応でした。
1.「宿泊年月」が混在している行だけ特定する
2. 上記1の「宿泊年月」データのみ、正しい「宿泊年月」カラムにコピーする
3. 移動後に不要となった上記1の「宿泊年月」データを削除する

if文での関数化も検討しましたが、「Rでif文はあまり使うな」的なことが多く書いていたので「stringr」パッケージだけでやってみました。
※分析データの読み込みなどは、前回エントリーをご覧ください。

# purpose1に年月が入ったセルにフラグを立てます。
# str_detect関数は、( )内の第1引数である読み込みデータの中で、第2引数に指定した検索条件に合致した場合にフラグ値を返します。
# " "内は正規表現が利用できます。文頭から文末にかけて、「数字4文字+年と数字2文字+2文字」だけが入力された文のみ検索条件にします。
hotel2.dat$flg <- str_detect(hotel2.dat$purpose1, "^\\d{4}年\\d{2}月$")

# 上記のフラグ立てが間違っていないことを確認してください。問題なければ、上記に該当する行番号を先ほどのコードを「↑」キーで呼び出して、下記のように書き換えてください。
# 「which」は「TRUE」に該当する行番号だけを取得してくれます。
okikae_num <- which(str_detect(hotel2.dat$purpose1, "^\\d{4}年\\d{2}月$"))

# purpose3に混在した年月情報を移動します。
hotel2.dat[c(okikae_num),"purpose3"] <- hotel2.dat[c(okikae_num),"purpose1"]

# 年月だけのセルにnullを入れます。str_replace関数は、名称から推察される通り「置換」です。
hotel2.dat$purpose1 <- str_replace(hotel2.dat$purpose1,"^\\d{4}年\\d{2}月$","")

# クロス集計でおかしなデータがないか確認します。
rpivotTable(hotel2.dat)


表側にある「purpose1」(宿泊目的)から年月が消えています。表頭は「満足度」ですが、N数が少ないものの、「その他」における低い満足度(1が最低)がやや多いのが面白いですね。

ご紹介は以上です。おそらくもっと上手いやり方があるような気もしますが、if文無しで数行のコードでこのようなデータ加工ができるのは便利ですね。

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階でエスカレーターを上がった右手すぐのところにあります。若干、目立ちにくいですが、この日もほぼ満席でした。


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


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


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


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

Google+ Followers