Python数据分析与应用目录及课后习题答案

目录

Python数据分析与应用目录

  • 第1章 Python数据分析概况
    • 1.1 认识数据分析
    • 1.2 熟悉Python数据分析的工具
    • 1.3 Jupyter Notebook 快捷键
  • 第1章 课后习题答案
  • 第2章 NumPy数值计算基础
    • 2.1 掌握NumPy数组对象ndarray
      • 2.2.1 创建数组对象
      • 2.1.2 生成随机数
      • 2.1.3 通过索引访问数组
    • 2.2 掌握 NumPy 矩阵与通用函数
    • 2.3 利用NumPy进行统计分析
      • 2.3.1 读/写文件
      • 2.3.2 使用数组进行简单统计分析
  • 第2章 课后习题答案
  • 第3章 Matplotlib 数据可视化基础
    • 3.1 掌握绘图基础语法与常用参数
      • 3.1.1 掌握pyplot基础语法
      • 3.1.2 设置pyplot的动态rc参数
    • 3.2 分析特征间的关系
      • 3.2.1 绘制散点图 scatter()
      • 3.2.2 绘制折线图 plot()
    • 3.3 分析特征内部数据分布与分散状况
      • 3.3.1 绘制直方图 bar()
      • 3.3.2 绘制饼图 pie()
      • 3.3.3 绘制箱线图 boxplot()
  • 第3章 课后习题答案
  • 第4章 pandas统计分析基础
    • 4.1 读写不同数据源的数据
      • 4.1.1 读写数据库数据
      • 4.1.2 读写文本文件
      • 4.1.3 读写Excel文件
    • 4.2 掌握DataFrame的常用操作
      • 4.2.1 查看DataFrame的常用属性
      • 4.2.2 查改增删DataFrame数据
      • 4.2.3 描述分析DataFrame数据
    • 4.3 转换与处理时间数据
      • 4.3.1 转换字符串时间为标准时间
      • 4.3.2 提取时间序列数据信息
      • 4.3.3 加减时间数据
    • 4.4 使用分组聚合进行组内计算
      • 4.4.1 使用groupby方法拆分数据
      • 4.4.2 使用agg方法聚合数据
      • 4.4.3使用apply方法聚合数据
      • 4.4.4 使用transform方法聚合数据
    • 4.5 创建透视表与交叉表
      • 4.5.1利用pivot_table函数可以实现透视表
      • 4.5.2 使用crosstab函数创建交叉表
  • 第4章 课后习题答案
  • 第5章 使用pandas进行数据预处理
    • 5.1 合并数据
      • 5.1.1 堆叠合并数据
      • 5.1.2 主键合并数据 merge()和join()
      • 5.1.3 重叠合并数据 combine_first()
    • 5.2 清洗数据
      • 5.2.1 检测与处理重复值
      • 5.2.2 检测与处理缺失值 isnull()、notnull()
      • 5.2.3 检测与处理异常值
    • 5.3 标准化数据
      • 5.3.1 离差标准化
      • 5.3.2 标准差标准化数据
      • 5.3.3 小数定标标准化数据
    • 5.4 转换数据
      • 5.4.1 哑变量处理类别型数据
      • 5.4.2 离散化连续型数据
  • 第5章 课后习题
  • 第6章 使用sklearn构建模型
    • 6.1 使用sklearn转换器处理数据
      • 6.1.1 使用sklearn转换器处理数据
      • 6.1.2 将数据集划分为训练集和测试集
      • 6.1.3 使用sklearn转换器进行数据预处理与降维
    • 6.2 构建并评价聚类模型
      • 6.2.1 使用sklearn估计器构建聚类模型
      • 6.2.2 评价聚类模型
    • 6.3 构建并评价分类模型
      • 6.3.1 使用sklearn估计器构建分类模型
      • 6.3.2 评价分类模型
    • 6.4 构建并评价回归模型
      • 6.4.1 使用sklearn估计器构建线性回归模型
      • 6.4.2 评价回归模型
  • 第6章 课后习题
  • 第7章 航空公司客户价值分析-分类
  • 第8章 财政收入预测分析-回归
  • 第9章 家用热水器用户行为分析与事件识别-BP神经网络

第1章 Python数据分析概况

第1章 Python数据分析概况

1.1 认识数据分析

1.2 熟悉Python数据分析的工具

1.3 Jupyter Notebook 快捷键

第1章 课后习题答案

第一章
(1)下列关于数据和数据分析的说法正确的是(B)。
A.数据就是数据库中的表格
B.文字、声音、图像这些都是数据
C.数据分析不可能预测未来几天的天气变化
D.数据分析的数据只能是结构化的
(2)下列关于数据分析流程的说法错误的是(C)。
A.需求分析是数据分析最重要的一部分||
B.数据预处理是能够建模的前提||
C.分析与建模时只能够使用数值型数据||
D.模型评价能够评价模型的优劣||
(3)下列关于分析与建模流程的说法错误的是( D)。
A.传统的统计对比分析不属于分析与建模流程
B.分析与建模的模型选择要根据需求确定
C.分析与建模时可以选择多个模型,同时分析
D.分析与建模工作是数据分析的核心
(4)下列关于模型评价与优化的说法正确的是(B)。
A.模型构建完成就可以使用
B.模型评价的目的是为了确认模型的有效性
C.模型评价结果良好,模型一定可用,不需要重构
D.所有的模型评价方法相同
(5)下列不属于数据分析应用场景的是(D)。
A.产品销量分析
B.码头货物吞吐量预测
C.计算机硬盘使用寿命预测
D.某人一生的命运预测
(6)下列不属于Python优势的是(C)。
A.语法简洁,程序开发速度快
B.拥有大量的第三方库,能够调用C、C++、Java语言
C.程序的运行速度在所有计算机语言中最快
D.开源免费
(7)Jupyter Notebook不具备的功能是(B)。
A.Jupyter Notebook可以直接生成一份交互式文档
B.Jupyter Notebook可以安装Python库
C.Jupyter Notebook可以导出HTML文件
D.Jupyter Notebook可以将文件分享给他人
(8)【多选】下列关于Jupyter Notebook的描述错误的是(BCD)。
A.Jupyter Notebook有两种模式
B.Jupyter Notebook有两种单元形式
C.Jupyter Notebook Markdown无法使用LaTeX语法
D.Jupyter Notebook 仅仅支持Python语言
(9)【多选】下列关于Python数据分析库的描述错误的是(ABD)。
A.NumPy的在线安装不需要其他任何辅助工具
B.SciPy的主要功能是可视化图表
C.pandas能够实现数据的整理工作
D.scikit-learn包含所有算法
(10)【多选】下列属于Anaconda主要特点的是(ABC)。
A.包含了众多流行的科学、数学、工程、数据分析的Python包
B.完全开源和免费
C.支持Python 2.6、2.7、3.4、3.5、3.6,可自由切换
D.额外的加速和优化是免费的
2.操作题
(1)在自用计算机上完成Python Anaconda发行版安装。
(2)使用Jupyter Notebook创建一个Hello World程序,并导出为HTML文件。
print(‘Hello, World’)

第2章 NumPy数值计算基础

2.1 掌握NumPy数组对象ndarray

2.1 掌握NumPy数组对象ndarray

2.2.1 创建数组对象

2.1.2 生成随机数

2.1.3 通过索引访问数组

2.2 掌握 NumPy 矩阵与通用函数

2.2 掌握 NumPy 矩阵与通用函数

2.3 利用NumPy进行统计分析

2.3 利用NumPy进行统计分析

2.3.1 读/写文件

1、二进制的文件读写
2、读取文本格式的数据

2.3.2 使用数组进行简单统计分析

1、排序
2、去重与重复数据
3、常用的统计函数

第2章 课后习题答案

第2章 NumPy数值计算基础
1.选择题
(1)【多选】NumPy提供的两种基本对象是(BC)。
A.array
B.ndarray
C.ufunc
D.matrix
(2)下列不属于数组属性的是(D)。
A.ndim
B.shape
C.size
D.add
(3)以下最能体现ufunc函数特点的是(C)。
A.又叫通用函数
B.对数组里的每一个元素逐一操作
C.对整个数组进行操作
D.数组里的元素都是相同类型的
(4)【多选】下面描述属于广播机制的是(ABCD)。
A.让所有的输入数组都向其中shape最长的数组看齐,shape中不足的部分通过在前面加1补齐
B.输出数组的shape是输入数组shape的各个轴上的最大值
C.如果输入数组的某个轴和输出数组的对应轴的长度相同或者其长度为1,则这个数组能够用来计算,否则出错
D.当输入数组的某个轴的长度为1时,沿着此轴运算时都用此轴上的第一组值
(5)创建一个3×3的数组,下列代码中错误的是(C)。
A.np.arange(0,9).reshape(3,3)
B.np.eye(3)
C.np.random.random([3,3,3])
D.np.mat(“1 2 3;4 5 6;7 8 9”)
2.操作题
(1)生成范围在0~1、服从均匀分布的10行5列的数组。

import numpy as np
arr = np.random.rand(10,5)
arr

(2)生成两个2×2矩阵,并计算矩阵乘积。

import numpy as np
matr1 = np.mat("2 3; 4 5")
matr1

matr2 = np.mat("5 6; 7 8")
matr2

matr1 * matr2

第3章 Matplotlib 数据可视化基础

3.1 掌握绘图基础语法与常用参数

3.1 掌握绘图基础语法与常用参数

3.1.1 掌握pyplot基础语法

3.1.2 设置pyplot的动态rc参数

3.2 分析特征间的关系

3.2 分析特征间的关系

3.2.1 绘制散点图 scatter()

例子1:绘制2000-2017年各季度国民生产总值散点图
例子2:使用不同颜色不同形状的点,绘制2000-2017年各产业各季度国民生产总值散点图

3.2.2 绘制折线图 plot()

例子1:绘制2000-2017年各季度国民生产总值折线图
例子2:使用不同颜色不同形状的点,绘制2000-2017年各产业各季度国民生产总值折线图
3.2.3 任务实现

3.3 分析特征内部数据分布与分散状况

3.3 分析特征内部数据分布与分散状况

3.3.1 绘制直方图 bar()

3.3.2 绘制饼图 pie()

3.3.3 绘制箱线图 boxplot()

3.3.4 任务实现

第3章 课后习题答案

第3章 Matplotlib数据可视化基础
1.选择题
(1)以下关于绘图标准流程说法错误的是( B)。
A.绘制最简单的图形可以不用创建画布
B.添加图例可以在绘制图形之前
C.添加x轴、y轴的标签可以在绘制图形之前
D.修改x轴标签、y轴标签和绘制图形没有先后
(2)下列参数中调整后显示中文的是( C)。
A.lines.linestyle
B.lines.linewidth
C.font.sans-serif
D.axes.unicode_minus
(3)下列代码中绘制散点图的是( A)。
A.plt.scatter(x,y )
B.plt.plot(x,y )
C.plt.legend(‘upper left’)
D.plt.xlabel(‘散点图’)
(4)下列字符串表示 plot 线条颜色、点的形状和类型为红色五角星点短虚线的是( D)。
A.‘bs-’
B.‘go-.’
C.‘r±.’
D.‘r*:’
(5)下列说法正确的是( C)。
A.散点图不能在子图中绘制
B.散点图的x轴刻度必须为数值
C.折线图可以用作查看特征间的趋势关系
D.箱线图可以用来查看特征间的相关关系
2.操作题
(1)读取鸢尾花数据集,使用循环和子图绘制各个特征之间的散点图。

import numpy as  np
import matplotlib.pyplot as plt
%matplotlib inline
iris = np.load('../data/iris.npz', allow_pickle=True)['data'][:,:-1]
name = np.load('../data/iris.npz', allow_pickle=True)['features_name']

plt.rcParams['font.sans-serif'] = 'SimHei'
p = plt.figure(figsize=(16,16)) ##设置画布
plt.title('iris散点图矩阵')
for i in range(4):
    for j in range(4):
        p.add_subplot(4,4,(i*4)+(j+1))
        plt.scatter(iris[:,i],iris[:,j])## 绘制散点图
        plt.xlabel(name[i])
        plt.ylabel(name[j])

plt.show()

(2)绘制各个特征的箱线图,查看是否存在异常值。

import numpy as np
import matplotlib.pyplot as plt
data = np.random.normal(size =100 , loc = 0 , scale = 1)
plt.boxplot(data , sym='o' , whis=0.05)
print(data)
plt.show()

第4章 pandas统计分析基础

4.1 读写不同数据源的数据

4.1读写不同数据源的数据

4.1.1 读写数据库数据

4.1.2 读写文本文件

4.1.3 读写Excel文件

4.2 掌握DataFrame的常用操作

4.2 掌握DataFrame的常用操作

4.2.1 查看DataFrame的常用属性

4.2.2 查改增删DataFrame数据

4.2.3 描述分析DataFrame数据

4.2.4 任务实现
1、查看数据的维度、形状、元素的个数
2、统计
3、剔除空值或者所有元素取值相同的列

4.3 转换与处理时间数据

4.3 转换与处理时间数据

4.3.1 转换字符串时间为标准时间

4.3.2 提取时间序列数据信息

4.3.3 加减时间数据

4.3.4 任务实现

4.4 使用分组聚合进行组内计算

4.4 使用分组聚合进行组内计算

4.4.1 使用groupby方法拆分数据

4.4.2 使用agg方法聚合数据

4.4.3使用apply方法聚合数据

4.4.4 使用transform方法聚合数据

4.4.5 任务实现

4.5 创建透视表与交叉表

4.5 创建透视表与交叉表

4.5.1利用pivot_table函数可以实现透视表

4.5.2 使用crosstab函数创建交叉表

4.5.3 任务实现

第4章 课后习题答案

第4章 pandas统计分析基础
1.选择题
(1)下列关于pandas数据读/写说法错误的是(A)。
A.read_csv能够读取所有文本文档的数据
B.read_sql能够读取数据库的数据
C.to_csv函数能够将结构化数据写入.csv文件
D.to_excel函数能够将结构化数据写入Excel文件
(2)下列loc、iloc、ix属性的用法正确的是(D)。
A.df.loc[‘列名’,‘索引名’];df.iloc[‘索引位置’,‘列位置’];df.ix[‘索引位置’,‘列名’]
B.df.loc[‘索引名’,‘列名’];df.iloc[‘索引位置’,‘列名’];df.ix[‘索引位置’,‘列名’]
C.df.loc[‘索引名’,‘列名’];df.iloc[‘索引位置’,‘列名’];df.ix[‘索引名’,‘列位置’]
D.df.loc[‘索引名’,‘列名’];df.iloc[‘索引位置’,‘列位置’];df.ix[‘索引位置’,‘列位置’]
(3)下列关于时间相关类错误的是(D)。
A.Timestamp是存放某个时间点的类
B.Period是存放某个时间段的类
C.Timestamp数据可以使用标准的时间字符串转换得来
D.两个数值上相同的Period和Timestamp所代表的意义相同
(4)下列关于groupby方法说法正确的是(C)。
A.groupby能够实现分组聚合
B.groupby方法的结果能够直接查看
C.groupby是pandas提供的一个用来分组的方法
D.groupby方法是pandas提供的一个用来聚合的方法
(5)下列关于apply方法说法正确的是(D)。
A.apply方法是对DataFrame每一个元素应用某个函数的
B.apply方法能够实现所有aggregate方法的功能
C.apply方法和map方法都能够进行聚合操作
D.apply方法只能够对行列进行操作
(6)下列关于分组聚合的说法错误的是(A)。
A.pandas提供的分组和聚合函数分别只有一个
B.pandas分组聚合能够实现组内标准化
C.pandas聚合时能够使用agg、apply、transform方法
D.pandas分组函数只有一个groupby
(7)使用pivot_table函数制作透视表用下列(A )参数设置行分组键。
A.index
B.raw
C.values
D.data
(8)使用其本身可以达到数据透视功能的函数是( D)。
A.groupby
B.transform
C.crosstab
D.pivot_table
2.操作题读取mtcars数据集并实现以下操作。
(1)查看mtcars数据集的维度、大小等信息。

import pandas as pd
mtcars = pd.read_csv('../data/mtcars.csv')
print('mtcars的维度为:',mtcars.ndim)
print('mtcars的大小为:',mtcars.shape)

(2)使用describe方法对整个mtcars数据集进行描述性统计。

print('mtcars的描述性统计为:',mtcars.describe())

(3)计算不同cyl(汽缸数)、carb(化油器)对应的mpg(油耗)和hp(马力)的均值。

data = mtcars.loc[:,['cyl','carb','mpg','hp']]
mpgHp = data.groupby(['cyl','carb']).mean()
print('不同cyl(汽缸数),carb(化油器)对应的mpg(油耗)和hp(马力)的均值为:',mpgHp)

第5章 使用pandas进行数据预处理

5.1 合并数据

5.1 合并数据

5.1.1 堆叠合并数据

1、横向堆叠 concat()
2、纵向堆叠 concat()和append()

5.1.2 主键合并数据 merge()和join()

5.1.3 重叠合并数据 combine_first()

5.2 清洗数据

5.2 清洗数据

5.2.1 检测与处理重复值

1、记录重复 drop_duplicates()
2、特征重复 equals()

5.2.2 检测与处理缺失值 isnull()、notnull()

1、 删除法 dropna()
2、替换法 fillna()
3、 插值法

5.2.3 检测与处理异常值

1、3σ原则
2、箱线图

5.2.4 任务实现(wei)

5.3 标准化数据

5.3 标准化数据

5.3.1 离差标准化

5.3.2 标准差标准化数据

5.3.3 小数定标标准化数据

5.4 转换数据

5.4 转换数据

5.4.1 哑变量处理类别型数据

5.4.2 离散化连续型数据

1、等宽法
2、等频法
3、聚类分析法

第5章 课后习题

第5章 使用pandas进行数据预处理
1.选择题
(1)数据质量包含的要素有(D)。
A.准确性、完整性
B.一致性、可解释性
C.时效性、可信性
D.以上所有要素
(2)以下关于数据分析预处理的过程描述正确的是(C)。
A.数据清洗包含了数据标准化、数据合并和缺失值处理
B.数据合并按照合并轴方向主要分为左连接、右连接、内连接和外连接
C.数据分析的预处理过程主要包括数据清洗、数据合并、数据标准化和数据转换,它们之间存在交叉,没有严格的先后关系
D.数据标准化的主要对象是类别型的特征
(3)有一份数据,需要查看数据的类型,并将部分数据做强制类型转换,以及对数值型数据做基本的描述性分析。下列的步骤和方法正确的是( A)。
A.dtypes查看类型,astype转换类别,describe描述性统计
B.astype查看类型,dtypes转换类别,describe描述性统计
C.describe查看类型,astype转换类别,dtypes描述性统计
D.dtypes查看类型,describe转换类别,astype描述性统计
(4)下列关于concat函数、append方法、merge函数和join方法的说法正确的是(D)。
A.concat是最常用的主键合并的函数,能够实现内连接和外连接
B.append方法只能用来做纵向堆叠,适用于所有纵向堆叠情况
C.merge是最常用的主键合并的函数,但不能够实现左连接和右连接
D.join是常用的主键合并方法之一,但不能够实现左连接和右连接
(5)以下关于drop_duplicates函数的说法中错误的是(B)。
A.仅对DataFrame和Series类型的数据有效
B.仅支持单一特征的数据去重
C.数据重复时默认保留第一个数据
D.该函数不会改变原始数据排列
(6)以下关于缺失值检测的说法中,正确的是(B)。
A.null和notnull可以对缺失值进行处理
B.dropna方法既可以删除观测记录,亦可以删除特征
C.fillna方法中用来替换缺失值的值只能是数据框
D.pandas库中的interpolate模块包含了多种插值方法
(7)以下关于异常值检测的说法中错误的是(B)。
A.3σ原则利用了统计学中小概率事件的原理
B.使用箱线图方法时要求数据服从或近似服从正态分布
C.基于聚类的方法可以进行离群点检测
D.基于分类的方法可以进行离群点检测
(8)下列与标准化方法有关的说法中错误的是(A)。
A.离差标准化简单易懂,对最大值和最小值敏感度不高
B.标准差标准化是最常用的标准化方法,又名零—均值标准化
C.小数定标标准化实质上就是将数据按照一定的比例缩小
D.多个特征的数据的K-Means聚类不需要对数据进行标准化
(9)关于标准差标准化,下列说法中错误的是(B)。
A.经过该方法处理后的数据均值为0,标准差为1
B.可能会改变数据的分布情况
C.Python中可自定义该方法实现函数:
def StandardScaler(data):
  data=(data-data.mean())/data.std()
  return data
D.计算公式为
(10)以下关于pandas数据预处理说法正确的是(D)。
A.pandas没有做哑变量的函数
B.在不导入其他库的情况下,仅仅使用pandas就可实现聚类分析离散化
C.pandas可以实现所有的数据预处理操作
D.cut函数默认情况下做的是等宽法离散化
2.操作题
(1)使用如下方法规范化数组:200,300,400,600,1 000。
① 令min=0,max=1,进行最小—最大规范化。
② 标准差标准化。
③ 小数定标规范化。

import numpy as np
import pandas as pd
data = [200,300,400,600,1000]
Ser1 = pd.Series(data)

# 最小-最大规范化
def MinMaxScaler(data):
    scaler = (data-data.min())/(data.max()-data.min())
    return scaler
MinMaxScaler(Ser1)

# 标准差标准化
def StandardScaler(data):
    data=(data-data.mean())/data.std()
    return data
StandardScaler(Ser1)

# 小数定标规范化
def DecimalScaler(data):
    data=data/10**np.ceil(np.log10(data.abs().max()))
    return data
DecimalScaler(Ser1)

(2)假设12个销售价格记录已经排序:5,10,11,13,15,35,50,55,72,92, 204,215。使用等宽法对其进行离散化处理。

price = np.array([5,10,11,13,15,35,50,55,72,92,204,215])
Ser2 = pd.Series(price)
pd.cut(Ser2,3)

(3)自定义一个能够自动实现数据去重、缺失值中位数填补的函数。

def PreProcessing(data):
    data.drop_duplicate(inplace = True)
    data.fillna(data.median(),inplace = True)
    return(data)

第6章 使用sklearn构建模型

6.1 使用sklearn转换器处理数据

6.1 使用sklearn转换器处理数据

6.1.1 使用sklearn转换器处理数据

6.1.2 将数据集划分为训练集和测试集

6.1.3 使用sklearn转换器进行数据预处理与降维

1、数据预处理
2、PCA降维算法

6.2 构建并评价聚类模型

6.2 构建并评价聚类模型

6.2.1 使用sklearn估计器构建聚类模型

1、聚类的概念
2、常见聚类方法
3、使用sklearn估计器构建聚类模型
4、sklearn估计器
代码:构建K-Means聚类模型

6.2.2 评价聚类模型

1、FMI评价法
2、轮廓系数评价法
3、Calinski-Harabasz指数评价法

6.3 构建并评价分类模型

6.3 构建并评价分类模型

6.3.1 使用sklearn估计器构建分类模型

1、使用sklearn估计器构建SVM模型
2、分类结果的混淆矩阵与准确率
代码

6.3.2 评价分类模型

6.4 构建并评价回归模型

6.4 构建并评价回归模型

6.4.1 使用sklearn估计器构建线性回归模型

6.4.2 评价回归模型

第6章 课后习题

第6章 使用scikit-learn构建模型
1.选择题
(1)下列关于sklearn说法错误的是(B)。
A.sklearn全称为scikit-learn
B.sklearn在官网被分为7个大块
C.sklearn的聚类算法几乎都已经放在cluster模块中了
D.sklearn需要NumPy和SciPy库的支持
(2)下列关于train_test_split函数的说法正确的是(D)。
A.train_test_split能够将数据集划分为训练集、验证集和测试集
B.生成的训练集和测试集在赋值的时候可以调换位置,系统能够自动识别
C.train_test_split每次的划分结果不同,无法解决
D.train_test_split函数可以自行决定训练集和测试集的占比
(3)下列关于sklearn转换器的说法与使用方式错误的是(A)。
A.fit在转换器中起到的作用为训练模型
B.fit在转换器中起到的作用为生成规则
C.transform在转换器中起到的作用为应用规则
D.fit_transform是fit和transform的结合
(4)下列算法中,sklearn中未提及的是(D)。
A.K-Means聚类算法
B.Logistic Regression
C.KNN最近邻分类算法
D.Apriori关联规则算法
(5)下列关于分类算法描述正确的是(C)。
A.分类算法的标签和回归算法完全相同
B.分类算法和聚类算法一样都没有标签
C.分类算法的评价需要参考真实标签
D.分类算法评价可以用均方误差来判断
2.操作题
(1)加载iris数据集,并划分训练集、测试集。

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
data = load_iris()
iris = data['data']
target = data['target']
X_train, X_test, y_train, y_test = train_test_split(iris, target, 
test_size=0.2, random_state=42)

(2)对iris数据集使用PCA降维,目的是把现有的4维数据减少到3维,这样处理可以减少数据维度,保留各数据的主要特征。要求是使用 PCA 构造函数,用 n_components参数指定鸢尾花的维度为3。

from sklearn.decomposition import PCA
from sklearn.preprocessing import MinMaxScaler
Scaler = MinMaxScaler().fit(X_train) ##生成规则
X_trainScaler = Scaler.transform(X_train) ##将规则应用于训练集
X_testScaler = Scaler.transform(X_test) ##将规则应用于测试集
pca_model = PCA(n_components=3).fit(X_trainScaler) ##生成规则
X_trainPca = pca_model.transform(X_trainScaler) ##将规则应用于训练集
X_testPca = pca_model.transform(X_testScaler) ##将规则应用于测试集

(3)使用SVM对iris数据集进行分类,并评价。

from sklearn.svm import SVC
from sklearn.metrics import classification_report
svm = SVC().fit(X_trainPca,y_train)
print('建立的SVM模型为:\n',svm)
y_pred = svm.predict(X_testPca)
print('使用SVM预测iris数据的结果分析报告为:',classification_report(y_test,y_pred))

答案来源:https://blog.csdn.net/weixin_43139128/article/details/118438796
课后习题答案来源

第7章 航空公司客户价值分析-分类

第7章 航空公司客户价值分析

第8章 财政收入预测分析-回归

第8章 财政收入预测分析

第9章 家用热水器用户行为分析与事件识别-BP神经网络

第9章 家用热水器用户行为分析与事件识别

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
社会演员多的头像社会演员多普通用户
上一篇 2023年11月7日
下一篇 2023年11月7日

相关推荐