2016-11-26 12 views
0

私はPythonでKNNアルゴリズムを使っており、MinMaxScalerでデータフレームを正規化して0から1までの範囲のデータを変換しようとしました。sklearnのMinMax Scalerは0から1の間のカラムの値を正規化していません

しかし、私が出力を返すとき、私は出力が1を超えているいくつかの列最小/最大を観察します。私はそれを間違って使用していますか?例えばwrong_fragment、緊急(

kdd_data_10percent = pandas.read_csv("data/kdd_10pc", header=None, names = col_names) 
features = kdd_data_10percent[num_features].astype(float)#num_features contain the specific column labels i wish to extract  
features.apply(lambda x: MinMaxScaler().fit_transform(x)) 

機能が列を含むデータフレームが含まれてい...:使用 enter image description here

コードはでした:

以下は返さ最小/最大値の私の抜粋です)。

私が正しく理解していれば、MinMaxScalerの実行後、返された結果は各列の値が0 -1の範囲に正規化されることを保証します。私は正しい?

+0

http://stackoverflow.com/a/21765852/356729あなたが – dukebody

答えて

0

あなたが正しいです、MinMaxScalerはデータを0から1に正規化します.0はカラムの最小値、1は最大値です。

Apply関数は実際にフィーチャーを変換することはなく、変換された列を含むデータフレームを返します。 ですから、あなたの機能にあなたの変換に影響を与える必要があります。

features = features.apply(lambda x: MinMaxScaler().fit_transform(x)) 

これは動作するはずです...

+0

この探している正確に何でありますコードが動作していない、私のコードスニペットを参照する場合、これは私が使用したコードとまったく同じです。 –

関連する問題