使用python StandardScaler进行功能缩放会产生负值
我是机器学习的新手。我正在尝试使用python StandardScaler类对输入训练和测试数据使用特性缩放。但是,当我看到缩放值时,其中一些值是负值,即使输入值没有负值。这是正常的还是我在代码中遗漏了什么。下面给出了用于特征缩放的相关代码使用python StandardScaler进行功能缩放会产生负值,python,machine-learning,scikit-learn,Python,Machine Learning,Scikit Learn,我是机器学习的新手。我正在尝试使用python StandardScaler类对输入训练和测试数据使用特性缩放。但是,当我看到缩放值时,其中一些值是负值,即使输入值没有负值。这是正常的还是我在代码中遗漏了什么。下面给出了用于特征缩放的相关代码 from sklearn.preprocessing import StandardScaler sc = StandardScaler() train = sc.fit_transform(train) //train contains training
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
train = sc.fit_transform(train) //train contains training feature matrix
test = sc.transform(test) //test contains test feature matrix
从:
通过删除平均值并缩放到单位方差来标准化特征
这意味着,给定一个输入x
,将其转换为(x-mean)/std
(所有尺寸和操作都有明确定义)
因此,即使您的输入值都为正值,删除平均值也会使其中一些值为负值:
>>> x = np.array([3,5,7])
>>> np.mean(x)
5.0
>>> x - np.mean(x)
array([-2., 0., 2.])
更多详情:
- (第4.3节)