python机器学习之sklearn分类、聚类、回归、模型选择、降维、数据预处理

文章目录

  • 一. Sklearn工具包介绍
  • 1.2 模型评估: 量化预测的质量 
  • 二. SciKit-Learn数据集
  • 三. 模型评估-交叉验证(cross validation)
  • 四. 模型评估——混淆矩阵(Confusion Matrix)
  • 五. 模型评价指标——Precision/Recall
    • 5.1 准确率、精确率、召回率、F值对比
    • 5.2 精确率、召回率计算公式
      • 5.4.1 precision_score函数
      • 5.4.2 recall_score函数
  • 六. 模型评价——选择合适阈值
    • 6.2 recall变化precision的变化情况
  • 七. 模型评价——ROC curves
    • 7.2 ROC-AUC(ROC曲线下面积)

一. Sklearn工具包介绍

scikit-learn,又写作sklearn,是一个开源的基于python语言的机器学习工具包。它通过NumPy, SciPy和Matplotlib等python数值计算的库实现高效的算法应用,并且涵盖了几乎所有主流机器学习算法。

官网: scikit-learn: machine learning in Python — scikit-learn 1.1.1 documentation

 

搜索相关语法:

https://scikit-learn.org/stable/search.html?q=fetch_openml

安装sklearn

# 不是 pip install -U sklearn
pip install -U scikit-learn

1.1 常用模块

从官网的首页我们可以看到常用的模块如下图所示:

Sklearn中常用模块:分类(Classification)、回归(Regression)、聚类(Clustering)、降维(Dimensionality reduction)、模型选择(Model selection)、数据预处理(Preprocessing)。

  1. 分 类 \color{red}{分类} 分 类 :识别某个对象属于哪个类别,常用的算法有:SVM(支持向量机)、nearest neighbors(最近邻)、random forest(随机森林),常见的应用有:垃圾邮件识别、图像识别。

  2. 回 归 \color{red}{回归} 回 归 :预测与对象相关联的连续值属性,常见的算法有:SVR(支持向量机)、 ridge regression(岭回归)、Lasso,常见的应用有:药物反应,预测股价。

  3. 聚 类 \color{red}{聚类} 聚 类 :将相似对象自动分组,常用的算法有:k-Means、 spectral clustering、mean-shift,常见的应用有:客户细分,分组实验结果。

  4. 降 维 \color{red}{降维} 降 维 :减少要考虑的随机变量的数量,常见的算法有:PCA(主成分分析)、feature selection(特征选择)、non-negative matrix factorization(非负矩阵分解),常见的应用有:可视化,提高效率。

  5. 模 型 选 择 \color{red}{模型选择} 模 型 选 择 :比较,验证,选择参数和模型,常用的模块有:grid search(网格搜索)、cross validation(交叉验证)、 metrics(度量)。它的目标是通过参数调整提高精度。

  6. 预 处 理 \color{red}{预处理} 预 处 理 :特征提取和归一化,常用的模块有:preprocessing,feature extraction,常见的应用有:把输入数据(如文本)转换为机器学习算法可用的数据。

1.2 模型评估: 量化预测的质量

有 3 种不同的 API 用于评估模型预测的质量:

  • Estimator score method(估计器得分的方法) : Estimators(估计器)有一个 score(得分) 方法,为其解决的问题提供了默认的 evaluation criterion (评估标准)。 在这个页面上没有相关讨论,但是在每个 estimator (估计器)的文档中会有相关的讨论。
  • Scoring parameter(评分参数) : Model-evaluation tools (模型评估工具)使用 cross-validation (如 model_selection.cross_val_score 和 model_selection.GridSearchCV ) 依靠 internal scoring strategy (内部 scoring(得分) 策略)。这在 scoring 参数: 定义模型评估规则 部分讨论。
  • Metric functions(指标函数) : metrics 模块实现了针对特定目的评估预测误差的函数。这些指标在以下部分部分详细介绍 分类指标 , 多标签排名指标 , 回归指标 和 聚类指标 。

二. SciKit-Learn数据集

sklearn.datasets 模块 包含加载数据集的实用程序,包括加载和获取流行引用数据集的方法。它还具有一些人工数据生成器。

2.1 加载数据集

数据科学的第一步通常是加载数据,首先需要学会如何使用SciKit-Learn来加载数据集。

数据集的来源通常是自己准备或第三方处获取。非研究人员,通常是从第三方获取数据。可以下载获取数据集的网站:

SciKit-Learn库中,也有自带一些数据集可以尝试加载。

datasets 模块中也包含了获取其他流行数据集的方法,例如 datasets.fetch_openml 可以从 openml 存储库获取数据集。

代码:

def get_data():
    # 通过名称或数据集ID从openml获取数据集
    from sklearn.datasets import fetch_openml


    # Mnist 数据是图像数据:(28,28,1)的灰度图
    mnist = fetch_openml('mnist_784')
    # print(mnist)

    X, y = mnist["data"], mnist["target"]
    print (X.shape)    # (70000, 784)
    print (y.shape)    # (70000,)

get_data()

测试记录:

(70000, 784)

(70000,)

2.2 数据集切分

将数据集切分为训练集、测试集。

一般使用:

from sklearn.model_selection import train_test_split
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_
  • 2
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值