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])