• 机器学习进度(二)—— 数据集


    2.1 数据集

    • 目标
      • 知道数据集的分为训练集和测试集
      • 会使用sklearn的数据集
    • 应用

    2.1.1 可用数据集

    Kaggle网址:https://www.kaggle.com/datasets

    UCI数据集网址: http://archive.ics.uci.edu/ml/

    scikit-learn网址:http://scikit-learn.org/stable/datasets/index.html#datasets

    1 Scikit-learn工具介绍

    • Python语言的机器学习工具
    • Scikit-learn包括许多知名的机器学习算法的实现
    • Scikit-learn文档完善,容易上手,丰富的API

    2 安装

    pip install Scikit-learn

    安装好之后可以通过以下命令查看是否安装成功

    import sklearn
    • 注:安装scikit-learn需要Numpy, Scipy等库

    3 Scikit-learn包含的内容

    • 分类、聚类、回归
    • 特征工程
    • 模型选择、调优

    2.1.2 sklearn数据集

    1 scikit-learn数据集API介绍

    • sklearn.datasets
      • 加载获取流行数据集
      • datasets.load_*()
        • 获取小规模数据集,数据包含在datasets里
      • datasets.fetch_*(data_home=None)
        • 获取大规模数据集,需要从网络上下载,函数的第一个参数是data_home,表示数据集下载的目录,默认是 ~/scikit_learn_data/

    2 sklearn小数据集

    • sklearn.datasets.load_iris()

      加载并返回鸢尾花数据集

    • sklearn.datasets.load_boston()

      加载并返回波士顿房价数据集

    3 sklearn大数据集

    • sklearn.datasets.fetch_20newsgroups(data_home=None,subset=‘train’)
      • subset:'train'或者'test','all',可选,选择要加载的数据集。
      • 训练集的“训练”,测试集的“测试”,两者的“全部”

    4 sklearn数据集的使用

    • 以鸢尾花数据集为例:

    sklearn数据集返回值介绍

    • load和fetch返回的数据类型datasets.base.Bunch(字典格式)
      • data:特征数据数组,是 [n_samples * n_features] 的二维 numpy.ndarray 数组
      • target:标签数组,是 n_samples 的一维 numpy.ndarray 数组
      • DESCR:数据描述
      • feature_names:特征名,新闻数据,手写数字、回归数据集没有
      • target_names:标签名
    from sklearn.datasets import load_iris
    # 获取鸢尾花数据集
    iris = load_iris()
    print("鸢尾花数据集的返回值:
    ", iris)
    # 返回值是一个继承自字典的Bench
    print("鸢尾花的特征值:
    ", iris["data"])
    print("鸢尾花的目标值:
    ", iris.target)
    print("鸢尾花特征的名字:
    ", iris.feature_names)
    print("鸢尾花目标值的名字:
    ", iris.target_names)
    print("鸢尾花的描述:
    ", iris.DESCR)

    2.1.3 数据集的划分

    机器学习一般的数据集会划分为两个部分:

    • 训练数据:用于训练,构建模型
    • 测试数据:在模型检验时使用,用于评估模型是否有效

    划分比例:

    • 训练集:70% 80% 75%
    • 测试集:30% 20% 30%

    数据集划分api

    • sklearn.model_selection.train_test_split(arrays, *options)
      • x 数据集的特征值
      • y 数据集的标签值
      • test_size 测试集的大小,一般为float
      • random_state 随机数种子,不同的种子会造成不同的随机采样结果。相同的种子采样结果相同。
      • return 测试集特征训练集特征值值,训练标签,测试标签(默认随机取)
    from sklearn.datasets import load_iris
    from sklearn.model_selection import train_test_split
    
    
    def datasets_demo():
        """
        对鸢尾花数据集的演示
        :return: None
        """
        # 1、获取鸢尾花数据集
        iris = load_iris()
        print("鸢尾花数据集的返回值:
    ", iris)
        # 返回值是一个继承自字典的Bench
        print("鸢尾花的特征值:
    ", iris["data"])
        print("鸢尾花的目标值:
    ", iris.target)
        print("鸢尾花特征的名字:
    ", iris.feature_names)
        print("鸢尾花目标值的名字:
    ", iris.target_names)
        print("鸢尾花的描述:
    ", iris.DESCR)
    
        # 2、对鸢尾花数据集进行分割
        # 训练集的特征值x_train 测试集的特征值x_test 训练集的目标值y_train 测试集的目标值y_test
        x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, random_state=22)
        print("x_train:
    ", x_train.shape)
        # 随机数种子
        x_train1, x_test1, y_train1, y_test1 = train_test_split(iris.data, iris.target, random_state=6)
        x_train2, x_test2, y_train2, y_test2 = train_test_split(iris.data, iris.target, random_state=6)
        print("如果随机数种子不一致:
    ", x_train == x_train1)
        print("如果随机数种子一致:
    ", x_train1 == x_train2)
    
        return None
  • 相关阅读:
    第十二节:WebApi自动生成在线Api文档的两种方式
    第十一节:WebApi的版本管理的几种方式
    自学Python1.3-centos内python3并与python2共存
    自学Python1.2-环境的搭建:Pycharm及python安装详细教程
    自学Python1.1-简介
    Java通过ftp上传文件
    Java使用Spring初识
    Java中类似C#中Task.wait()的类CountDownLatch
    Java创建多线程和线程安全集合Vector
    未能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项。试图加载格式不正确的程序。
  • 原文地址:https://www.cnblogs.com/wendi/p/14283252.html
Copyright © 2020-2023  润新知