我有一个包含所有数值数据的数据集(乳腺癌检测),并将数据集划分为 X(包含所有特征)和 y(输出类)。将数据分成训练集和测试集后,我面临着一个关于应用特征缩放的问题。在应用特征缩放时我得到一个值错误:无法将字符串转换为浮点数:'?'。虽然我已经替换了'?' 以前是-9999。
X=df.iloc[:,:-1].values
y=df.iloc[:,-1].values
#现在将数据分为训练数据和测试数据。
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.25,random_state=0)
#替换“?” 与-9999。
df=df.replace('?',-9999)
from sklearn.preprocessing import LabelEncoder
#在y上应用标签编码。
le = LabelEncoder()
y = le.fit_transform(y)
from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import OneHotEncoder
ct = ColumnTransformer(transformers=[('encoder', OneHotEncoder(), [0])], remainder='passthrough')
X = np.array(ct.fit_transform(X))
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_train[:, 1:] = sc.fit_transform(X_train[:, 1:])
X_test[:, 1:] = sc.transform(X_test[:, 1:])
#在此之后我得到值错误。那么我怎样才能确保'?没有保留在数据中,还是有任何分类编码要做?