タスク3

sklearn インポートデータセット     サンプルデータ導入
から sklearnを。model_selection インポート train_test_split トレーニングおよび試験セットに分割データのセットは、
インポートnumpyのAS NP
 インポートheapq 
虹彩 = datasets.load_iris()   インポート虹彩データセット 
X- = アイリス.DATA 
Y = iris.target 
。X_train、X_test、y_train、android.permission.FACTOR = train_test_split(X、Y、random_state = 2003 

#は、距離関数を求める定義
DEF (インスタンス1、インスタンス2)をeuc_dis:
    差分 =インスタンス1、インスタンス2    の差を計算します
    差分= 2 **差分              正方形 
    DIST = SUM(差分)** 0.5       #合計処方
    戻りDISTの

#は、KNN分類関数を定義
DEF knn_classify(X、Y、testInstance、K):
    DIS = []
     のための I X- :
        dis.append(euc_dis(I、testInstance))  X testInstanceベクトルのそれぞれからの要求
    
    maxIndex =マップ(dis.index、heapq.nsmallest(K、DIS))  kの最小距離の値添字
    
    MAXY = []
     のための I におけるmaxIndex:
        maxY.append(Y [I])   サンプルは、対応するタグ配列MAXYのに加え
    戻り MAX(MAXY、キー= maxY.count)  出現タグ値の検索最大数 
[knn_classify(X_train、y_train、データ,. 3)予測= ためのデータX_test] 
正しい = NP。 count_nonzero((予測== android.permission.FACTOR)==。真)
 印刷" Accruacyは次のとおりです。.3f%"(正解/%lenは(X_test)))
 

 

train_test_splitのランダムトレーニングセットとテストセットに分割され、リターン分割及び分割良い良いトレーニングデータセットとテストセットを返すための関数行列

構文:

X_train、X_test、y_train、y_test = cross_validation.train_test_split(X、Y、test_size、random_state)

どこで:

X:分割する機能のサンプルセット

Y:サンプルのラベルが分割されます

test_size:0と1の間で、テストセットのサンプルの数と、元のサンプルの数の比率があれば、それが整数である場合、テストセットのサンプルの数です。

random_state:乱数シード    

X_train:パーティショントレーニングデータ(戻り値)

X_test:データの分割テストセット(戻り値)

y_train:タグ分割トレーニングセット(戻り値)

y_test:タグ・テストセットを分割する(戻り値)

ランダムシード:グループでの乱数、テストを繰り返す必要が、乱数の同じセットを保証します。例えば、充填毎回1は同じ他のパラメータの下であなたが得るランダムな配列は同じです。しかし、埋め0 かどうかの塗りつぶしを、それぞれが異なることになります。

乱数を生成するシード及び乱数シード次の2つの規則を遵守の関係に依存します。

異なる種は、異なる乱数を生成する、同じ種を、異なるインスタンスも同じ乱数を生成する場合であっても。

参考ブログ:https://blog.csdn.net/fxlou/article/details/79189106

 

heapqは N要素のセットで最大値または最小値を見つけることができる)((--nlargest二つの機能をモジュール)とnsmallest

例えば:

>>> インポートheapq
 >>> NUMS = [6,8,2,0,11、-4、-9,23,4,96,27 ]
 >>> プリント(heapq.nlargest(3 、NUMS))
[ 96、27、23 ]
 >>> プリント(heapq.nsmallest(3 、NUMS))
[ -9、-4、0]

 

差分^ 2:① デフ** 2 -式

                        ② インポート数学   -使用ビルトインモジュール

                             math.pow(差分、2)

                        POW③(差分、2)       -組み込み関数の使用

参考ブログ:https://blog.csdn.net/jerry_1126/article/details/82917405

 

Pythonのforループは、多くの場合、文字列、リスト、タプル、辞書を横断するために使用されます

文法

 X Y:
   文(S)

実行フローは:Xは端のすべての要素を介して順番に要素y、完全なサイクルを表します

参考ブログ:https://www.cnblogs.com/kiki5881/p/8541887.html

 

APPEND()メソッドは、新しいオブジェクトを追加するには、リストの最後に使用されています

文法

list.append(OBJ)

OBJ - オブジェクトは、リストの最後に追加されます

 

マップは、()指定された順序に応じて提供されるマッピング機能を行います

最初のパラメータ引数の関数は、シーケンスの各要素の機能関数を呼び出すために、それぞれの時間は、関数は、関数の戻り値の新しいリストを返します。

構文:

マップ(機能、反復可能な、...)

DEFスクエア(X):             の二乗計算
     リターン X ** 2 

マップ(スクエア、[ 1,2,3,4,5])   は、リストの各要素の二乗を計算する 
[1 ,. 4 ,. 9、16、25 ] 
地図(ラムダ X:X ** 2、[1、2 ,. 3,4 ,. 5])  ラムダ匿名関数を使用して 
[1、4、9、16、25 ] 
 
同一位置のための2つのリスト、リストデータ追加するための 
マップ(ラムダ:X + Y、[2 ,. 4 ,. 6 ,. 8、10 [1 ,. 3 ,. 5 ,. 7 ,. 9。] X、Y ])
[ 3 ,. 7 ,. 11、15 ,. 19。]

参考:https://www.runoob.com/python/python-func-map.html

 

リファレンスコードルックダウンは、多くは、流線型のアイデアを理解していない、知識は学ぶためにたくさん持っているが、幸い、この種のものをBaiduのがある、と彼女は今、彼らはあまりにも少し知っている、または

練習は完璧になりますし、頻繁に使用する機会を持っていると非常に精通していないが、これらの機能は、現在、リアンシュウと混合されている、あなたはできるはずです

总之、まだ長い道のりがあります。

 

おすすめ

転載: www.cnblogs.com/C-ch3-5/p/11894439.html