My Notes

統計学とかR(R言語)とかPython3の覚え書きとか走り書きとか。 座右の銘にしたい: All work and no play makes Jack a dull boy.

Python3(NumPy, pandas, scikit-learn)で機械学習(Machine Learning)。 irisを読み込む。方法いろいろ。

Python3コード

#!/usr/bin/env python3


"""(docstring)
"""


import numpy as np
import pandas as pd
from sklearn.datasets import load_iris
# datasets.load_iris() として使用する場合。
# from sklearn import datasets


def main():
    """(docstring)
    """

    # (scikit-learn にirisはあるんだが。)
    # https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data
    df1 = pd.read_csv('https://archive.ics.uci.edu/ml/'
        'machine-learning-databases/iris/iris.data', header=None)
    print('df1')
    print('')
    print(df1.head(10))
    print('')
    print(df1.tail(10))
    print('')

    # ターミナルが大変になる。注意。
    # df2 = load_iris()
    # print(df2)
    # それにndarrayの属性が必要なんで。

    dat = load_iris()
    df2 = pd.DataFrame(data=dat.data, columns=dat.feature_names)
    # .data, .feature_namesはndarrayの属性(のはず)。
    # ここが詳しい http://www.neural.cz/dataset-exploration-boston-house-pricing.html
    # pandasの公式のpandas.DataFrame documentationでは、
    # この属性の説明が省かれてるような気がする(たぶん(引数のdataの説明はあるんだが...))。
    # (ちゃんと読めてないからかもしれないが...)。
    #
    # R(R言語)ならSpeciesも出力されるが、scikit-learnではそうならない疑問についてなら以下。
    # https://stackoverflow.com/questions/21087476/what-does-the-array-mean-in-numpy-sklearn-datasets-python
    df2['Species'] = dat.target_names[dat.target]
    # 通常 df2['target'] = dat.target_names[dat.target]
    df2['as 0, 1, or 2'] = dat.target
    print('df2')
    print('')
    print(df2.head(10))
    print('')
    print(df2.tail(10))
    print('')

if __name__ == '__main__':
    main()

出力

df1

     0    1    2    3            4
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

       0    1    2    3               4
140  6.7  3.1  5.6  2.4  Iris-virginica
141  6.9  3.1  5.1  2.3  Iris-virginica
142  5.8  2.7  5.1  1.9  Iris-virginica
143  6.8  3.2  5.9  2.3  Iris-virginica
144  6.7  3.3  5.7  2.5  Iris-virginica
145  6.7  3.0  5.2  2.3  Iris-virginica
146  6.3  2.5  5.0  1.9  Iris-virginica
147  6.5  3.0  5.2  2.0  Iris-virginica
148  6.2  3.4  5.4  2.3  Iris-virginica
149  5.9  3.0  5.1  1.8  Iris-virginica

df2

   sepal length (cm)  sepal width (cm)  petal length (cm)  petal width (cm)  \
0                5.1               3.5                1.4               0.2   
1                4.9               3.0                1.4               0.2   
2                4.7               3.2                1.3               0.2   
3                4.6               3.1                1.5               0.2   
4                5.0               3.6                1.4               0.2   
5                5.4               3.9                1.7               0.4   
6                4.6               3.4                1.4               0.3   
7                5.0               3.4                1.5               0.2   
8                4.4               2.9                1.4               0.2   
9                4.9               3.1                1.5               0.1   

  Species  as 0, 1, or 2  
0  setosa              0  
1  setosa              0  
2  setosa              0  
3  setosa              0  
4  setosa              0  
5  setosa              0  
6  setosa              0  
7  setosa              0  
8  setosa              0  
9  setosa              0  

     sepal length (cm)  sepal width (cm)  petal length (cm)  petal width (cm)  \
140                6.7               3.1                5.6               2.4   
141                6.9               3.1                5.1               2.3   
142                5.8               2.7                5.1               1.9   
143                6.8               3.2                5.9               2.3   
144                6.7               3.3                5.7               2.5   
145                6.7               3.0                5.2               2.3   
146                6.3               2.5                5.0               1.9   
147                6.5               3.0                5.2               2.0   
148                6.2               3.4                5.4               2.3   
149                5.9               3.0                5.1               1.8   

       Species  as 0, 1, or 2  
140  virginica              2  
141  virginica              2  
142  virginica              2  
143  virginica              2  
144  virginica              2  
145  virginica              2  
146  virginica              2  
147  virginica              2  
148  virginica              2  
149  virginica              2  

参考文献

以下、原著のアマゾンのレビューから。

この書籍についての批判なら、現在表示されている、このトップカスタマーレビューが参考になるのかなと思う。

(だが、最初のうちは、こういう批判はあまり気にしないほうがいいだろう)。

Python Machine Learning: Unlock Deeper Insights into Machine Learning With This Vital Guide to Cutting-edge Predictive Analytics

Python Machine Learning: Unlock Deeper Insights into Machine Learning With This Vital Guide to Cutting-edge Predictive Analytics