[Python]-sklearn模块-机器学习Python入门《Python机器学习手册》-02-加载数据:加载数据集

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

Original: https://www.cnblogs.com/camilia/p/16690960.html
Author: CAMILIA
Title: [Python]-sklearn模块-机器学习Python入门《Python机器学习手册》-02-加载数据:加载数据集

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/683349/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Docker创建容器时默认的共享内存shm太小报错,程序无法正常运行

    在docker容器中训练网络,由于创建容器时默认的共享内存shared memory太小,导致程序报错: ERROR: Unexpected bus error encounter…

    技术杂谈 2023年7月10日
    093
  • 运行程序报告 ModuleNotFoundError: No module named ‘Cython’ 解决方法

    运行代码出现找不到Cython模块报错,如下: 安装升级下Cython可以解决:pip3 install –upgrade cython Original: https…

    技术杂谈 2023年7月11日
    070
  • 《玩态人生》重新学会玩

    前方高能警告,在您开始阅读时,请记住,这只是作者小鬼个人的价值观思考。如果看到一半发现严重与您的体系不同,发现不适。请坚决关掉,因为接下来写的内容,可能跟主流的价值观存在很多冲突的…

    技术杂谈 2023年6月21日
    077
  • 代码圈复杂度

    回到我们日常的写代码的场景,我们一直在说系统很复杂,那到底什么是系统复杂度呢?最近几天,一直在改项目里别人写的代码,某些方法复杂无注释。怎么才能写的一手可读,可扩展,可维护[注1]…

    技术杂谈 2023年7月11日
    0124
  • Linux关于防火墙的命令

    Linux关于防火墙的命令 一、red hat/CentOs7关闭防火墙的命令 查看防火墙状态 systemctl status firewalld service iptable…

    技术杂谈 2023年7月11日
    073
  • 2.数据及其预处理

    数据样本矩阵 一般数据集的构造形式: 一行一样本,一列一特征,以下为一个示例 姓名 年龄 性别 工作经验 月薪 A 22 男 2 5000 B 23 女 3 6000 C 25 男…

    技术杂谈 2023年7月10日
    069
  • 使用MindSpore计算旋转矩阵

    坐标变换、旋转矩阵,是在线性空间常用的操作,在分子动力学模拟领域有非常广泛的应用。比如在一个体系中切换坐标,或者对整体分子进行旋转平移等。如果直接使用Numpy,是很容易可以实现的…

    技术杂谈 2023年7月25日
    060
  • Java获取Web服务器文件

    Java获取Web服务器文件 如果获取的是服务器上某个目录下的有关文件,就相对比较容易,可以设定死绝对目录,但是如果不能设定死绝对目录,也不确定web服务器的安装目录,可以考虑如下…

    技术杂谈 2023年7月24日
    082
  • PPT中插入个性化页码

    博客园 :当前访问的博文已被密码保护 请输入阅读密码: Original: https://www.cnblogs.com/hxsyl/p/6526279.htmlAuthor: …

    技术杂谈 2023年5月31日
    082
  • 深入C++03:面向对象

    📕面向对象 类和对象、this指针 不用做太多笔记,都可以看初识C++的笔记; 记住👀:声明后面都要加” ;“,比如声明方法和变量还有…

    技术杂谈 2023年7月25日
    079
  • [学习笔记]Java读取用户输入

    在程序的实际运行过程中,我们很可能会要求用户输入数据以继续运行程序; java.util包提供的Scanner类就可用于读取用户输入; 创建Scanner对象 使用next()方法…

    技术杂谈 2023年7月24日
    076
  • Keka for Mac(mac压缩解压软件)中文版

    Original: https://www.cnblogs.com/123ccy/p/16551434.htmlAuthor: -Mac123-Title: Keka for Ma…

    技术杂谈 2023年5月31日
    095
  • Rancher部署并导入K8S集群

    Rancher 的部署可以有三种架构: 高可用 Kubernetes 安装: 建议使用 Kubernetes 程序包管理器 Helm 在专用的 Kubernetes 集群上安装 R…

    技术杂谈 2023年5月31日
    0105
  • 技能篇:关于缓存数据的一致性探讨

    为了更快响应请求,减少不必要的查询,加速数据的处理,数据缓存是我们日常开发绕不过去的环节 关注公众号,一起交流,微信搜一搜: 潜行前行 缓存的意义 数据的保存,离不开磁盘或者内存的…

    技术杂谈 2023年7月25日
    095
  • vue系列文章 — 源码目录结构整理(三)

    vue的版本是:^2.6.10 结构如下: 如上是 vue2.6.10版本所有的js目录结构 1. src/compiler: 该目录包含Vue.js所有编译相关的代码,包括把模板…

    技术杂谈 2023年6月1日
    076
  • 软件装在D盘,实测有效

    C盘容量小,希望把所有软件都装到D盘,试过很多次,没什么作用。今天装MS全家桶的时候看到了个帖子,实测有效,Visio、Word、Excel、PowerPoint都装到了D盘原贴链…

    技术杂谈 2023年7月25日
    0161
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球