《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 加载样本数据集

# 加载现有数据集
from sklearn import datasets # 加载手写数字数据集--图像分类
digits = datasets.load_digits()
print(digits.keys())
# dict_keys(['data', 'target', 'frame', 'feature_names', 'target_names', 'images', 'DESCR']) # 加载波士顿房价数据集--回归
boston = datasets.load_boston()
print(boston.keys())
# dict_keys(['data', 'target', 'feature_names', 'DESCR', 'filename']) # 加载鸢尾花数据集--分类
iris = datasets.load_iris()
print(iris.keys())
# dict_keys(['data', 'target', 'frame', 'target_names', 'DESCR', 'feature_names', 'filename'])

02-2 创建仿真数据集

# 创建仿真数据集
from sklearn.datasets import make_regression, make_classification, make_blobs, make_multilabel_classification # 生成特征矩阵、目标向量以及模型系数--回归
features, target, coefficients = make_regression(n_samples = 100,
n_features = 3,
n_informative = 3,
n_targets = 1,
noise = 0.0,
coef = True,
random_state = 1) # 生成特征矩阵、目标向量以及模型系数--分类
features, target = make_classification(n_samples = 100,
n_features = 3,
n_informative = 3,
n_redundant = 0,
n_classes = 2,
weights = [.25, .75],
random_state = 1)
# n_samples=100, # 样本个数
# n_features=20, # 特征个数
# n_informative=2, # 有效特征个数,有价值的重要特征
# n_redundant=2, # 冗余特征个数(有效特征的随机组合),将重要特征进行线性组合的特征
# n_repeated=0, # 重复特征个数(有效特征和冗余特征的随机组合)
# n_classes=2, # 样本类别
# n_clusters_per_class=2, # 蔟的个数,簇的个数,某一个类别由几个簇构成
# weights=None, # 每个类的权重 用于分配样本点
# flip_y=0.01, # 随机交换样本的一段 y噪声值的比重
# class_sep=1.0, # 类与类之间区分清楚的程度
# hypercube=True, # 如果为True,则将簇放置在超立方体的顶点上;如果为False,则将簇放置在随机多面体的顶点上。
# shift=0.0, # 将各个特征的值移动,即加上或减去某个值
# scale=1.0, # 将各个特征的值乘上某个数,放大或缩小
# shuffle=True, # 是否洗牌样本
# random_state=None, # 随机种子 # 类别数量统计
from collections import Counter
print(Counter(target)) # Counter({1: 75, 0: 25})
# 特征维度
print(features.shape) # (100, 3) # 生成特征矩阵、目标向量以及模型系数--多标签分类,一个features对应多个target
features, target = make_multilabel_classification(n_samples = 100,
n_features = 10,
n_classes = 5,
n_labels = 2,
length =50,
allow_unlabeled = True,
sparse = False,
return_indicator='dense',
return_distributions=False,
random_state = None) # 特征维度
print(features.shape) # (100, 10)
# 多标签示例
print(target[:4])
# [[1 1 0 1 0]
# [0 1 0 0 0]
# [0 1 0 0 1]
# [0 1 0 1 1]] # 生成特征矩阵、目标向量以及模型系数--聚类
features, target = make_blobs(n_samples = 100,
n_features = 2,
centers = 3,
cluster_std = 0.5,
shuffle = True,
random_state = 1) # n_samples=100, # 样本数量,如果是数组,则序列的每个元素表示每个聚簇的样本数量。
# n_features=2, # 特征数量
# centers=None, # 中心,一种是int决定生成的中心数量,一种是array决定固定的中心位置(长度等于n_samples数组长度)
# cluster_std=1.0, # 聚簇的标准差
# center_box(-10.0, 10.0), # 聚簇中心的边界框
# shuffle=True, # 是否洗牌样本
# random_state=None #随机种子 # 聚类数据集可视化
import matplotlib.pyplot as plt plt.figure()
plt.title('Data')
plt.scatter(features[:, 0], features[:, 1], marker='o', c=target, s=30)
plt.show()
plt.savefig('blobs.png')
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. windows系统下.NET CORE c# 通过bat脚本发布iis应用程序,半智能点击式ci/cd

    这里以git为例子讲解: 第一个 pullCode.bat 文件是 拉取代码 git pull 第二个 publish.bat 脚本,编译代码,并发布指定文件夹 dotnet publish &quo ...

  2. 使用 Cheat Engine 修改 Kingdom Rush 中的金钱、生命、星

    最新博客链接 最近想学习一下 CE,刚好看见游戏库里装了 Kingdom Rush 就拿它来研究吧.这里写的东西,需要一些 Cheat Engine 的基础,可以看看教程. 这里主要是看写的注释,来理 ...

  3. NC212914 牛牛与后缀表达式

    NC212914 牛牛与后缀表达式 题目 题目描述 给定牛牛一个后缀表达式 \(s\) ,计算它的结果,例如,1+1对应的后缀表达式为1#1#+,'#'作为操作数的结束符号. 其中,表达式中只含有'+ ...

  4. JAVA中简单的for循环竟有这么多坑,你踩过吗

    JAVA中简单的for循环竟有这么多坑,你踩过吗 实际的业务项目开发中,大家应该对从给定的list中剔除不满足条件的元素这个操作不陌生吧? 很多同学可以立刻想出很多种实现的方式,但你想到的这些实现方式 ...

  5. AlterNats是如何做到高性能的发布订阅的?

    前言 在过去的一些文章里面,我们聊了一些.NET平台上高性能编程的技巧,今天带大家了解一下AlterNats这个库是如何做到远超同类SDK性能的. NATS:NATS是一个开源.轻量级.高性能的分布式 ...

  6. Josephus问题(Ⅲ)

    题目描述 n个人排成一圈,按顺时针方向依次编号1,2,3-n.从编号为1的人开始顺时针"一二三...."报数,报到m的人退出圈子.这样不断循环下去,圈子里的人将不断减少.最终一定会 ...

  7. NodeJS 基于 Dapr 构建云原生微服务应用,从 0 到 1 快速上手指南

    Dapr 是一个可移植的.事件驱动的运行时,它使任何开发人员能够轻松构建出弹性的.无状态和有状态的应用程序,并可运行在云平台或边缘计算中,它同时也支持多种编程语言和开发框架.Dapr 确保开发人员专注 ...

  8. CF1656D K-good

    题意: 给定一个整数 \(n\),请找出一个大于等于 \(2\) 的整数 \(k\),使得 \(n\) 可以表示成 \(k\) 个除以 \(k\) 的余数互不相同的数之和. 注意\(k\)个除以 \( ...

  9. python将命令输出写入文件或临时缓存

    python将命令输出写入文件 将文件写入到对应文件,方便后期处理或保存 def write_file(file_path): with open(file=file_path, mode=" ...

  10. JS for in / foreach / for of 超简单对照解释

    for in 可以遍历数组/对象/字符串/enumerable对象,得到的是索引,遍历对象时可以写这样 obj[index] 代表对象当前的属性foreach 只能遍历数组,不能遍历字符串.对象for ...