python机器学习:深入浅出 Python 机器学习:数据生成

本文讲述了如何使用scikit-learn的make_blobs,make_regression,和train_test_split方法生成和划分数据集,以及关键参数的解释和注意事项。
摘要由CSDN通过智能技术生成

基于头歌的数据生成。

第一关:生成分类数据集

机器学习中的分类问题的基本结构:分类问题和回归问题

分类问题:一个事物有n个特征,我们该通过什么样的方法将其划分到m类中。其中这n个特征和这m个类别都是由人来定义的,而这个划分方法的大框架也是由人来指定,但是方法的细节却是由机器通过预先设计好的算法在给定的训练数据集上学习得来的。

所以所谓的机器学习,其实学习的只是划分方法的细节而已。而事物的特征,类别,以及大方法的框架却都是由来划分的。所以说在机器学习中,最重要的问题就是如何划分事物的特征,确定事物的类别 (学习框架的选择相比之下会容易许多)。这也是计算机科学的根本问题,即如何将现实世界的事物抽象为计算机可表示的模型。大家在学习机器学习或算法之类的课程时往往会沉迷于其中的算法细节,如书本在讲述机器学习算法时都是将特征与类别确定好了的,只需要去跑算法就好了,但往往会忘记最重要的事情。

不过万幸,scikit-learn 中有着内置的,非常完善的数据生成和加载机制。我们这一节先来讲述最简单的数据生成方法: make_blobs

make_blobs方法的原型如下:

 
  1. sklearn.datasets.make_blobs(
  2. n_samples,
  3. n_features,
  4. centers,
  5. cluster_std,
  6. center_box,
  7. shuffle,
  8. random_state
  9. )

其中各个参数的含义如下:

  • n_samples:一个整数或一个整数数组,当输入为一个整数时,表示将要生成的数据总量。当输入为一个整数数组时,表示需要为每一类生成的数据量。默认值为100
  • n_features:一个整数,表示特征的数量。默认值为2
  • centers:生成的数据中心的数量。(即生成的种类数)可以是 None或者一个整数或者是一个整数数组。当centersNonen_samples为整数时,会生成3个中心。当n_samples为整数数组时,centers必须为与n_samples一样长度的整数数组。默认值为None
  • cluster_std:一个浮点数,表示数据之间的标准差,默认值为1.0
  • center_box:一个浮点数对,表示生成的每一类的中心的下限与上限。默认值为(-10.0, 10.0)
  • shuffle:一个布尔值,表示是否要打乱生成的数据。默认为True
  • random_stateNone或者一个整数,当输入为一个整数时,表示这次生成数据过程的随机因子。换句话说,如果两次调用make_blobs生成数据时,如果random_state是同一个整数,且其他参数都相同,则生成的数据是一样的。

make_blobs的返回值由两部分组成,第1部分是一个n_samples*n_features的矩阵,表示数据的特征部分,第2部分是一个长度为n_samples的向量,表示数据的类别部分。

易错点:刚开始的时候取两位小数点,忘记用numpy的统计学函数了。

第二关:生成回归数据集

回归问题可以这样不严谨地进行描述:一个事物有n个特征,我们该通过什么样的方法预测出这个事物所对应的值(不一定是标量,可以是12维任意维的量),但是这个维度需要预先设定好。

我们可以看到回归问题与分类问题是很像的,事物都需要n

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值