考试报名
考试报名
考试内容
考试大纲
在线客服
返回顶部

备考刷题,请到

CDA认证小程序

某人正在编写一段代码,使用 StandardScaler 对特征进行标准化处理,然后输入到 SVM 模型中。 代码片段: from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from sklearn.svm import SVC # X, y 为已加载的数据集 scaler = StandardScaler() # 步骤 1:先对数据进行标准化 X_scaled = scaler.fit_transform(X) # 步骤 2:切分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split( X_scaled, y, test_size=0.2, random_state=42 ) # 步骤 3:训练模型 model = SVC() model.fit(X_train, y_train) print(f"Test Score: {model.score(X_test, y_test)}") 关于这段代码的操作流程,下列评价最准确的是:
A. 代码完全正确,先处理数据再切分是标准流程,可以保证数据的一致性。
B. 代码存在错误,应该先进行步骤2(切分),然后在训练集上 fit,再分别 transform 训练集和测试集。
C. 代码存在错误,StandardScaler 只能用于正态分布的数据,如果 X 不服从正态分布,会报错或导致模型无法收敛。
D. 代码效率较低,应该使用 Pipeline 来封装,但目前的写法不会影响最终的模型评估分数的真实性。
上一题
下一题
收藏
点赞
评论
题目解析
题目评论(0)

这是机器学习面试中最基础但也最常犯的错误之一。 • B 正确:数据泄露(Data Leakage)。标准化(Standardization)利用了数据的全局统计量(均值和方差)。如果在切分前对全量数据做 fit,那么 X_scaled 中的每一个样本都包含了所有样本(包括未来要作为测试集的样本)的信息。这会导致评估指标虚高,无法真实反映模型在未知数据上的表现。 • A/D 错误:这种泄露严重影响评估的真实性,不仅仅是代码风格问题。 • C 错误:StandardScaler 不强制要求输入数据是正态分布,它只是做数学变换。