机器学习手册-(加载数据)(二)

写作前言:

1.本文章的写作顺序和Chris Albon[美]《Python机器学习手册-从数据预处理到深度学习》(Machine Learning with Python Cookbook)相似。但是我会添加自己的想法和总结,并简化内容。如有侵权,请及时联系我删除文章。至此,由衷感谢该书提供指导。

2.文章篇幅比较大,文章分为以下章节:

-- 1.   向量、矩阵和数组

-- 2.   加载数据

-- 3.   数据整理

-- 4.   处理数值型数据

-- 5.   处理分类数据

-- 6.   处理文本

-- 7.   处理日期和时间

-- 8.   图像处理

-- 9.   使用特征提取进行特征降维

-- 10. 使用特征选择进行降维

-- 11. 模型评估

-- 12. 模型选择

-- 13. 线性回归

-- 14. 树和森林

-- 15. KNN

-- 16. 逻辑回归

-- 17. 支持向量机

-- 18. 朴素贝叶斯

-- 19. 聚类

-- 20. 神经网络

3.文章归纳了在机器学习中所常遇见的方法,只上应用实例。如果想要查询方法的参数以及更多的使用方法,请读者前往官方查询。

4.基于笔者能力有限以及写作文章篇幅过大,写作未免有疏漏错误,还请读者大胆提出来,笔者愿意接受读者的批评指正。

5.所有代码的运行环境基于所需模块的版本详细:

- python 3.8.8

        - numpy 1.22.4

        - scikit-learn 1.2.2

        - pandas 1.3.5

        - matplotlib 3.3.4

目录

1.使用Sklearn加载已有样本数据集

1.1 加载数据集

1.2 查看数据集属性

2.使用Sklearn创建仿真数据集

2.1 制作用于回归的仿真数据集

2.2 制作用于分类的仿真数据集

2.3 制作用于聚类的仿真数据集

3.使用pandas读取外部数据集

3.1 加载CSV文件

3.2 加载EXCEL文件

3.3 查询MySQL数据库


只要涉及机器学习,首先要把原始数据加载到系统中。

在本篇介绍中,主要介绍如何引入scikit-learn中的自带的样本数据集和通过创建scikit-learn创建仿真数据集,以及从不同的源(比如SQL数据库和CSV文件)加载数据

1.使用Sklearn加载已有样本数据集

01加载数据集

sklearn.datasets模块: 

load_<dataset_name>()方法

02查看数据集属性
获取特征名feature_names属性
获取特征值data属性
获取标签名target_names属性
获取特征值target属性

1.1 加载数据集

在加载数据集中,我只引入鸢尾花数据集和糖尿病数据集。

因为我们在机器学习中主要讨论的是分类问题和回归问题。

鸢尾花数据集是分类问题的常用数据集,而糖尿病数据集是做回归问题的常用数据集。

注意的是:在scikit-learn版本>1.2.0时候,scikit-learn已经剔除了波斯顿房价数据集。

""" 加载鸢尾花数据集 """
from sklearn.datasets import load_iris

""" 加载糖尿病数据集 """
from sklearn.datasets import load_diabetes

1.2 查看数据集属性

在机器学习训练中,根据有监督学习、无监督学习向模型提供数据集。

在有监督学习中,我们不仅需要提供数据特征,还要提供数据标签。

而在无监督学习中,我们仅仅需要提供数据特征。

总之,要训练一个模型,必须要向模型提供数据。

# 加载鸢尾花数据集
from sklearn.datasets import load_iris

# 读取数据
data = load_iris()

""" 查看特征名 """
print(data.feature_names)
# >>>
"""
['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']
"""

""" 查看特征值 """
print(data.data[:2,:])
# >>>
"""
[[5.1 3.5 1.4 0.2]
 [4.9 3.  1.4 0.2]]
"""

""" 查看标签名 """
print(data.target_names)
# >>>
"""
['setosa' 'versicolor' 'virginica']
"""

""" 查看标签值 """
print(data.target[:2])
"""
[0 0]
"""

2.使用Sklearn创建仿真数据集

01制作用于回归的仿真数据集

sklearn.datasets模块

make_regression()方法

02制作用于分类的仿真数据集

sklearn.datasets模块

make_classification()方法

03制作用于聚类的仿真数据集

sklearn.datasets模块

make_blobs()方法

2.1 制作用于回归的仿真数据集

make_regression()方法部分参数说明:

n_samplesint,可选参数,默认值为100。生成的样本数量。
n_featuresint,可选参数,默认值为100。生成的特征数量。
n_informativeint,可选参数,默认值为10。生成的特征中与目标变量相关的特征数量。
n_targetsint,可选参数,默认值为1。生成的目标变量的数量。
noisefloat,可选参数,默认值为0.0。生成的目标变量中的噪声标准差。
coef布尔值或数组,可选参数,默认值为False。如果为True,则返回生成数据集中使用的真实系数。如果为数组,则为生成数据集中使用的真实系数。
random_state随机数生成种子
from sklearn.datasets import make_regression
import matplotlib.pyplot as plt

""" 生成一个回归数据集 """
# 生成特征矩阵和目标向量以及模型系数
features,target,coefficients = make_regression(n_samples = 100,
                                               n_features = 1,
                                               n_informative = 1,
                                               n_targets = 1,
                                               noise = 8.0,
                                               coef = True,
                                               random_state = 1)

# 绘制散点图
plt.scatter(features,target,c="b")
plt.show()

2.2 制作用于分类的仿真数据集

make_classification()方法部分参数说明:

n_samplesint,可选参数,默认值为100。生成的样本数量。
n_featuresint,可选参数,默认值为20。生成的特征数量。
n_informativeint,可选参数,默认值为2。生成的特征中与目标变量相关的特征数量。
n_redundantint,可选参数,默认值为2。冗余特征的数量
n_classesint,可选参数,默认值为2。分类问题的类(或标签)的数量
weightsarray,分配给每个类别的样本比例
random_state随机数生成种子

from sklearn.datasets import make_classification
""" 生成一个分类数据集 """
# 生成特征矩阵和目标向量
features,target = make_classification(n_samples = 100,
                                      n_features = 5,
                                      n_informative = 5,
                                      n_redundant = 0,
                                      n_classes = 3,
                                      weights=[0.25,0.5,0.5],
                                      random_state = 1)

# 打印特征信息
print(features[:3,:])
# >>>
"""
[[-2.03228386  0.27313379 -1.24704667  3.0319683   1.25218447]
 [ 2.29413366 -0.21846466 -0.07442589  2.14384983 -0.15831911]
 [-1.52542531 -0.0425736  -0.76663616  2.29348162  0.61417686]]
"""

# 打印标签信息
print(target[:10])
# >>>
"""
[2 0 2 2 1 2 0 1 0 1]
"""

2.3 制作用于聚类的仿真数据集

make_blobs()方法部分参数说明:

n_samplesint,可选参数,默认值为100。生成的样本数量。
n_featuresint,可选参数,默认值为2。生成的特征数量。
centersfloat,可选参数,默认值为2。生成的特征中与目标变量相关的特征数量。
cluster_stdint,可选参数,默认值为1.0。聚类的标准偏差
shufflebool,可选参数,默认值为True。打乱样本
random_state随机数生成种子
from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt
""" 生成一个聚类数据集 """
# 生成特征矩阵和目标向量
features,target = make_blobs(n_samples = 100,
                             n_features = 2,
                             centers = 5,
                             cluster_std = 0.5,
                             shuffle = True,
                             random_state = 1)

# 绘制散点图
plt.scatter(features[:,0],features[:,1],c=target)
plt.show()

3.使用pandas读取外部数据集

01加载CSV文件read_csv()方法
02加载EXCEL文件read_excel()方法
03查询MySQL数据库read_sql()方法

 

3.1 加载CSV文件

import pandas as pd
""" 加载csv文件 """
dataframe = pd.read_csv("./nba.csv",encoding="gbk")

# 查看前两行数据
print(dataframe.iloc[:2,:])
# >>>
"""
            Name            Team  Number  ...    College   Salary Love
0  Avery Bradley  Boston Celtics       0  ...      Texas  7730337  Yes
1    Jae Crowder  Boston Celtics      99  ...  Marquette  6796117  Yes

[2 rows x 10 columns]
"""

3.2 加载EXCEL文件

read_excel()方法部分参数说明:

sheet_nameint,可选参数,默认是0,指定加载的表
headerint,可选参数,默认是0,指定表头
import pandas as pd
""" 加载excel文件 """
dataframe = pd.read_excel("./nba.xlsx",sheet_name=0,header=0)

# 查看前两行数据
print(dataframe.iloc[:2,:])
# >>>
"""
            Name            Team  Number  ...    College   Salary  Love
0  Avery Bradley  Boston Celtics       0  ...      Texas  7730337   Yes
1    Jae Crowder  Boston Celtics      99  ...  Marquette  6796117   Yes

[2 rows x 10 columns]
"""

3.3 查询MySQL数据库

import pandas as pd
import MySQLdb

# 连接MySQL数据库
conn = MySQLdb.connect(host='127.0.0.1', user='root', password='root', db='environment')

""" 加载MySQL数据库 """
query = "select * from checkenv_daycom"
dataframe = pd.read_sql(query, conn)

# 关闭数据库连接
conn.close()

# 打印数据
print(dataframe)
# >>>
"""
   id  day  temperature  airHumidity
0   1    0           25           80
1   2    1           25           80
2   3    2           29           86
3   4    3           30           61
4   5    4           25           80
5   6    5           27           86
6   7    6           25           80
"""

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吃掉鹅咩里啃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值