《Python机器学习手册——从数据预处理到深度学习》

这本书类似于工具书或者字典,对于python具体代码的调用和使用场景写的很清楚,感觉虽然是工具书,但是对照着做一遍应该可以对机器学习中python常用的这些库有更深入的理解,在应用中也能更为熟练。

以下是根据书上的代码进行实操,注释基本写明了每句代码的作用(写在本句代码之前)和print的输出结果(写在print之后)。不一定严格按照书上内容进行,根据代码运行时具体情况稍作顺序调整,也加入了一些自己的理解。

如果复制到自己的环境下跑一遍输出,相信理解会更深刻更清楚。

博客中每个代码块代表一次完整的运行结果,可以直接以此为单位复制并运行。


02-加载数据

包括:

  1. 加载样本数据集
  2. 创建仿真数据集
  3. 加载CSV文件
  4. 加载Excel文件
  5. 加载json文件
  6. 查询SQL数据库

其中1、2部分内容主要是sklearn库中datasets的基本应用,在本文中将进行详细叙述。

3-6部分主要是pandas库的读入,将在02-加载数据:加载文件中详细叙述。

02-1 加载样本数据集

  1. # 加载现有数据集
  2. from sklearn import datasets
  3. # 加载手写数字数据集--图像分类
  4. digits = datasets.load_digits()
  5. print(digits.keys())
  6. # dict_keys(['data', 'target', 'frame', 'feature_names', 'target_names', 'images', 'DESCR'])
  7. # 加载波士顿房价数据集--回归
  8. boston = datasets.load_boston()
  9. print(boston.keys())
  10. # dict_keys(['data', 'target', 'feature_names', 'DESCR', 'filename'])
  11. # 加载鸢尾花数据集--分类
  12. iris = datasets.load_iris()
  13. print(iris.keys())
  14. # dict_keys(['data', 'target', 'frame', 'target_names', 'DESCR', 'feature_names', 'filename'])

02-2 创建仿真数据集

  1. # 创建仿真数据集
  2. from sklearn.datasets import make_regression, make_classification, make_blobs, make_multilabel_classification
  3. # 生成特征矩阵、目标向量以及模型系数--回归
  4. features, target, coefficients = make_regression(n_samples = 100,
  5. n_features = 3,
  6. n_informative = 3,
  7. n_targets = 1,
  8. noise = 0.0,
  9. coef = True,
  10. random_state = 1)
  11. # 生成特征矩阵、目标向量以及模型系数--分类
  12. features, target = make_classification(n_samples = 100,
  13. n_features = 3,
  14. n_informative = 3,
  15. n_redundant = 0,
  16. n_classes = 2,
  17. weights = [.25, .75],
  18. random_state = 1)
  19. # n_samples=100, # 样本个数
  20. # n_features=20, # 特征个数
  21. # n_informative=2, # 有效特征个数,有价值的重要特征
  22. # n_redundant=2, # 冗余特征个数(有效特征的随机组合),将重要特征进行线性组合的特征
  23. # n_repeated=0, # 重复特征个数(有效特征和冗余特征的随机组合)
  24. # n_classes=2, # 样本类别
  25. # n_clusters_per_class=2, # 蔟的个数,簇的个数,某一个类别由几个簇构成
  26. # weights=None, # 每个类的权重 用于分配样本点
  27. # flip_y=0.01, # 随机交换样本的一段 y噪声值的比重
  28. # class_sep=1.0, # 类与类之间区分清楚的程度
  29. # hypercube=True, # 如果为True,则将簇放置在超立方体的顶点上;如果为False,则将簇放置在随机多面体的顶点上。
  30. # shift=0.0, # 将各个特征的值移动,即加上或减去某个值
  31. # scale=1.0, # 将各个特征的值乘上某个数,放大或缩小
  32. # shuffle=True, # 是否洗牌样本
  33. # random_state=None, # 随机种子
  34. # 类别数量统计
  35. from collections import Counter
  36. print(Counter(target)) # Counter({1: 75, 0: 25})
  37. # 特征维度
  38. print(features.shape) # (100, 3)
  39. # 生成特征矩阵、目标向量以及模型系数--多标签分类,一个features对应多个target
  40. features, target = make_multilabel_classification(n_samples = 100,
  41. n_features = 10,
  42. n_classes = 5,
  43. n_labels = 2,
  44. length =50,
  45. allow_unlabeled = True,
  46. sparse = False,
  47. return_indicator='dense',
  48. return_distributions=False,
  49. random_state = None)
  50. # 特征维度
  51. print(features.shape) # (100, 10)
  52. # 多标签示例
  53. print(target[:4])
  54. # [[1 1 0 1 0]
  55. # [0 1 0 0 0]
  56. # [0 1 0 0 1]
  57. # [0 1 0 1 1]]
  58. # 生成特征矩阵、目标向量以及模型系数--聚类
  59. features, target = make_blobs(n_samples = 100,
  60. n_features = 2,
  61. centers = 3,
  62. cluster_std = 0.5,
  63. shuffle = True,
  64. random_state = 1)
  65. # n_samples=100, # 样本数量,如果是数组,则序列的每个元素表示每个聚簇的样本数量。
  66. # n_features=2, # 特征数量
  67. # centers=None, # 中心,一种是int决定生成的中心数量,一种是array决定固定的中心位置(长度等于n_samples数组长度)
  68. # cluster_std=1.0, # 聚簇的标准差
  69. # center_box(-10.0, 10.0), # 聚簇中心的边界框
  70. # shuffle=True, # 是否洗牌样本
  71. # random_state=None #随机种子
  72. # 聚类数据集可视化
  73. import matplotlib.pyplot as plt
  74. plt.figure()
  75. plt.title('Data')
  76. plt.scatter(features[:, 0], features[:, 1], marker='o', c=target, s=30)
  77. plt.show()
  78. plt.savefig('blobs.png')
  79. plt.close()

[Python]-sklearn模块-机器学习Python入门《Python机器学习手册》-02-加载数据:加载数据集的更多相关文章

  1. python - json模块使用 / 快速入门

    json基本格式 """ json格式 -> [{}, {}]: [{ "name": "Bob", "gende ...

  2. python pickle模块的使用/将python数据对象序列化保存到文件中

    # Python 使用pickle/cPickle模块进行数据的序列化 """Python序列化的概念很简单.内存里面有一个数据结构, 你希望将它保存下来,重用,或者发送 ...

  3. python openpyxl模块实现excel的读取,新表创建及原数据表追加新数据

    当实际工作需要把excel表的数据读取出来,或者把一些统计数据写入excel表中时,一个设计丰富,文档便于寻找的模块就会显得特别的有吸引力,本文对openpyxl模块的一些常见用法做一些记录,方便工作 ...

  4. Python Deque 模块使用详解,python中yield的用法详解

    Deque模块是Python标准库collections中的一项. 它提供了两端都可以操作的序列, 这意味着, 你可以在序列前后都执行添加或删除. https://blog.csdn.net/qq_3 ...

  5. Python 数据分析(一) 本实验将学习 pandas 基础,数据加载、存储与文件格式,数据规整化,绘图和可视化的知识

    第1节 pandas 回顾 第2节 读写文本格式的数据 第3节 使用 HTML 和 Web API 第4节 使用数据库 第5节 合并数据集 第6节 重塑和轴向旋转 第7节 数据转换 第8节 字符串操作 ...

  6. Andrew Ng机器学习算法入门(二):机器学习分类

    机器学习的定义 Arthur Samuel给出的定义,Field of Study that gives computers the ability to learn without being ex ...

  7. Python入门之Python引用模块和查找模块路径

    #这篇文章主要介绍了Python引用模块和Python查找模块路径的相关资料,需要的朋友可以参考下 模块间相互独立相互引用是任何一种编程语言的基础能力.对于“模块”这个词在各种编程语言中或许是不同的, ...

  8. 认识python正则模块re

    python正则模块re python中re中内置匹配.搜索.替换方法见博客---python附录-re.py模块源码(含re官方文档链接) 正则的应用是处理一些字符串,phthon的博文python ...

  9. 小白如何入门 Python 爬虫?

    本文针对初学者,我会用最简单的案例告诉你如何入门python爬虫! 想要入门Python 爬虫首先需要解决四个问题 熟悉python编程 了解HTML 了解网络爬虫的基本原理 学习使用python爬虫 ...

随机推荐

  1. 从一道算法题实现一个文本diff小工具

    众所周知,很多社区都是有内容审核机制的,除了第一次发布,后续的修改也需要审核,最粗暴的方式当然是从头再看一遍,但是编辑肯定想弄死你,显然这样效率比较低,比如就改了一个错别字,再看几遍可能也看不出来,所 ...

  2. 前端下载图片的N种方法

    前几天一个简单的下载图片的需求折腾了我后端大佬好几天,最终还是需要前端来搞,开始说不行的笔者最后又行了,所以趁着这个机会来总结一下下载图片到底有多少种方法. 先起个服务 使用expressjs起个简单 ...

  3. 全新升级的AOP框架Dora.Interception[汇总,共6篇]

    多年之前利用IL Emit写了一个名为Dora.Interception(github地址,觉得不错不妨给一颗星)的AOP框架.前几天利用Roslyn的Source Generator对自己为公司写的 ...

  4. docker安装报错failure: repodata/repomd.xml from mirrors.aliyun.com_docker-ce_linux_centos_docker-ce.pro

    1.进入 /etc/yum.repos.d 目录下,将所有有关 docker 的 repo 全部删掉 2.重新添加镜像 sudo yum-config-manager --add-repo https ...

  5. SpringCloudAlibaba分布式流量控制组件Sentinel实战与源码分析-中

    实战示例 控制台初体验 Sentinel的控制台启动后,控制台页面的内容数据都是空的,接下来我们来逐步操作演示结合控制台的使用,在上一节也已说明整合SpringCloud Alibaba第一步先加入s ...

  6. HDFS、Yarn、Hive…MRS中使用Ranger实现权限管理全栈式实践

    摘要:Ranger为组件提供基于PBAC的鉴权插件,供组件服务端运行,目前支持Ranger鉴权的组件有HDFS.Yarn.Hive.HBase.Kafka.Storm和Spark2x,后续会支持更多组 ...

  7. pyhon推荐的命名规范

    类别 public Internal Modules(模块) low_with_under _low_with_under Packages(包) low_with_under   Classes(类 ...

  8. Excel用户如何打破内卷?只需要一个新软件,就能突破excel天花板

    还在死磕Excel吗?到底值不值得? 你看看,现在有多少excel培训班和培训课?网上各种EXCEL使用技巧教程也是满天飞.很多人为了提升Excel技能,不遗余力学习各种函数用法.VBA用法等等,最近 ...

  9. java------注释、关键字、字面量

    注释(对代码的一种解释说明) 单行注释   // 多行注释   /*   */ 文档注释 /** */ 注释使用细节: 注释内容不参与编译和运行,所以只在java文件中存在 不管是单行注释还是多行注释 ...

  10. VP视频结构化框架

    完成多路视频并行接入.解码.多级推理.结构化数据分析.上报.编码推流等过程,插件式/pipe式编程风格,功能上类似英伟达的deepstream和华为的mxvision,但底层核心不依赖复杂难懂的gst ...