0
import numpy as np 
import matplotlib.pyplot as plt 
import pandas as pd 

dataset = pd.read_csv('Position_Salaries.csv') 
X = dataset.iloc[:, 1:2].values 
y = dataset.iloc[:, 2].values 

from sklearn.preprocessing import StandardScaler 
sc_X = StandardScaler() 
sc_y = StandardScaler() 
X = sc_X.fit_transform(X) 
y = sc_y.fit_transform(y) 

ここに問題があります。 Xとyの両方が単一のフィーチャであり、1つの列を持ちます。ご覧のとおり、Xはの行列です。そしてyは、[:, 1:2] ベクター X = dataset.ilocある Y = dataset.ilocを.values [:, 2]今はy = sc_y.fit_transform(y)を実行すると、私はそれというエラーを取得StandardScalar Fit_Transformでエラーが発生する

を.values 1D配列です。そして、私がy = dataset.iloc[:, 2:3].valuesを2D配列に変更した場合。 しかし、それはその従属変数から1D配列としてとどまり、そのままにしておきたいと思います。また、同様のデータを再スケーリングしなければならなかった以前のさまざまな例を解決しましたが、このようなエラーは私にはありませんでした。それがなぜ今私に与えているのか分かりません。さらに、私はコーディング中にビデオを見ていると、ビデオではすべて同じですが、彼はエラーを取得していません。

答えて

-1

あなたは2D配列から1次元配列を取得するためにflattenを使用することができます。StandardScalerは機能ではなく、ラベルまたはターゲット・データ上で動作するように意図されて

y.flatten() 
1

。 したがって、2-dデータでのみ動作します。ドキュメントについてはこちらをご覧ください:

で何ができる

scale functionを使用しています。 StandardScalerはこの関数の単なるラッパーです。

from sklearn.preprocessing import scale 
y = scale(y) 

それともStandarScalerを使用したい場合は、次のような2次元配列にごyを再構築する必要があります。コードのこの作品は、作品理由を説明

import numpy as np 
y = np.array(y).reshape(-1,1) 
y = sc_y.fit_transform(y) 
0
from sklearn.preprocessing import StandardScaler 
sc_X = StandardScaler() 
X = sc_X.fit_transform(X) 

sc_y = StandardScaler() 
y = np.array(y).reshape(-1,1) 
y = sc_y.fit_transform(y) 
y = y.flatten() 
+0

心? – DarkCygnus

関連する問題