[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)

大家都在看

  • tar解压包的时候出现错误 gzip: stdin: not in gzip format

    tar解压包的时候出现错误 gzip: stdin: not in gzip format tar -zxvf jdk-8u144-linux-x64.tar.gz 改成 tar …

    技术杂谈 2023年5月31日
    076
  • 2021年扩展DevOps的6种方法

    2021年扩展DevOps的6种方法 加强devops流程的自动化 为了满足快速、高质量应用程序交付的需求,现代软件团队需要一种超越常规性能测试的方法。在这里,以devops为中心…

    技术杂谈 2023年5月31日
    070
  • iOS 字符串 去除空格

    NSString *str = @” this is a test . “; 去掉两端的空格 str = [str stringByTrimmingCharactersInSet:…

    技术杂谈 2023年5月30日
    071
  • 防火墙NAT+DHCP+ACL+ACAP

    任务要求: SwitchA作为有线终端网关与DHCP Server,为无线终端与有线终端分配IP地址,并配置ACL访问控制列表控制不同用户的访问权限,客户机只能跟DMZ区域服务器互…

    技术杂谈 2023年6月21日
    0104
  • Excel中*替换为空

    查找输入~*替换不输入全部替换将 * 这个替换成空白 Original: https://www.cnblogs.com/gisoracle/p/16309234.htmlAuth…

    技术杂谈 2023年5月30日
    0101
  • 异步函数

    此入门教程是记录下方参考资料视频的过程开发工具:Visual Studio 2019 async和await关键字可以让你写出和同步代码一样简洁且结构相同的异步代码 await v…

    技术杂谈 2023年5月31日
    096
  • 说透缓存一致性与内存屏障

    故事还得从一个矛盾说起。 摩尔定律告诉我们:大约每18个月会将芯片的性能提高一倍。芯片的这种飞速发展直接导致了芯片的指令执行速度与内存读取速度之间的巨大鸿沟。 举个例子,CPU在1…

    技术杂谈 2023年7月23日
    058
  • 永辉彩食鲜架构概述

    背景 满足整个大B业务从线上到供应链的全线业务系统的研发和维护,保证整个系统的稳定性和性能。 架构思考 大B业务不同于小B业务,它没有常见的业务高并发的场景,所以更多是对业务数据的…

    技术杂谈 2023年7月23日
    068
  • 非手机数字化应用

    NFC是Near Field Communication的简称,该技术可以使通信两端使用13.56-MHz的频段进行短距离(10mm)的快速通信。我这个标题一定要加上非手机,因为国…

    技术杂谈 2023年7月11日
    093
  • PyQt5 QCommandLinkButton

    ################################ PyQt5中文网 – PyQt5全套视频教程 # https://www.PyQt5.cn/ # 主讲: 村长 #…

    技术杂谈 2023年5月31日
    089
  • Hadoop2.x与Hadoop3.x副本选择机制

    HDFS 上的文件对应的 Block 保存多个副本,且提供容错机制,副本丢失或者宕机自动恢复,默认是存 3 个副本。 2.8.x之前的副本策略 官方文档说明: https://ha…

    技术杂谈 2023年7月24日
    070
  • python-数据描述与分析2(利用Pandas处理数据 缺失值的处理 数据库的使用)

    2.利用Pandas处理数据2.1 汇总计算当我们知道如何加载数据后,接下来就是如何处理数据,虽然之前的赋值计算也是一种计算,但是如果Pandas的作用就停留在此,那我们也许只是看…

    技术杂谈 2023年7月25日
    080
  • CvMat 矩阵的使用方法和简单程序

    一:CvMat cvInitMatHeader( CvMat mat, int rows, int cols, int type,void* data=NULL, int step…

    技术杂谈 2023年5月30日
    073
  • 为什么说开源的COLA既是架构也是框架?

    COLA 是 Clean Object-Oriented and Layered Architecture的缩写,代表”整洁面向对象分层架构”,是来自阿里技…

    技术杂谈 2023年6月1日
    093
  • 如何在shell脚本中传变量的值传给curl

    随着即时通讯的发展,大量的报警媒介已经从以往的邮件转为钉钉,企业微信等聊天工具。当我使用shell脚本来监控 Keepalived的时候,在给curl传递变量的时候无法生效,经过查…

    技术杂谈 2023年6月21日
    093
  • 【软考】运筹学

    1.水流问题 2.管道问题 以下是个人在学习过程中整理的软考运筹学错题 1.水流问题 题目:某水库现在的水位已超过安全线,上游河水还在匀速流入。为了防洪,可以利用其10个泄洪闸(每…

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