KazuminEngine

プログラマーの日記

機械学習のデータ(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ファイルがおかしいのかな。