勇闯机器学习(第二关-数据集使用)

打印 上一主题 下一主题

主题 529|帖子 529|积分 1587

以下内容,皆为原创,重在无私分享高质量知识,制作实属不易,请点点关注。
好戏开场了~~~(这关涉及到了加载数据集的代码,下一关,教你们安装机器学习库)

一.数据集



  • 这一关的目标

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

   1.可用数据集 

        scikit-learn网址:scikit-learn: machine learning in Python — scikit-learn 1.5.1 documentation
        UCI网址:UCI Machine Learning Repository
        Kaggle网址:Bohrium


  • scikit-learn        数据量小,方便学习

    • UCI            收录360个数据集,覆盖科技、生存、经济等领域,数据量几十万。
    • Kaggle       大数据竞赛平台,真实数据,数据量巨大         

 如以下图所示,这个就是UCI机器学习的网站和scikit-learn机器学习的网站。


二.使用sclearn数据集

        1.scikit-learn数据集API介绍

  1. # 用sklearn中的datasets方法(sklearn.datasets)
  2.     1.加载获取流行数据集
  3.     2.datasets.load_*()
  4.             获取小规模数据集,数据包含在datasets中
  5.     3.datasets。fetch_*(data_home=None)
  6.             获取大规模数据集,需要从网上下载,
  7.             函数第一个参数是data_home,表示数据集下载的目录。你可以自己定义位置。C盘D盘都行
复制代码
         2.sklearn小数据集

          加载并返回鸢尾花数据集。当然还有一个常见的波士顿房价数据集,但是
  1. `load_boston` has been removed from scikit-learn since version 1.2.这个是我在加载波士顿房价数据集,出现的报错,所以要注意好自己的版本。
复制代码
  1. import sklearn
  2. from sklearn.datasets import load_iris
  3. # Load the iris dataset
  4. print(sklearn.datasets.load_iris())
复制代码
      这个就是我在jupyter notebook里,打印出来鸢尾花的数据集。

鸢尾花数据集  名称数目类别 3
特性4样本数目150每个类别数目5 3.sklearn大数据集  

        加载大数据集,我们就要用fetch_*,用于加载大数据集。谁人*指的是加载的数据集的名称。
       3.1 sklearn数据集返回值介绍

                load和fetch返回的数据类型datasets.base.Bunch(字典格式)


  • data:特性数据数组
  • target:目标数组(标签数组)
  • DESCR:数据形貌
  • feature_names:特性名
  • target_names:目标名(标署名)                
  1. from sklearn.datasets import load_iris
  2. # 将加载的数据集传给iris变量
  3. iris = load_iris()
  4. print("鸢尾花的数据集:\n", iris)
  5. print("查看鸢尾花的特征值:\n", iris["data"])
  6. print("查看鸢尾花的目标值:\n", iris.target)
  7. print("查看鸢尾花特征的名字:\n", iris.feature_names)
  8. print("查看鸢尾花目标值的名字:\n", iris.target_names)
  9. print("查看数据集描述:\n", iris["DESCR"])
复制代码

                字典的元素是键值对的情势,以是获取值的方式有两种:
  1. dict['key'] = value
  2. bunch.key = value
复制代码

三.训练模型

        思索:要不要用全部数据来训练一个模型??
        内心独白:肯定不可啊,你要一部分来进行模型评估啊,看你的模型好不好。
        以是数据集,分为训练集(用于训练,构建模型)测试集(在模型核验时,用于评估模型是否有效)
        划分的标准(上下组合):
                        1.训练数据:70%        80%        75%
                        2.测试数据:30%        20%        30%
        我们渴望训练的模型好一点,以是让训练集多一点。
  1. # 导入加载鸢尾花数据集的方法
  2. from sklearn.datasets import load_iris
  3. # 导入划分数据集的方法
  4. from sklearn.model_selection import train_test_split
  5. # 加载鸢尾花数据
  6. iris = load_iris()
  7. # 有了加载数据,才能划分数据集
  8. # 这四个分别对应后面方法的四个返回值(训练集的特征值,测试集的特征值,训练集的目标值, 测试集的目标值)
  9. x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2, random_state=22)
  10. print("训练集的特征值", x_train, x_train.shape)
复制代码

四.懵笔时刻

        在划分数据集时,那四个变量为什么这么命名?
                不错,问得好。举个例子,在数学中,我们都是有X值去求Y值,那么Y就是我们的目标值。以是X就是数据集的特性值,Y就是数据集的目标值。后面方法里的参数test_size是测试集的大小,一般为float类型(20%,0.2,以此类推)。random_state是随机数种子,差异的种子造成差异的随机采样效果,类似的种子采样效果类似。
        为什么要用四个变量,而不是三个或者五个变量?
        

        因为谁人方法就是返回的四个值啊,我能有什么办法!!what can I say?!!
        return 训练集的特性值,测试集的特性值。训练集的目标值,测试集的目标值。
五.谢谢大家的观看,后续持续分享高质量内容~~~~ 


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

缠丝猫

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表