2013年11月8日金曜日

第6回関東ゼロからはじめるR言語勉強会の課題

今回から家で回答する課題ではなくて現場で一緒にデータを解析やってみると思います。

今回の課題の内容は 回帰分析 にします。

勉強してることは:

  • データを理解 (R言語のhead, tail, summary, str, corを使用)
  • データを描画 (R言語のplot, histを使用)
  • 線形モデルを作成 (R言語のlmを使用)

予習するつもり方は
回帰分析
について読んでください。

そして上に書いてあるR言語の関数についてマニュアルで読んで少しわかってみてください。
R環境のターミナルで:
 ? 関数の名前
を入力してください。例えば:
?head
を入力するとhead関数について説明を出てきます。

一緒にR言語を勉強しましょう!

2013年10月28日月曜日

第7回関西ゼロからはじめるR言語勉強会の印象

第7回関西ゼロからはじめるR言語勉強会は無事に終わりました。
弊社の飯田と話し合い勉強会のフローをちょっと変更しました。



まず課題の答え合わせ。
課題については東京の勉強会で「難しい」と聞いてたのでフィードバック。
少し簡単に解けるよう頑張りました。塩見さんが回答し正解!すごくうれしかったです!



課題で作った関数は「線形判別関数」ですが判別の結果はあまりよくなかったです。
だから参加者を3つのチームに分けて分類結果について達成方法を考えてみました。



皆さんは協力したりお互いにR言語と統計を教えたりもっと仲良くなったと思っています。そして聞くだけではなくR言語を使ってデータ解析挑戦しました。


これからR言語でそのやり方を継続しようと思います。
勉強会までにチームで解いていく課題を発表して、勉強会でチームを作り課題を解決していきます。

懇親会で勉強会の皆さんの参加者が参加しました!




そのときは自分の会社を立ち上がる日本人はおおいと聞きました。そして野田さんはGo Programming Languageについて何回も広告しました。最後に初めてカルピスを飲みました!

皆さんは楽しく時間を過ごして懇親会延長戦したと聞きました。二次会について報告してください!

今回もよろしくお願い致します!



2013年10月21日月曜日

第7回関西ゼロからはじめるR言語勉強会の課題

皆さん、お疲れさまです!

第7回関西ゼロからはじめるR言語勉強会参加するつもり方へ:

私はR言語勉強会で発表したときから4月間もたちました。だから今回の課題は第5回の「R言語で統計分類基本」に基づいて作りました。

最近の関東勉強会で同じ内容の課題を作ったけどそのときいろいろな問題が発生しました。だから今回のスクリプトを簡単にしてみました。でも、スクリプトはわかりづらいしほかの問題があれば遠慮せずにFacebookやブログなどで言ってください。

入力しなければいけないR言語のコマンドは私の「R言語で統計分類基本」と同じなのでこのプレゼンテーション:


を参考にしてください。

課題の内容は以下のスクリプトに入れました:

スクリプト

そして分類しなければいけないデータはUCI Machine Learning Repositoryでダウンロードができます:

データセット

入力すべきところは3つあります。だから早く解決ができると思います。

回答は土曜日の勉強会になります。

一緒にR言語を勉強しましょう!

2013年9月13日金曜日

第5回ゼロからはじめるR言語の勉強会の課題

皆さん、お疲れさまです!

第5回関東ゼロからはじめるR言語勉強会参加するつもり方へ:
R言語復習のために簡単な課題を作成しました。課題は第4回の「R言語で統計分類基本」に基づいて作ったのでこの

プレゼンテーション


を参考にしてください。

課題の内容は以下のスクリプトに入れました:

スクリプト

そして分類しなければいけないデータはUCI Machine Learning Repositoryでダウンロードができます:

データセット

入力すべきところは2つあります。だから早く解決ができると思います。

回答は来週の勉強会になります。

一緒にR言語を勉強しましょう!

2013年8月23日金曜日

第6回関西ゼロからはじめるR言語勉強会の課題

皆さん
前回と同じように勉強会の内容を復習ために課題を作りました。
課題の内容は第4回勉強会の内容になりました。なぜなら第4回勉強会の内容はまだ練習しませんでした。
そしてR言語でグラフを作るのは面白いと思います!
課題のスクリプトは

こっち

です。

グラフを作り方の参考として私の関西第4回ゼロからはじめるR言語勉強会の発表を送りします:




この資料を読んでぜひ解決できると思います!

課題が二行で解決できると思うのでやってみてください!
第6回ゼロからはじめるR言語勉強会で結果を比べて一緒に解決しましょう!

2013年7月24日水曜日

関東第4回ゼロからはじめるR言語勉強会

7月20日に東京の品川で関東第4回ゼロからはじめるR言語勉強会開催しました。
私は今回出張で一週間東京にいていろいろな世話になってありがとうございました。
勉強会はブログにアップした課題から始めました。
課題は先月の「グラフパッケージの招待」の復習でした。ggplot2パッケージのqplot関数でトライしてみた皆さん、お疲れさまでした!


阿部さんは回答しています

次に自分が興味を持つ「分類器について」発表しました。R言語で線形判別分析と二元判別分析を実行につて話しました。


休憩ときに画像認識やOpenCVなどしゃべりました。そして量子力学専門家ー良和さんは量子コンピュータについて講義していただきました。
「光子の裁判」を基に泥棒と警察のアルゴリズムを使って量子コンピュータを動き方を説明してくださいました。
ありがとうございました!今度もよろしくお願いいたします。

良和さんの量子と泥棒物語

その後に弊社の飯田が発表しました。六月の勉強会で時間がなくて残念ながら発表ができませんでした。今回は二枚のプレゼンテーションもやっていました!
まず、「ゼロからファンクションを作り方」という講義でした。
基本的な関数のシンタクスを招待して関数が実行を調査について語りました。そして「バイナリ」と「インライン」の高速を調査の結果をいただきました。
二番目のプレゼンテーションは「t検定を勉強してみよう」でした。
弊社の飯田は複雑な統計的な定義を簡単な言葉を使って説明しました。
私にみたいな外国人も分かれました。そしてR言語の例スクリプトのおかげでたくさん勉強ができました。
弊社の飯田の発表は面白すぎて写真を撮るのを完全に忘れました。
弊社の飯田、申し訳ございません。:-(

懇親会で楽しく時間を過ごしました。初めてその長い間東京にいていろいろな聞きたいこと(六本木の雰囲気とか鎌倉の観光地とか)がありました。そして



もんたさんは居酒屋でノートパソコンを出さずにいれません。


関東にいたときはいつもと同じとても楽しかった。
皆さん、誠にありがとうございました。今度もお願いいたします。
また、関東R言語勉強会で一緒に勉強しましょう。


2013年7月11日木曜日

関東第4回ゼロからはじめるR言語勉強会の課題

皆さん
R言語勉強ために課題を作りました。

課題のスクリプトは

こっち

です。

私の関東第3回ゼロからはじめるR言語勉強会の発表の内容を復習なので資料を読んで:




ぜひ解決できると思います!

第4回ゼロからはじめるR言語勉強会で結果を比べて一緒に解決しましょう!

2013年6月17日月曜日

第3回関東ゼロから始めるR言語勉強会開催しました

6月15日に関東第3回ゼロからはじめるR言語勉強会開催しました。
参加者、発表者の皆さんお疲れ様でした!

課題の回答
最初、課題の回答を一緒に考えました。
みなさんと一緒に多くの問題を解決することができました。



Igjitさんの発表
Igjitさんの発表はLispで記述された進化シミュレーションをR言語で表現したものです。
IgjitさんはLisp言語で記述されている進化シミュレーションをR言語に置き換えることについて発表しました。
発表内容の詳細はIgjitさんのブログに書かれています。又、Rについて記事もたくさんありますので宜しければご覧ください:

Igjitさんのブログ

モンタさんの発表

「R言語のループ処理が遅い」といううわさの真相を突き止めるため
深く掘り下げて調査した結果を発表してくれました。

モンタさん発表中:(写真にはきれいな女性が写っているがモンタさんの発表の内容は詳しかったです。)
そして、ループを使わなければいけない場合の高速化の方法を教えていただきました。
このブログの最後にモンタさんのプレゼンテーション資料をアップしました。
勉強会参加できなかった方ぜひお読みください。

その二つの完璧なプレゼンテーション後に自分の発表をするのはちょっと恥ずかしかったです。
関西ゼロからはじめるR言語の勉強会と同様、R言語のグラフを描くのための様々なパッケージについて発表しました。

楽しく時間を過ごして17時になってしまいました。それで弊社の飯田は発表する時間がありませんでした。:-(

懇親会では色々な話を聞きました。プログラミング合コンを聞いてびっくりしました。日本はとても楽しい国です!

やさしい店員さんは格好いい料理を作りました:

そして、いつもと同じ居酒屋で勉強会の復習しました:

皆さん、面白い勉強会でありがとうございました。賢いエンジニアを会えてうれしいです。今度もお願いいたします!

モンタさんのプレゼンテーション:

私のプレゼンテーション:

2013年5月31日金曜日

「関西第5回勉強会」 「関東第3回勉強会」の課題

 課題についてフィードバックをありがとうございます。

今回からできる限りR言語の課題を分かりやすくて簡単になるようがんばります。

前回の課題を修正して二つのファイルを作成しました。
本課題に利用しますので以下のファイルを任意の場所にダウンロードしてください。

(ダウンロードするファイル)
kadai_help.R
kadai.R

kadai_help.Rは
source("kadai_help.R")
で実行(ロード)しておいてください。

(みなさんへの宿題)
コーディングする箇所は以下の3つです。
ファイル名:kadai.R
(1). 課題1
29行目
log.fun = function(input.vec)

(2). 課題2
42行目
y2 = ...

(3). 課題3
74行目
system.time(...)

分からないところがあったらFacebookやTwitter(#rkansai)やこのブログのコメントで
連絡してください。


参考:
Vectorizationについて英語のブログ記事

(私のプレゼンテーションの資料)




一緒にR言語を勉強しましょう!

2013年5月28日火曜日

第4回関西ゼロからはじめるR言語勉強会開催しました

第4回関西ゼロはじめるR言語勉強会(ATND)を開催しました。

    日時: 2013-05-25(土) 15:00 - 17:00
    場所:堂島ビルヂング1F会議室

今回の勉強会は弊社飯田と一緒に堂島で行いました。

私は図表を表すのためにR言語の描き方について話しました。基本的なPlotから初めてggplot2とcorrplotを話しました。
そのあとに、インタネットでR言語のスクリプトの処理を結果を表すためにHTML5の力を使ってShinyパッケージの簡単なウェッブアプリを紹介しました。

弊社飯田は関数を作ることとR言語のバイナリー化について発表しました。
簡単な関数の作り方を紹介してどうやってR言語の関数の最適化を行っていくか
最後にインラインコードからバイナリーコードに変化の結果を報告しました。


そして課題についてフィードバックしていただいてありがとうございます。
第3回の課題が分かりにくくて申し訳ありません。
次の課題でもっとがんばろうと思います!

懇親会では就職が決まった学生さんが仕事に関係しそうでRを勉強し始めた。
Web画面設計の仕事に就くまでの始まりはJazzを演奏からだった。
仕事ではなく株の投資が趣味でRを勉強し始めた。
など他業種出身の方の普段お聞きすることができないおもしろおかしなお話
、意見交換ができ意味のある貴重な勉強をさせていただきました。


皆さん、また関西ゼロからはじめるR言語勉強会で会いましょう!

2013年5月22日水曜日

第2回関東ゼロはじめるR言語勉強会を開催しました

第2回関東ゼロはじめるR言語勉強会(ATND)を開催しました。
日時: 2013-05-18(土) 15:00 - 17:00
場所:品川駅近くのAP品川京急第2ビル
 今回の勉強会は弊社飯田と一緒に品川で行いました。
参加者の皆様お疲れ様でした。
弊社飯田の発表:



弊社飯田と私(パヴェウ)に以外に今回は門田さんに発表していただきました。
内容は「R言語に最初の挑戦」でした。

門田さん発表:


Twitterのデータを処理して日本人は「おはよう」と「おやすみ」を一番よく使っている時間帯を見つけました。 時間があればポーランド人も同じようなタイミングでTwitterを使うのかを調べようと思います。

懇親会でいっぱい日本語の専門的な話を聞いて楽しく時間を過ぎました:

懇親会でラッキービールを頂きました :


酔いながらでもたまに議論:すごい!!





















では、次回関東第3回勉強会で会いましょう!そのとき自分のR言語を使っての体験やデータの整形方法などについて聞かせてください。
パヴェウ発表:

2013年5月7日火曜日

第4回関西ゼロからはじめるR言語勉強会の課題

Rusin Pawelが次回(第4回勉強会)に向けて、課題を作成しましたので公開します。
勉強会時に答え合わせしましょう。

1. log対数ベクターを使ってfor文実行にかかる時間を比較する
 (1).対数の生成
 2種類のlog対数ベクターを生成します。
 a) R言語のVectorizationを利用する。
 b) for文を使って関数(ファンクション)を自作する。

 以下のベクター(homework.vec)を使って各a),b)の対数を生成してください。
 set.seed(42)
 homework.vec = as.vector(rnorm(10e5,mean=10),mode="numeric")

 (2).実行時間の検証
 system.time関数を使いa), b)の実行時間を出力してください。

2. 行列をつかってfor文実行にかかる時間を比較する
 (1). 行列の生成
 4種類の行列を生成します。
  a) for文を使って関数(ファンクション)を自作する。
  b) apply関数を利用する。
  c) plyrのパッケージを利用する。
  d) R言語のVectorizationを利用する。

 以下の行列(homework.mat)を使ってa),b),c),d)の可変スケーリング、平均、
 rangeを求めてください。
 set.seed(42)
 homework.mat = matrix(rnorm(10e5,mean=172,sd=97.5),nrow=10e2)

 ※以下の式を利用して可変スケーリング、平均、rangeを求めてください。
 (可変スケーリング)
 homework.mat(i,j) = (homework.mat(i,j) – mean) / range
 (平均)
 mean()
 (range)
 max(homework.mat) - min(homework.mat)

 (2).実行時間の検証
 system.time関数を使いa), b),c),d)の実行時間を出力してください。

第3回関西ゼロからはじめるR言語勉強会開催しました

4月27日に関西ゼロからはじめるR言語勉強会は行いました。ゴールデンウェーク中に参加していただいてありがとうございます!
今回の勉強会は第2回勉強会の課題の答え合わせから始まりました。
課題を考えることにより少しでもRに触れていってほしいと思います。
最初は特に解けなくてもかまいません。
頭で考えどのファンクションを使っていこうか考えることも重要です。
この課題を出すことは次回からも続けていこうと思います。
回答してくださった方お疲れ様でした。
ありがとうございます。

その後に三つのプレゼンテーションがありました:

  • 飯田さんの「コマンドで実行する」
  • 和田さんの「LODについて」
  • 私の「R言語ループ処理について」
和田さん発表ありがとうございました。
LOD(Linked Open Data)は情報を統一して共有するという考え方のようです。
GISデータは震災などでも活用されたとか。今後の発展に期待。
次回も発表者を募集しています。連絡ください。



懇親会はドイツの会社に勤めるロシア出身の方が参加され若干インターナショナルな話題で盛り上がりました。
ドイツはやはりOSSだけでなくオラクルDB使ってる人が多いとか
ロシアの寒中水泳の文化があるとかウォッカ飲まないロシア人も多いとか興味津々な話題満載でした。


その他 参考: LODクラウド, LODチャレンジ2012公式サイト


2013年4月17日水曜日

第2回関西ゼロから初めるR言語勉強会開催しました


330日に関西ゼロから初めるR言語第二回勉強会開催しました.
出講が二つありました:

  1. 私の”R言語データ型について”
  2. 飯田さんの”できるだけコマンドを使いたくないと思っている方へ”

そして、関西ゼロのはじめるR言語勉強会は #rkansai に決めました。

誰が来るか(プログラマーか、技術者か、または経済学者か)よく知らなくて日本語でR言語について大切なことを通じるか心配しました。皆さんの心配りをありがとうございました。日本語の勉強とともにR言語についてもっと詳しいことを伝えれると思います。

次の勉強会で発表しようと思っている方は連絡してください。一緒にR言語の勉強を面白くなりましょう!




次回(第3回ゼロから始めるR言語勉強会のATNDこちら
Facebookの勉強会グループはこちら
告知:
約束していた次回への課題は別途このブログに記載します。お楽しみに。
約束していたメーリングリストも作成中です。

第1回関東ゼロから始めるR言語勉強会開催しました

第一回関東ゼロから始めるR勉強会を開催しました

日時:2013-04-13(土)15:00〜17:00
場所:東京都千代田区内神田2-1-2 第5中央ビル 6F TKP大手町ビジネスセンター

第一回関東ゼロからはじめるR勉強会を開催しました。
発表者は以下の通り。

1. 飯田啓介 Rとは?
2. 竹中誠 初めてRを触ってみた
3. Pawel Rusin Rのデータ型について

今回はプログラマーの方が多くメモリーや型定義、行列の使い方など細かい
部分まで質問があり時間が足りなくなって中断してしまいました。

(竹中誠さん:逆行で暗い)


(Rusin Pawel)

懇親会も軽く自己紹介の予定が一人ひとり必ずだれかが横道に逸らして自己紹介だけでほぼ終わったぐらい楽しいひとときでした。
ありがとうございました。
 次回も多数のご参加お待ちしております。
(懇親会) 


第一回関東ゼロからはじめるR言語勉強会

2013年4月15日月曜日

グーグルグループを作成しました

前回の勉強会でお話させていただきましたGoogleグループを作成しました。

「ゼロから始めるR言語勉強会グループ」
 http://groups.google.com/group/rzerokara 

発信は自分を磨くツールです。
課題や質問、連絡など問い合わせて前に進みましょう。

第3回関西ゼロからはじめるR言語勉強会
Facebook 関西ゼロから始めるR言語勉強会

2013年4月2日火曜日

第三回勉強会の課題


皆さん、

R言語データ型の勉強のために簡単な課題を作りました。宜しければ解決してみてください。第三回勉強会で一緒に結果を調べると思います。

1.データフレームの作成
(1)〜(5)の課題をこなしてデータフレームを作成してください。

(1). 数字1〜10までのベクターを作ってください。
(2). 文字”a”〜”j”までのベクターを作ってください。
(3). TRUE、FALSEのベクターをTRUE5個、FALSE5個で作ってください。
(4). 上記(1)、(2)、(3)の3つのベクターから1つのデータフレームを作ってください。
(5). カラム名を”id”,”code”,”transfer”に変えてください。

2. データフレームの結合
(1)〜(3)の課題をこなしてデータフレームを抽出してください。

(1). 以下のcsvファイルからデータフレームを作成してください。
http://dl.dropbox.com/u/15652482/shukudai.csv
(2). 2つのデータフレームを同じidでマージしてください。
 "name", "salary"の列が増えているはずです。
(3).salaryが2.3e3以上の行を抽出してください。

問題か分からないところがあったら連絡してください。

2013年3月6日水曜日

第一回ゼロからはじめるR言語勉強会開催しました

第一回関西ゼロから始めるR勉強会を開催しました


2013-02-23(土)15:00から第一回関西ゼロからはじめるR勉強会を開催しました。
Agendaは以下の通り。
  1. 自己紹介
  2. なんで最近Rなの? 
  3. Rってなに? 
  4. Rでできること
  5. 必要なもの
  6. どんな人が使うか?

第一回ということでRとは何かから始まり、Rの使いどころを中心に講義を進めました。
勉強会にこられたほとんど全員が初心者の方で勉強会の趣旨にピッタリ当てはまるとてもよい展開でした。

懇親会では、「あんなに質疑の多い勉強会に参加したのは初めてです」
とびっくりされるほど、ほんとにみなさんアクティブで勉強熱心な方たちが多く自分にとってもよい刺激でした。

勉強会風景

使った資料



第1回関西ゼロからはじめるR勉強会(2) from Iida Keisuke

使ったRファイル(1)

# 行、列が一行でできあがる
cols<-cbind(1,2,3) # 行生成だーん
rows<-rbind(1,2,3) # 列生成だーん
mt.c<-matrix(1:3, nrow=3, ncol=3) # 行列だーん
mt.r<-matrix(1:3, nrow=3, ncol=3, byrow=T)
r_trans<-t (mt.r) # 転置行列
df<-data.frame(ID=c(1:3), name=c('iida','matsu','ishi'))

# 乱数発生
rd.norm1<-rnorm(1000,mean=1,sd=0.5) #平均1 標準偏差0.5の正規乱数を1000個作る
rd.norm2<-rnorm(1000,mean=1,sd=0.5) #平均1 標準偏差0.5の正規乱数を1000個作る
# plot(rd.norm1, rd.norm2)
print(rd.norm1)
print(rd.norm2)

# グラフが簡単
x<-c(1,2,3,4,5)
barplot(x, horiz=TRUE) # 棒グラフ
mt.x<-matrix(1:12, nrow=4, ncol=3) # Matrix生成
barplot(mt.x) # 積み上げグラフ
bar.col<-c("blue", "green", "red", "cyan") # グラフの色設定
barplot( mt.x, col=bar.col) # 色分けグラフ生成

pie(x) # 円グラフ
rn.x <- rnorm(30,-20,20) # 正規分布に従う乱数発生
plot(rn.x,type="l") # 折れ線グラフ

# 散布図
spray.x <- c(rnorm(10000, 5, 2))
spray.y <- c(rnorm(10000, 100, 20))
spray.col<-densCols(spray.x, spray.y, colramp=colorRampPalette(c("white", "yellow", "orange", "red")))
plot(spray.x, spray.y, col = spray.col)


使ったRファイル(2)

ex.id<-c(1:1000)
ex.man_en<-round(rnorm(1000,mean=40,sd=5), 0) # 英語テスト結果を作成
ex.man_ma<-round(rnorm(1000,mean=70,sd=5), 0) # 数学テスト結果を作成
ex.man_ja<-round(rnorm(1000,mean=20,sd=5), 0) # 国語テスト結果を作成

ex.wo_en<-round(rnorm(1000,mean=75,sd=5), 0) # 英語テスト結果を作成
ex.wo_ma<-round(rnorm(1000,mean=30,sd=5), 0) # 数学テスト結果を作成
ex.wo_ja<-round(rnorm(1000,mean=80,sd=5), 0) # 国語テスト結果を作成


# データフレーム生成

df.dat<-data.frame(
ex.id
,ex.man_en
,ex.man_ma
,ex.man_ja
,ex.wo_en
,ex.wo_ma
,ex.wo_ja
)
# データフレームのカラム名変換
colnames(df.dat)<-c("ID"
,"MAN_Eng"
,"MAN_Math"
,"MAN_Ja"
,"WO_Eng"
,"WO_Math"
,"WO_Ja"
)
# データのフィルタリング
df.new<-subset(df.dat,
0 <= MAN_Eng & MAN_Eng <= 100
& 0 <= MAN_Math & MAN_Math <= 100
& 0 <= MAN_Ja & MAN_Ja <= 100
& 0 <= WO_Eng & WO_Eng <= 100
& 0 <= WO_Math & WO_Math <= 100
& 0 <= WO_Ja & WO_Ja <= 100
)

# ===== 高水準作図関数
# 棒グラフ
barplot(df.new$MAN_Math)

# ヒストグラム
hist(df.new$MAN_Eng,xlim=c(0,100),axes=F, ann=F, col="blue")
par(new=T)
hist(df.new$MAN_Math,xlim=c(0,100),col="red")

# 散布図(重ねあわせ)
plot(df.new$MAN_Math,df.new$MAN_Eng,xlim=c(0,100),ylim=c(0,100),axes=F, ann=F, col="blue")
par(new=T)
plot(df.new$WO_Math,df.new$WO_Eng,xlim=c(0,100),ylim=c(0,100),ann=F,col="red")

# ===== 低水準作図関数
# タイトル挿入
title(main="Test Results", col.main="red",
sub="Men & Women", col.sub="green",
xlab="Math", ylab="English")
# ライン挿入
abline(v=30, h=75, col="red")
abline(v=70, h=40, col="blue")

# ラベル
legend(
"topright" # 位置
,c("Man","Woman") # 名前
,col = c("blue","red" ) # 色
,lwd=1 # 表示種別
,cex=0.8 # 大きさ
,bg='white' # 背景色

)

# テキスト入力
text(x=50, y=100, label="Woman", cex=0.8, col="red", font=3)
text(x=90, y=65, label="Man", cex=0.8, col="blue",font=4)

# 矢印
arrows(30, 75, 50, 100, col="red",code=2, lty=3)
arrows(70, 40, 90, 65, col="blue",code=2, lty=4)