knn标准化和归一化 python代码
时间: 2024-03-17 20:38:26 浏览: 106
KNN(K-Nearest Neighbors)是一种常用的机器学习算法,用于分类和回归问题。在KNN算法中,标准化和归一化是对特征进行预处理的常见方法,以确保不同特征之间具有相似的尺度。
标准化(Standardization)是指将特征数据按比例缩放,使其均值为0,标准差为1。标准化可以通过以下公式实现:
```
X_std = (X - X.mean()) / X.std()
```
其中,X是原始特征数据,X_std是标准化后的特征数据。
归一化(Normalization)是指将特征数据按比例缩放到一个固定的范围,通常是[0, 1]或[-1, 1]。归一化可以通过以下公式实现:
```
X_norm = (X - X.min()) / (X.max() - X.min())
```
其中,X是原始特征数据,X_norm是归一化后的特征数据。
下面是使用Python代码实现KNN标准化和归一化的示例:
```python
from sklearn.preprocessing import StandardScaler, MinMaxScaler
from sklearn.neighbors import KNeighborsClassifier
# 原始特征数据
X = [[1, 2], [3, 4], [5, 6]]
# 标准化
scaler = StandardScaler()
X_std = scaler.fit_transform(X)
# 归一化
normalizer = MinMaxScaler()
X_norm = normalizer.fit_transform(X)
# 创建KNN分类器并训练
knn_std = KNeighborsClassifier()
knn_std.fit(X_std, y)
knn_norm = KNeighborsClassifier()
knn_norm.fit(X_norm, y)
```
阅读全文