K-最近傍(k最近傍)データの準備:正規化した値

1つの の正規化した値:データ準備
2  DEF:autoNorm(のdataSet A)       #1 autoNorm()関数は、自動的に、0から1の間のデジタル値に変換することができる
3。      minVals = dataSet.min(0)
 4。      maxVals dataSet.max =を( 0)    ddataSet.max(パラメータ00)は、関数の最小値をカラムから選択することができるようになっている
5つの。      範囲=のmaxVals - minVals
 。6      normDataSet = ゼロ(形状(のdataSet A))
 7      、M = dataSet.shape [0]
 。8      newValueに=(OLDVALUE分)/(最大-最小)、 式は、範囲内の任意の値に間隔0の値に変換されることができることを特徴とする。1 
。9      同じサイズのマトリクスに可変入力行列の内容をコピーするタイル()関数(特定の機能分割値)
10      numpyのライブラリにおいて、マトリックス分割関数必要linalg.solve(マタ、MATB)
11。      normDataSet =のdataSet A -タイル(minVals、(M ,. 1 ))
 12である      normDataSet = normDataSet /タイル(範囲、(M ,. 1 ))
 13であり、     リターン normDataSet、範囲、minVals

結果:

1 >>> normMat、範囲、minVals = kNN.autoNorm(datingDataMat)
 2 >>> normMat
 3アレイ([1、1、1 ]、
 4         [0、0、0]、
 5         [ 0、0、0]、
 6         ...、
 7         [0、0、0]、
 8         [0、0、0]、
 9         [0、0、0] 】)
 10 >>> 範囲
 11アレイ([4.092000e + 04 8.326976e + 00 9.539520e-01 ])
 12 >>> minVals
 13配列([0、0、0])

エラー:

1 >>> normMat、範囲、minVals = kNN.autoNorm(datingDataMat)
 2  トレースバック(最新の呼び出しの最後):
 3    ファイル" <入力>は"、1行目、、<モジュール>
 4 NameError:名前' k最近傍'  されて いない定義されました
 5  
6 >>> normMat、範囲、minVals = kNN.autoNorm(datingDataMat)
 7  トレースバック(最新のコールの最後):
 8    ファイル" <入力> "、行1、 <モジュール>
 9はAttributeError:モジュール'KNN '何の属性を持っていないautoNorm 

ソリューション:

  パーソナルソリューション:再起動PyCharm、kNN.pyを実行するには、実行するための完全なコマンドを再入力して、問題が解決されます

1 >>> から numpyのインポート *
 2 >>> random.rand(4,4 3 >>> randMat =マット(random.rand(4,4 ))
 4 >>> randMat.I
 5 >>> invRandMat = randMat.I
 6 >>> myEye = randMat * invRandMat
 7 >>> myEye -眼(4 8 >>>グループ、ラベル= kNN.createDataSet()
 9枚の >>> 10枚の >>> ラベル
 11 >>> k最近傍.classify0([0,0]、グループ、ラベル、3 12 >>>datingDataMat、datingLabels = kNN.file2matrix( "datingTestSet.txt ' 13 >>> datingDataMat
 14 >>> datingLabels [0時16分]
 15 >>> インポートmatplotlibの
 16 >>> インポートmatplotlib.pyplotとしてPLT
 17 >>>図= plt.figure()
 18 >> > AX = fig.add_subplot(111 19 >>> ax.scatter(datingDataMatの[:1]、datingDataMat [:2 ])
 20 >>> plt.show()
 21 >>> normMatを、範囲、minVals = kNN.autoNorm(datingDataMat)
 22 >>>normMat
 23アレイ([1、1、1 ]、
24         [0、0、0]、
 25         [0、0、0]、
 26         ...、
 27         [0、0、0]、
 28         [0、0、0 。]、
 29         [0、0、0])
 30 >>> 範囲
 31アレイ([4.092000e + 04 8.326976e + 00 9.539520e-01 ])
 32 >>> minVals
 33アレイ([ 0、0、0])

 

おすすめ

転載: www.cnblogs.com/fd-682012/p/11574758.html