影像資料集:
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 機器學習資料庫
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/296469.html
標籤:AI
上一篇:學習會員創作者收益說明
