【Python机器学习】预处理对监督学习的作用

还是用cancer数据集,观察使用MinMaxScaler对学习SVC的作用。

首先,在原始数据上拟合SVC:


cancer=load_breast_cancer()
X_train,X_test,y_train,y_test=train_test_split(
    cancer.data,cancer.target,random_state=0
)
svm=SVC(C=100)
svm.fit(X_train,y_train)
print('test set accuracy:{:.2f}'.format(svm.score(X_test,y_test)))

下面先用MinMaxScaler对数据进行缩放,然后再拟合SVC:


scaler=MinMaxScaler()
scaler.fit(X_train)
X_train_scaler=scaler.transform(X_train)
X_test_scaler=scaler.transform(X_test)

svm.fit(X_train_scaler,y_train)

print('Scaler test set accuracy:{:.2f}'.format(svm.score(X_test_scaler,y_test)))

可以发现,数据缩放的作用非常显著。虽然数据缩放不涉及任何复杂的数据,但良好的做法仍然是使用scikit-learn提供的缩放机制,而不是自己重新实现它们,因为即使在这些简单的计算中也容易犯错。

还可以通过改变使用的类将一种预处理算法替换成另一种,因为所有的预处理类都具有相同的接口,都包含fit和transform方法:


scaler=StandardScaler()
scaler.fit(X_train)
X_train_scaler=scaler.transform(X_train)
X_test_scaler=scaler.transform(X_test)

svm.fit(X_train_scaler,y_train)

print('SVM test accuracy:{:.2f}'.format(svm.score(X_test_scaler,y_test)))

相关推荐

  1. Python 机器学习 特征预处理

    2024-06-07 03:34:04       51 阅读
  2. 机器学习学习 - 数据预处理

    2024-06-07 03:34:04       30 阅读
  3. 机器学习-监督学习

    2024-06-07 03:34:04       25 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-07 03:34:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-07 03:34:04       101 阅读
  3. 在Django里面运行非项目文件

    2024-06-07 03:34:04       82 阅读
  4. Python语言-面向对象

    2024-06-07 03:34:04       91 阅读

热门阅读

  1. Kotlin 内联值类(@JvmInline value class)

    2024-06-07 03:34:04       32 阅读
  2. 【WP|7】深入解析WP_Query

    2024-06-07 03:34:04       36 阅读
  3. k8s笔记——kubernetes中的三种IP

    2024-06-07 03:34:04       27 阅读
  4. 以太网基础 -- LLDP使用案例

    2024-06-07 03:34:04       36 阅读
  5. 力扣2781.最长合法子字符串的长度

    2024-06-07 03:34:04       27 阅读
  6. Spring MVC中,一个HTTP请求可能会被多个Handler处理

    2024-06-07 03:34:04       31 阅读
  7. 软件测试 - 第四章课后作业

    2024-06-07 03:34:04       34 阅读
  8. SOA的相关概念

    2024-06-07 03:34:04       28 阅读
  9. Meta Llama 3 里面装饰器

    2024-06-07 03:34:04       26 阅读