2017-12-27 22 views
0

:次のように書いてpythonのscikit-learnライブラリのload_irisのタイプは何ですか?私はsklearnデータセットの一部として、虹彩データセットを見ていると私は次のことを割り当てるとき

> iris = sklearn.datasets.load_iris() 

は私を与える:

> type (iris) 
    <class 'tuple'> 

それはクラスによって、正確に何を意味していますタプルの誰かくださいすることができ

> iris.target[[10, 25, 50]] 

:私は、ドキュメントを読んだことがあるが、あなたが

> iris.data 

> iris.target 

にアクセスすることができますどのように、まだ私には明らかではないが、その後、どのようにも行うことができますもっと詳しく説明してください。ありがとう! sklearnについては

答えて

0

0.19.1 type(iris)リターン:

In [126]: type(iris) 
Out[126]: sklearn.utils.Bunch 

のは、それはボンネットの下に何を意味するのを見てみましょう:私はそれはそれは

少し良く含まれないものを理解するのに役立ちます願っています

In [127]: sklearn.utils.Bunch?? 
Init signature: sklearn.utils.Bunch(**kwargs) 
Source: 
class Bunch(dict): 
    """Container object for datasets 

    Dictionary-like object that exposes its keys as attributes. 

    >>> b = Bunch(a=1, b=2) 
    >>> b['b'] 
    2 
    >>> b.b 
    2 
    >>> b.a = 3 
    >>> b['a'] 
    3 
    >>> b.c = 6 
    >>> b['c'] 
    6 

    """ 

    def __init__(self, **kwargs): 
     super(Bunch, self).__init__(kwargs) 

    def __setattr__(self, key, value): 
     self[key] = value 

    def __dir__(self): 
     return self.keys() 

    def __getattr__(self, key): 
     try: 
      return self[key] 
     except KeyError: 
      raise AttributeError(key) 

    def __setstate__(self, state): 
     # Bunch pickles generated with scikit-learn 0.16.* have an non 
     # empty __dict__. This causes a surprising behaviour when 
     # loading these pickles scikit-learn 0.17: reading bunch.key 
     # uses __dict__ but assigning to bunch.key use __setattr__ and 
     # only changes bunch['key']. More details can be found at: 
     # https://github.com/scikit-learn/scikit-learn/issues/6196. 
     # Overriding __setstate__ to be a noop has the effect of 
     # ignoring the pickled __dict__ 
     pass 
File:   c:\users\max\anaconda3_5.0\envs\py36\lib\site-packages\sklearn\utils\__init__.py 
Type:   type 

In [128]: sklearn.__version__ 
Out[128]: '0.19.1' 

PS

0

タイプ(アイリス)はsklearn.utils.Bunchを返します。

しかしそれは実際にはキーとdictのデータ、FEATURE_NAMEに、ターゲットとして、uはコード虹彩に見ることができた

from sklearn.datasets import load_iris 
from sklearn.neighbors import KNeighborsClassifier 

iris=load_iris() 

features=iris['data'] #u can use iris.data 
label=iris['target'] #u can use iris.target 

model=KNeighborsClassifier(n_neighbors=1) 
model.fit(features,label) 

result=model.predict([[ 6.7, 2.5, 5.8, 1.8]]) 

をtarget_namesは[「データ」]はデータと特徴NP配列を与えます。

iris ['target']は、属しているカテゴリの配列を返します。

したがって、sklearnから読み込まれた虹彩データセットは、機能とラベルを含むdictです。

関連する問題