Skip to content

今日の落書き Rubyでアヤメ(Iris)のデータを眺める

データを用意する

https://raw.githubusercontent.com/pandas-dev/pandas/master/pandas/tests/data/iris.csv

Jupyter Notebookを起動する

※ホビーでRubyを手軽に使うのにJupyter Notebookが必ずしもベストとは思わない…

ライブラリを読み込む

CSVファイルを読み込む

SepalLength SepalWidth PetalLength PetalWidth Name
0 5.1 3.5 1.4 0.2 Iris-setosa
1 4.9 3.0 1.4 0.2 Iris-setosa
2 4.7 3.2 1.3 0.2 Iris-setosa
3 4.6 3.1 1.5 0.2 Iris-setosa
4 5.0 3.6 1.4 0.2 Iris-setosa
5 5.4 3.9 1.7 0.4 Iris-setosa
6 4.6 3.4 1.4 0.3 Iris-setosa
7 5.0 3.4 1.5 0.2 Iris-setosa
8 4.4 2.9 1.4 0.2 Iris-setosa
9 4.9 3.1 1.5 0.1 Iris-setosa

アヤメの品種を確認する

Name
0 Iris-setosa
50 Iris-versicolor
100 Iris-virginica

基礎統計量を表示してみる

PetalLength PetalWidth SepalLength SepalWidth
count 150.0 150.0 150.0 150.0
mean 3.759 1.199 5.843 3.054
std 1.764 0.763 0.828 0.434
min 1.0 0.1 4.3 2.0
max 6.9 2.5 7.9 4.4

グループにしてみる

SepalLength SepalWidth PetalLength PetalWidth
Iris-setosa 5.006 3.418 1.464 0.244
Iris-versicolor 5.936 2.77 4.26 1.326
Iris-virginica 6.588 2.974 5.552 2.026

アヤメの品種ごとにデータをわける

SepalLengthのヒストグラム DataFrameから

Nyaplotを使う場合

※ Daruから NyaplotやGnuplotrb、Plotlyを通してグラフを描けるらしい. 残念ながらNyaplotの開発は止まっている…

SepalLengthのヒストグラム Statsampleから

StatsampleがDaruと統合する前に独自に持っていたグラフ機能が残っている

setosaの散布図を描く

Nyaplotを使うとき

Numo::Gnuplotを使うとき

Daru::Vector→RubyArrayへの変換が必要。

相関係数を求める

SepalLength SepalWidth PetalLength PetalWidth
SepalLength 1.0 0.747 0.264 0.279
SepalWidth 0.747 1.0 0.177 0.28
PetalLength 0.264 0.177 1.0 0.306
PetalWidth 0.279 0.28 0.306 1.0

散布図行列

現状では簡単に描く方法は存在していないとおもわれる。

単回帰分析を行う

Numo::Gnuplotで回帰直線を描く

多分Nyaplotでも描ける

重回帰分析

Post a Comment

Your email is never published nor shared. Required fields are marked *
*
*