# 1.pandas的基本使用方法

# 导入pandas,并重命名为pd

import pandas as pd

# 使用pandas读取csv文件,载入数据框(DataFrame)

# 文件路径换成自己保存的路径

# 这个数据集是用“;”作为分隔符,需要设置sep参数为“;”,默认情况下是“,”

data = pd.read_csv('C:/Users/Administrator/Desktop/bank/bank.csv',sep = ';')

# 用.head()可以显示数据框的前5行

data.head()

运行结果:

掌握pandas和可视化工具的基本使用方法_pandas

# 查看数据集的描述信息

​data.info​​()

运行结果:

掌握pandas和可视化工具的基本使用方法_Jupyter Notebook_02

# 查看数据集的统计信息

data.describe()

掌握pandas和可视化工具的基本使用方法_Jupyter Notebook_03

# 查看样本婚姻状况的统计信息

data['marital'].describe()

掌握pandas和可视化工具的基本使用方法_pandas_04

# 查看样本婚姻状况中有哪些不同的数值

data['marital'].unique()

掌握pandas和可视化工具的基本使用方法_可视化工具_05

# 2.可视化工具的基本使用方法

# 2.1 使用seaborn绘制直方图

# 使用seaborn需要先导入Matlotlib

import matplotlib.pyplot as plt

# 导入seaborn

import seaborn as sns

# 使用distplot来绘制图形

sns.distplot(data['age'])

# 显示图形

plt.show()

掌握pandas和可视化工具的基本使用方法_数据集_06

# 2.2 使用seaborn绘制计数图

# 使用countplt展示样本婚姻状况分布

sns.countplot(data['marital'])

# 显示图形

plt.show()

掌握pandas和可视化工具的基本使用方法_可视化工具_07

# 2.3 使用seaborn和Matplotlib按组展示多个特征

# 定义一个网格,令网格的列代表婚姻状况

grid = sns.FacetGrid(data,col = 'marital')

# 在网格中绘制样本年龄直方图,步长指定为10

grid.map(plt.hist,'age',bins = 10)

# 显示图片

plt.show()

掌握pandas和可视化工具的基本使用方法_可视化工具_08

# 3.掌握scikit-leran的基本操作

# 3.1 使用scikit-learn加载并检查数据

# 首先从scikit-learn 中导入databases模块

from sklearn import datasets

# 载入手写数字识别数字集

digits = datasets.load_digits()

# 检查载入数据集中的键名

digits.keys()

掌握pandas和可视化工具的基本使用方法_数据集_09

# 检查数据集中DESCR键所对应的值

print(digits.DESCR)

掌握pandas和可视化工具的基本使用方法_数据集_10

# 3.2 使用scikit-learn训练模型并评估(重点)

​# 导入数据集拆分工具

from sklearn.model_selection import train_test_split

# 把数据集中的样本特征赋值给X

x = digits.data

# 把样本的分类标签赋值给y

y = digits.target

# 检查x和y的形态

x.shape,y.shape

掌握pandas和可视化工具的基本使用方法_数据集_11

# 使用train_test_split将x和y拆分为训练集和测试集的特征和标签

# 指定随机种子random_state为42,便于复现

x_train,x_test,y_train,y_test = train_test_split(x,y,random_state = 42)

# 检查训练集和测试集中的样本的形态

x_train.shape,x_test.shape

掌握pandas和可视化工具的基本使用方法_可视化工具_12

# 导入支持向量机

from sklearn import svm

# 使用svm中的svc作为分类器

clf = svm.SVC()

# 使用训练集对模型进行训练

clf.fit(x_train,y_train)

掌握pandas和可视化工具的基本使用方法_可视化工具_13

# 使用clf.score在测试集中评估模型准确率

clf.score(x_test,y_test)

掌握pandas和可视化工具的基本使用方法_可视化工具_14

#3.3 保存和载入训练好的模型文件

#导入pickle模块(可将模型保存为文件,实现模型持久化)

import pickle

# 建立一个名为model.pkl的文件,模式为“写入”

model = open('model.pkl','wb')

# 使用pickle保存模型

pickle.dump(clf,model)

# 关闭model文件

model.close()

运行上述代码后,硬盘和notebook同一个文件夹下多了一个名为"model.pkl"的文件,说明保存成功。

掌握pandas和可视化工具的基本使用方法_Jupyter Notebook_15

当需要调用这个模型文件时,输入

# 以读取的方式打开之前保存好的模型文件

model_file = open('model.pkl','rb')

# 用pickle将打开的文件加载回来

clf2 = pickle.load(model_file)

# 使用加载的模型预测测试集中的最后一个样本

clf2.predict(x_test[-1:])

掌握pandas和可视化工具的基本使用方法_可视化工具_16

模型给出的预测结果是5,也就是说测试集中最后一个手写数字是5.