[英]Getting Error on StandardScalar Fit_Transform
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都是單一要素,並且只有一列。 如您所見,X是一個矩陣 。 y是向量 X = dataset.iloc [:, 1:2] .values y = dataset.iloc [:, 2] .values
現在,當我運行y = sc_y.fit_transform(y)
我得到一個錯誤,它是一維數組。 如果我更改y = dataset.iloc[:, 2:3].values
,使其成為2D數組。 但是我希望它由於其因變量而保持為一維數組,並希望保持這種狀態。 我也解決了較早的不同示例,在這些示例中,我不得不重新縮放相似的數據,但是它沒有給我這種錯誤。 不知道為什么現在給我。 此外,我在編碼時正在觀看視頻,並且視頻中的所有內容都相同,但他沒有出現任何錯誤。
StandardScaler用於處理功能,而不是標簽或目標數據。 因此僅適用於二維數據。 請參閱此處獲取文檔:
您可以做的是使用比例功能 。 StandardScaler只是該函數的包裝。
from sklearn.preprocessing import scale
y = scale(y)
或者,如果您想使用StandarScaler,則需要將y
重塑為二維數組,如下所示:
import numpy as np
y = np.array(y).reshape(-1,1)
y = sc_y.fit_transform(y)
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()
您可以使用flatten
從2D數組獲取1D數組:
y.flatten()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.