14 sklearn 用法介绍_1

学习阶段可以用的数据集可以在以下三个地方找:
1)sklearn
2)kaggle
3)UCI

下面介绍Scikit-learn,Scikit-learn 是一个开源的机器学习库,它提供了一系列的机器学习算法,可以直接使用。

1 获取小规模数据集,可以使用:sklearn.datasets.load_*,数据包含在datasets里。

from sklearn.datasets import load_iris
iris = load_iris()

2 获取大规模数据集,可以使用:sklearn.datasets.fetch_*

from sklearn.datasets import fetch_openml

iris = fetch_openml('iris', data_home=None, download_if_missing=True)
获取大规模的数据集,需要从网络下载,函数的第一个参数为数据集名称。第二个参数为是否下载数据集(data_home),表示数据集下载的路径,如果为None,则使用默认路径~/scikit_learn_data/,第三个参数为是否下载数据集的描述。subset表示要加载的数据集的子集,如果是train,则是训练集,如果是test,则是测试集,如果为None,则加载全部数据集。

3 load和fetch的返回值介绍:

load和fetch的返回类型都是datasets.base.Bunch(字典格式)。

        - data: 数据集,是[n_samples, n_features]的二维数组

        - target: 数据集的标签,是n_samples的一维数组

        - target_names: 数据集的标签名称

        - DESCR: 数据集的描述

        - feature_names: 数据集的特征名称

        - filename: 数据集的名称

        - frame: 数据集的格式

        - md5_checksum: 数据集的md5校验码

        - module: 数据集的模块

        - url: 数据集的url

        - data_home: 数据集的路径

既然是字典,则可以直接使用字典的键来获取对应的值。
使用dict["key"] = values或者bunch.key = values

下面使用鸢尾花数据集举例子:

from sklearn.datasets import load_iris


def datasets_demo():
    """
    sklearn数据集使用

    """
    # 获取数据集
    iris = load_iris()
    print("查看鸢尾花数据集: \n", iris)
    print("查看鸢尾花数据集的描述: \n", iris["DESCR"])
    print("查看鸢尾花数据集的特征: \n", iris["feature_names"])
    print("查看鸢尾花数据集的标签: \n", iris["target_names"])
    print("查看鸢尾花数据集的特征数据: \n", iris["data"])  # 可以使用iris.data或者iris["data"]
    print("查看鸢尾花数据集的标签数据: \n", iris.target)
    print("查看鸢尾花数据集的类型: \n", type(iris))
    print("查看鸢尾花数据集的特征数据的形状: \n", iris.data.shape)
    print("查看鸢尾花数据集的标签数据的形状: \n", iris["target"].shape)


if __name__ == '__main__':
    # 代码1 sklearn的使用
    datasets_demo()

4 划分数据集

我们拿到的数据,是否全部作为一个训练集来训练一个模型呢?

        - 训练数据,用于训练,构建模型。

        - 测试数据,在模型检验时使用,用于评估模型的效果。

        - 训练数据和测试数据划分的比例,一般是8:2或者7:3。

        - 数据集划分的api:

                 - sklearn.model_selection.train_test_split(X, y, test_size=None, train_size=None, random_state=None, shuffle=True, stratify=None)

                         - 其中X是数据集,

                         - y是标签,

                         - test_size是测试数据占比,

                         - train_size是训练数据占比,

                         - random_state是随机数种子,因为是伪随机,所以需要设置随机数种子,不同的种子会造成不同的随机采样结果,相同的种子采样结果相同。

                         - shuffle是是否打乱数据,

                         - stratify是是否根据标签进行分组。

                         - 返回值 训练集特征值x_train,测试集特征值x_test,训练集标签y_train,测试集标签y_test。

from sklearn.datasets import load_iris


def datasets_demo():
    """
    sklearn数据集使用

    """
    # 获取数据集
    iris = load_iris()
    print("查看鸢尾花数据集: \n", iris)
    print("查看鸢尾花数据集的描述: \n", iris["DESCR"])
    print("查看鸢尾花数据集的特征: \n", iris["feature_names"])
    print("查看鸢尾花数据集的标签: \n", iris["target_names"])
    print("查看鸢尾花数据集的特征数据: \n", iris["data"])  # 可以使用iris.data或者iris["data"]
    print("查看鸢尾花数据集的标签数据: \n", iris.target)
    print("查看鸢尾花数据集的类型: \n", type(iris))
    print("查看鸢尾花数据集的特征数据的形状: \n", iris.data.shape)
    print("查看鸢尾花数据集的标签数据的形状: \n", iris["target"].shape)

    # 划分数据集
    from sklearn.model_selection import train_test_split
    X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2, random_state=42)
    print("查看训练集的特征数据: \n", X_train)
    print("查看训练集的标签数据: \n", y_train)
    print("查看测试集的特征数据: \n", X_test)
    print("查看测试集的标签数据: \n", y_test)


if __name__ == '__main__':
    # 代码1 sklearn的使用
    datasets_demo()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值