[Python]-sklearn模块-机器学习Python入门《Python机器学习手册》-02-加载数据:加载数据集
《Python机器学习手册——从数据预处理到深度学习》
这本书类似于工具书或者字典,对于python具体代码的调用和使用场景写的很清楚,感觉虽然是工具书,但是对照着做一遍应该可以对机器学习中python常用的这些库有更深入的理解,在应用中也能更为熟练。
以下是根据书上的代码进行实操,注释基本写明了每句代码的作用(写在本句代码之前)和print的输出结果(写在print之后)。不一定严格按照书上内容进行,根据代码运行时具体情况稍作顺序调整,也加入了一些自己的理解。
如果复制到自己的环境下跑一遍输出,相信理解会更深刻更清楚。
博客中每个代码块代表一次完整的运行结果,可以直接以此为单位复制并运行。
02-加载数据
包括:
- 加载样本数据集
- 创建仿真数据集
- 加载CSV文件
- 加载Excel文件
- 加载json文件
- 查询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-加载数据:加载数据集的更多相关文章
- python - json模块使用 / 快速入门
json基本格式 """ json格式 -> [{}, {}]: [{ "name": "Bob", "gende ...
- python pickle模块的使用/将python数据对象序列化保存到文件中
# Python 使用pickle/cPickle模块进行数据的序列化 """Python序列化的概念很简单.内存里面有一个数据结构, 你希望将它保存下来,重用,或者发送 ...
- python openpyxl模块实现excel的读取,新表创建及原数据表追加新数据
当实际工作需要把excel表的数据读取出来,或者把一些统计数据写入excel表中时,一个设计丰富,文档便于寻找的模块就会显得特别的有吸引力,本文对openpyxl模块的一些常见用法做一些记录,方便工作 ...
- Python Deque 模块使用详解,python中yield的用法详解
Deque模块是Python标准库collections中的一项. 它提供了两端都可以操作的序列, 这意味着, 你可以在序列前后都执行添加或删除. https://blog.csdn.net/qq_3 ...
- Python 数据分析(一) 本实验将学习 pandas 基础,数据加载、存储与文件格式,数据规整化,绘图和可视化的知识
第1节 pandas 回顾 第2节 读写文本格式的数据 第3节 使用 HTML 和 Web API 第4节 使用数据库 第5节 合并数据集 第6节 重塑和轴向旋转 第7节 数据转换 第8节 字符串操作 ...
- Andrew Ng机器学习算法入门(二):机器学习分类
机器学习的定义 Arthur Samuel给出的定义,Field of Study that gives computers the ability to learn without being ex ...
- Python入门之Python引用模块和查找模块路径
#这篇文章主要介绍了Python引用模块和Python查找模块路径的相关资料,需要的朋友可以参考下 模块间相互独立相互引用是任何一种编程语言的基础能力.对于“模块”这个词在各种编程语言中或许是不同的, ...
- 认识python正则模块re
python正则模块re python中re中内置匹配.搜索.替换方法见博客---python附录-re.py模块源码(含re官方文档链接) 正则的应用是处理一些字符串,phthon的博文python ...
- 小白如何入门 Python 爬虫?
本文针对初学者,我会用最简单的案例告诉你如何入门python爬虫! 想要入门Python 爬虫首先需要解决四个问题 熟悉python编程 了解HTML 了解网络爬虫的基本原理 学习使用python爬虫 ...
随机推荐
- 人人都能学会的 Python 多线程指南~
大家好鸭!有没有想我~(https://jq.qq.com/?_wv=1027&k=rX9CWKg4) 在 Python 中,多线程最常见的一个场景就是爬虫,例如这样一个需求,有多个结构一样的 ...
- 11.4 Android Studio如何设置代理
有些网络环境下,Android Studio下载无法下载依赖,这个时候就要配置代理,至于代理的问题,大家要自己解决. 获取代理信息 一般要获取如下信息: 地址:可以是域名和IP 端口: 代理类型:常用 ...
- hs-black 杂题选讲
[POI2011]OKR-Periodicity 考虑递归地构造,设 \(\text{solve(s)}\) 表示字典序最小的,\(\text{border}\) 集合和 \(S\) 的 \(\tex ...
- java -jar -Xbootclasspath/a:/xxx/config xxx .jar 和 java -jar xxx .jar 的区别
1.如果有用Xbootclasspath的话则config的文件会直接覆盖jar里面的resouces文件,覆盖application.yml ,也会覆盖logback-spring.xml ,比如j ...
- 抢先体验! 在浏览器里写 Flutter 是一种什么体验?
Invertase 是一间位于英国的开源软件制作公司.主要构建关于开发者工具.SDK 等应用程序,早在 Flutter 2.2 的时候,Invertase 团队就开始帮助构建和贡献 Firebase ...
- 数据库持久化+JDBC数据库连接
数据持久化 数据持久化就是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的统称.数据模型可以是任何数据结构或对象模型,存储模型可以是关系模型.XML.二进制流等. 瞬时状态 保 ...
- 解决报错Error response from daemon: Get https://10.0.0.110/v2/: dial tcp 10.0.0.110:443: connect: connection refused
修改 #https不需要验证,否则要加上以下配置# 意思就是非安全仓库,加上重启就OK了! vim /lib/systemd/system/docker.service --insecure-regi ...
- 温控器/胎压检测/电表/热泵显示控制器等,低功耗高抗干扰断/段码(字段式)LCD液晶显示驱动IC-VK2C22A/B,替代市面16C22,44*4/40*4点显示
产品品牌:永嘉微电/VINKA 产品型号:VK2C22A/B 封装形式:LQFP52/48 产品年份:新年份 概述: VK2C22是一个点阵式存储映射的LCD驱动器,可支持最大176点(44SEGx4 ...
- Ajax辨析
Ajax辨析 最近在多个知识点涉及到了ajax请求,各个知识有所交错,知识体系上学的有些混乱,这里梳理一下 单纯的发送Ajax请求 方式1: ajax传统4步骤 ajax的post请求 var xhr ...
- CF576A Vasya and Petya's Game
题目大意: 给定一个数字 n,现在 Vasya 要从 1∼n 中想一个数字 x. Petya 向 Vasya 询问 "x 是否能整除 y?" ,通过 Vasya 的回答来判断 x ...