(1)导入邮政编码数据集,输出数据与其中邮政编码的类别; 数据集说明:手写体阿拉伯数字以文本文件格式存储,数据为 16 乘 16 的灰度点阵值,存放在 1 至 256 列上。第 0 列为灰度点阵数据对应的实 际数字。(2)随机选取其中的 25 个数据,完成邮政编码数据的可视化操作; (3)利用 sklearn 中的“train_test_split()”按照 6:4 的比例划 分训练集(X_train,Y_train)与测试集(X_test,Y_test),并记录划分后 训练集与测试集的数量。
时间: 2024-03-20 22:45:34 浏览: 89
好的,下面是针对您提出的问题的代码示例:
1. 导入并输出邮政编码数据集及其类别
```python
import pandas as pd
# 读取数据集
data = pd.read_csv('邮政编码数据集.csv', header=None)
# 输出数据集
print('数据集:')
print(data.head())
# 输出类别
groups = data.groupby(0)
print('类别:')
for name, group in groups:
print('邮政编码', name, '共有', len(group), '个样本')
```
2. 随机选取 25 个数据并可视化
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 读取数据集
data = pd.read_csv('邮政编码数据集.csv', header=None)
# 随机选取 25 个样本
indices = np.random.choice(len(data), size=25, replace=False)
samples = data.iloc[indices, 1:].values.reshape(-1, 16, 16)
# 可视化
fig, axes = plt.subplots(5, 5, figsize=(8, 8))
for i, ax in enumerate(axes.flat):
ax.imshow(samples[i], cmap='gray')
ax.set_xticks([])
ax.set_yticks([])
plt.show()
```
3. 划分训练集和测试集
```python
from sklearn.model_selection import train_test_split
# 读取数据集
data = pd.read_csv('邮政编码数据集.csv', header=None)
# 划分训练集和测试集
X = data.iloc[:, 1:].values
y = data.iloc[:, 0].values
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.4, random_state=42)
# 输出划分后的训练集和测试集数量
print('训练集数量:', len(X_train))
print('测试集数量:', len(X_test))
```
希望这些代码示例能够对您有所帮助。
阅读全文