機械学習のデータ(iris)の中身
機械学習触ってみて、irisの中身を見た。また、データセットを自作しようと試みた(できなかった)。そのlog
使った言語 ライブラリ
- python 2.7
- scikit-learn
- panda
irisの中身を見てみる。
#-*- coding: utf-8 -*- from sklearn.svm import LinearSVC from sklearn.ensemble import AdaBoostClassifier,ExtraTreesClassifier ,GradientBoostingClassifier, RandomForestClassifier from sklearn.decomposition import TruncatedSVD from sklearn import datasets from sklearn.cross_validation import cross_val_score # 学習データを用意する iris = datasets.load_iris() #ライブラリ付属のサンプルデータ print iris features = iris.data #特徴量のデータ labels = iris.target #特徴
で、ライブラリ付属のサンプルデータislsの中身をputsしてみた
{'target_names': array(['setosa', 'versicolor', 'virginica'], dtype='|S10'), 'data': array([[ 5.1, 3.5, 1.4, 0.2], [ 4.9, 3. , 1.4, 0.2], [ 4.7, 3.2, 1.3, 0.2], ---------------略--------------------- [ 6.7, 3.3, 5.7, 2.5], [ 6.7, 3. , 5.2, 2.3], [ 6.3, 2.5, 5. , 1.9], [ 6.5, 3. , 5.2, 2. ], [ 6.2, 3.4, 5.4, 2.3], [ 5.9, 3. , 5.1, 1.8]]), 'target': array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]) --------------略--------------------
どうやら、ハッシュで、示しているオブジェクトのtypeは、arrayになってる。
自作を試みた
上記のようなファイルはcsvをコンバートすれば、できるらしい。
test.csvファイルを自作した
["target", "on/off", "a day"] ["Mon", 1, "08/18/07"] ["Tue", 1, "08/19/07"] ["Wed", 1, "08/20/07"] ["Thu", 1, "08/21/07"] ["Fri", 1, "08/22/07"] ["Sat", 0, "08/23/07"] ["Sun", 0, "08/24/07"] ["Mon", 1, "08/18/07"] ["Tue", 1, "08/19/07"] ["Wed", 1, "08/20/07"] ["Thu", 1, "08/21/07"] ["Fri", 1, "08/22/07"] ["Sat", 0, "08/23/07"] ["Sun", 0, "08/24/07"] ["Mon", 1, "08/18/07"] ["Tue", 1, "08/19/07"] ["Wed", 1, "08/20/07"] ["Thu", 1, "08/21/07"] ["Fri", 1, "08/22/07"] ["Sat", 0, "08/23/07"] ["Sun", 0, "08/24/07"] ["Mon", 1, "08/18/07"] ["Tue", 1, "08/19/07"] ["Wed", 1, "08/20/07"] ["Thu", 1, "08/21/07"] ["Fri", 1, "08/22/07"] ["Sat", 0, "08/23/07"] ["Sun", 0, "08/24/07"] ["Mon", 1, "08/18/07"] ["Tue", 1, "08/19/07"] ["Wed", 1, "08/20/07"] ["Thu", 1, "08/21/07"] ["Fri", 1, "08/22/07"] ["Sat", 0, "08/23/07"] ["Sun", 0, "08/24/07"]
を、下記でコンバートした
-----------------略----------------------- import numpy as np import pandas as p iris = np.array(p.read_csv(filepath_or_buffer='./test.csv', header=None, sep=','))[:,:] print iris # 学習データを用意する features = iris.data #特徴量のデータ labels = iris.target
結果
[['["target"' ' "on/off"' ' "a day"]'] ['["Mon"' ' 1' ' "08/18/07"]'] ['["Tue"' ' 1' ' "08/19/07"]'] ['["Wed"' ' 1' ' "08/20/07"]'] ['["Thu"' ' 1' ' "08/21/07"]'] ['["Fri"' ' 1' ' "08/22/07"]'] ['["Sat"' ' 0' ' "08/23/07"]'] ['["Sun"' ' 0' ' "08/24/07"]'] ['["Mon"' ' 1' ' "08/18/07"]'] ['["Tue"' ' 1' ' "08/19/07"]'] ['["Wed"' ' 1' ' "08/20/07"]'] ['["Thu"' ' 1' ' "08/21/07"]'] ['["Fri"' ' 1' ' "08/22/07"]'] ['["Sat"' ' 0' ' "08/23/07"]'] ['["Sun"' ' 0' ' "08/24/07"]'] ['["Mon"' ' 1' ' "08/18/07"]'] ['["Tue"' ' 1' ' "08/19/07"]'] ['["Wed"' ' 1' ' "08/20/07"]'] ['["Thu"' ' 1' ' "08/21/07"]'] ['["Fri"' ' 1' ' "08/22/07"]'] ['["Sat"' ' 0' ' "08/23/07"]'] ['["Sun"' ' 0' ' "08/24/07"]'] ['["Mon"' ' 1' ' "08/18/07"]'] ['["Tue"' ' 1' ' "08/19/07"]'] ['["Wed"' ' 1' ' "08/20/07"]'] ['["Thu"' ' 1' ' "08/21/07"]'] ['["Fri"' ' 1' ' "08/22/07"]'] ['["Sat"' ' 0' ' "08/23/07"]'] ['["Sun"' ' 0' ' "08/24/07"]'] ['["Mon"' ' 1' ' "08/18/07"]'] ['["Tue"' ' 1' ' "08/19/07"]'] ['["Wed"' ' 1' ' "08/20/07"]'] ['["Thu"' ' 1' ' "08/21/07"]'] ['["Fri"' ' 1' ' "08/22/07"]'] ['["Sat"' ' 0' ' "08/23/07"]'] ['["Sun"' ' 0' ' "08/24/07"]']] Traceback (most recent call last): File "/Users/kinoshita/python/sklean.py", line 17, in <module> labels = iris.target #特徴量に対する正解データ AttributeError: 'numpy.ndarray' object has no attribute 'target'
データのフォーマットがirisと違いますね。ハッシュでないので、iris.targetで怒られています。 iris.dataが怒られていないのが謎ですw
コンバートのコードが正しくない、または、csvファイルがおかしいのかな。