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 -式
② -使用ビルトインモジュール
参考ブログ: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のがある、と彼女は今、彼らはあまりにも少し知っている、または
練習は完璧になりますし、頻繁に使用する機会を持っていると非常に精通していないが、これらの機能は、現在、リアンシュウと混合されている、あなたはできるはずです
总之、まだ長い道のりがあります。