机器学习数据库下载并显示至少一个图像和一个文档数据集

图像数据集:

   Task1:在机器学习库中寻找图像集并下载。

        在寻找的过程中发现网站内的图像集较少,大多为文档集。此处通过百度搜索UCI机器学习数据集,最终找到图像数据集,链接如下。

       http://archive.ics.uci.edu/ml/machine-learning-databases/faces-mld/

        下载其中的压缩包——faces.tar.gz

   Task2: 显示图像数据集

         ① 任意选三个人,每个人取三张照片。将这些照片统一放到一个文件夹中,准备读取。

         ② 但是在程序运行时却无法辨别照片。错误:PIL.UnidentifiedImageError: cannot identify image file 'pictures/at33_left_angry_open.pgm' 。查询资料后,将文件后缀改为txt进行查看,发现该图片原为P2模式的pgm文件,无法用PIL的方式读取。解决无果下决定重新选择图片。

         ③ 通过定位网页中的关键词“图像”,寻找合适的图像集。寻得如下链接:

        http://archive.ics.uci.edu/ml/machine-learning-databases/CorelFeatures-mld/

         ③ 运行代码:

import PIL.Image as Image
import os

#图片拼接(九宫图)
def join_pictures():
    path='pictures/'  
    size=256  #每张小图片的大小
    format=['.jpg']  #图片格式
    n=3
    row=n  #行数
    col=n  #列数
    image_names=[name for name in os.listdir(path) for item in format if
                 os.path.splitext(name)[1] == item]

    # 创建新图
    new_picture=Image.new('RGB',(col*size,row*size))

    # 遍历将旧图贴到对应位置
    for i in range(0,row):
        for j in range(0,col):
            old_picture=Image.open(path+image_names[col*i+j]).resize((size,size),Image.ANTIALIAS)
            new_picture.paste(old_picture,(j*size,i*size))
    return new_picture.save('D:\\ML\\first\\result.jpg')  # 保存新图

join_pictures()

         ④ 结果展示:

         

           在网页中寻找其他图片进行拼接,得到如下九宫格:

          

文档数据集:

    Task1:在机器学习库中寻找文档集并下载。

         文档数据集寻找较为方便。这里选择 Iris Data Set 中的 iris.data 进行下载,修改文件类型为文本文档。链接如下:

         http://archive.ics.uci.edu/ml/machine-learning-databases/iris/

          文件中的数据分别为:

               sepal length in cm              花萼长度,单位cm
sepal width in cm花萼宽度,单位cm
petal length in cm花瓣长度,单位cm
petal width in cm花瓣宽度,单位cm
class

种类: Iris Setosa/

 Iris Versicolour / Iris Virginic

   Task2:展示文档数据集中两两特征之间的关系(部分)

        ① 运行代码:

import pandas as pd
import matplotlib.pyplot as plt

#转化为dataframe格式
iris_data = pd.read_table('iris.txt',header=None,sep=',')
#print(iris_data.shape[0])

#为不同种类iris设置颜色进行区分
Colors = []
for i in range(iris_data.shape[0]):
    m = iris_data.iloc[i,-1]
    if m=='Iris-setosa':
        Colors.append('green')
    elif m=='Iris-versicolor':
        Colors.append('purple')
    elif m=='Iris-virginica':
        Colors.append('red')

#绘图
plt.subplot(1,2,1)
plt.scatter(iris_data.iloc[:,0],iris_data.iloc[:,1],c=Colors,edgecolors='black')
plt.xlabel("sepal length")
plt.ylabel("sepal width")

plt.subplot(1,2,2)
plt.scatter(iris_data.iloc[:,0],iris_data.iloc[:,2],c=Colors,edgecolors='black')
plt.xlabel("sepal length")
plt.ylabel("petal length")

plt.show()

         ② 结果展示:

           通过散点图查看文档数据集中的数据,可以较为清楚地看出数据之间的关联性。

 如:Iris-setosa 的sepal length 集中在(0,6),而petal length 集中在(1,2),当一只iris同时满足这两个条件时,很大可能是属于setosa的品种。

参考资料:

https://blog.csdn.net/ahaotata/article/details/84027000   Python将多张图片进行合并

https://bbs.csdn.net/topics/397511449?list=lz  pd.read_table读取文本文件时的分隔符问题

http://archive.ics.uci.edu/ml/index.php    机器学习数据库

          


  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值