2026/4/15 10:44:26
网站建设
项目流程
显示网站运行时间代码,天津百度推广中心,维迪wordpress,下载建设app1. 基本概念
这三个方法是 scikit-learn 转换器#xff08;Transformer#xff09;的核心方法#xff1a;
fit() - 学习数据的参数#xff08;如均值、标准差等#xff09;
transform() - 应用学到的参数转换数据
fit_transform() - 一次性完成学习和转换
2. 详细解释
fit…1. 基本概念这三个方法是 scikit-learn 转换器Transformer的核心方法fit() - 学习数据的参数如均值、标准差等transform() - 应用学到的参数转换数据fit_transform() - 一次性完成学习和转换2. 详细解释fit() - 训练/学习阶段# 只学习参数不转换数据scaler.fit(X_train)计算并存储数据的统计信息如均值、方差等不返回转换后的数据只返回转换器对象本身通常用于训练集transform() - 转换阶段# 使用已学习的参数转换数据X_train_scaledscaler.transform(X_train)X_test_scaledscaler.transform(X_test)# 对测试集用相同的参数应用之前 fit() 学到的参数返回转换后的数据可用于训练集和测试集fit_transform() - 训练转换# 一次性完成学习和转换X_train_scaledscaler.fit_transform(X_train)相当于先调用 fit() 再调用 transform()只返回转换后的数据不返回转换器仅用于训练集3. 实际示例示例1标准化 (StandardScaler)from sklearn.preprocessingimportStandardScalerimportnumpy as np# 创建数据X_trainnp.array([[1,2],[3,4],[5,6]])X_testnp.array([[7,8],[9,10]])# 创建标准化器scalerStandardScaler()# 正确用法scaler.fit(X_train)# 只在训练集上学习参数X_train_scaledscaler.transform(X_train)X_test_scaledscaler.transform(X_test)# 测试集用相同参数# 或者用快捷方式X_train_scaledscaler.fit_transform(X_train)# 训练集X_test_scaledscaler.transform(X_test)# 测试集print(训练集标准化后:)print(X_train_scaled)print(\n测试集标准化后:)print(X_test_scaled)示例2PCA降维from sklearn.decompositionimportPCA# 创建PCA对象保留2个主成分pcaPCA(n_components2)# 在训练集上学习主成分X_train_pcapca.fit_transform(X_train)# 相当于 fit() transform()# 在测试集上应用相同的主成分X_test_pcapca.transform(X_test)# 只用 transform()print(f解释方差比例: {pca.explained_variance_ratio_})4. 重要注意事项绝对不能这样用# ❌ 错误测试集上调用 fit_transform()X_test_scaledscaler.fit_transform(X_test)# 错误# ❌ 错误训练集只transform不fitX_train_scaledscaler.transform(X_train)# 报错没有先fit为什么测试集只用 transform()保证训练集和测试集使用相同的转换规则防止数据泄露Data Leakage确保模型评估的准确性5. 流程总结# 训练阶段训练集X_train_transformedtransformer.fit_transform(X_train)# 测试/预测阶段测试集/新数据X_test_transformedtransformer.transform(X_test)# 如果有新数据需要预测new_data_transformedtransformer.transform(new_data)记忆技巧fit 学习规则只在训练集做一次transform 应用规则训练集、测试集都要做fit_transform fit transform训练集的快捷方式记住这个原则训练集可以了解数据测试集只能应用从训练集学到的规则。