作者:北欧森林
链接:https://www.jianshu.com/p/ae9bac277d8c
来源:简书,已获授权转载

 
本笔记来源于B站Up主: 有Li 的影像组学系列教学视频
本节(39)主要介绍: 将训练集的标准化应用在测试集
 

视频中李博士详细介绍了先fit再transform和fit_transform的区别(就是没啥区别)

import pandas as pd
import numpy as np
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
filePath = 'C:/Radiomics/RadiomicsWorld/data/featureTable/aa.xlsx'
data = pd.read_excel(filePath)
data_train, data_test = train_test_split(data,test_size = 0.3)
print(data_train.shape, data_test.shape)

(148, 30) (64, 30)

 

scaler_fit = StandardScaler()
data_train_fit = scaler_fit.fit(data_train)
print(data_train_fit)

StandardScaler()

 

scaler_trans = StandardScaler()
scaler_trans.fit(data_train)
data_train_trans = scaler_trans.transform(data_train)
print(data_train_trans)

 

scaler_fit_trans = StandardScaler()
data_train_fit_trans = scaler_fit_trans.fit_transform(data_train)
print(data_train_fit_trans)

 

data_test_f_trans = scaler_fit.transform(data_test)
print(data_test_f_trans)

 

data_test_f_t_trans = scaler_fit_trans.transform(data_test)
print(data_test_f_t_trans) 

 

    1 年 后

    老师您好,之前在第19期里面通过pyradiomics提取影像特征时候通过yaml文件对数据进行标准化跟归一化,那在划分训练集跟测试集进行模型拟合的时候还需要用这个教程对数据进行标准化吗?

    • LWQ 回复了此帖

      LWQ 还有另外一个问题是,data数据里面按比例随机划分为测试集跟训练集,代码里面是将测试集跟训练集分开做标准化,那两组数据之间标准化的水平应该是不一致,在进行模型拟合的时候会不会导致结果不准确呢?而且如果是进行P次K折交叉验证的时候,每次做验证的数据也是随机变化的,那么这个数据标准化应该在什么时候进行?恳请老师指教!

        LWQ @李任远 李哥,我也挺好奇这个问题,如果分开做标准化,根据标准化的数学公式,按我的理不同的数据做标准化计算是不是可能会导致参数不太一致,不知道会不会影响最终结果啊?

          强璐 不是分开做, 是在训练集上计算得到均值、标准差,带入测试集

          说点什么吧...