學習自b站python人工智慧教程:機器學習(精華版)
這裡使用的是sklearn中自帶的資料集,值得注意的是部分可能會由於https協議證書的問題造成資料引入失敗,這裡要加入**
可以完美解決。
本章的主要目的是比較不同演算法的擬合效果。
#全體,總效果,全套服裝,全套家具,合奏組
#對於資料的**會更加精準(資料並不是全部精確的線性回歸)
from sklearn.ensemble import extratreesregressor
import sklearn.datasets as datasets
import matplotlib.pyplot as plt
faces = datasets.fetch_olivetti_faces()
data = faces.data
images = faces.images
print(data.shape,images.shape)
plt.imshow(images[1],cmap = 'gray')
#data 和是一一對應的
plt.imshow(data[1].reshape((64,64)),cmap = 'gray')
#生成訓練資料和測試資料
#人臉資料,分成上半部分和下半部分
train = data[faces.target<30]#300個人臉 上半部分和下半部分
test = data[faces.target>=30]#100張完整的人臉
x_train = train[:,:2048]
y_train = train[:,2048:]
face_upper=x_train[1].reshape(32,64)
plt.figure(figsize = (2,2.4))#顯示尺寸
plt.imshow(face_upper,cmap='gray')
#**資料分割
x_test = test[:,:2048]
y_test = test[:,2048:]
estor =
#使用模型訓練資料並且**
#儲存**資料
y_predicts = dict()
for key,estor in estor.items():
#第一步對模型進行訓練
estor.fit(x_train,y_train)
#訓練模型,進行**
#y_ = estor.predict(x_test)
y_predicts[key] = y_
print(y_)
#隨機選出五個資料進行展示
face_ids = np.random.randint(0,100,size = 5)
plt.figure(figsize = (6*2,5*2.4))
for i in range(5):
#繪製第一列 true face
#test中的真臉資料
if i:
axes = plt.subplot(5,6,i*6+1)
else:
axes = plt.subplot(5,6,i*6+1,title = 'true face')
#繪製正臉資料
axes.imshow(test[face_ids[i]].reshape(64,64),cmap = 'gray')
#繪製第二列的資料
if i:
axes = plt.subplot(5,6,i*6+2)
else:
axes = plt.subplot(5,6,i*6+2,title = 'half face')
axes.imshow(x_test[face_ids[i]].reshape(32,64),cmap = 'gray')
#繪製的資料,**的資料
for j,key in enumerate(y_predicts):
if i :
axes = plt.subplot(5,6,i*6+(j+3))
else:
axes = plt.subplot(5,6,i*6+(j+3),title = key)
face_upper = x_test[face_ids[i]]
y_ = y_predicts[key]
face_lower = y_[face_ids[i]]
comp_face = np.hstack((face_upper,face_lower)).reshape((64,64))
axes.imshow(comp_face,cmap = 'gray')
效果圖
機器學習 opencv 人臉識別
鑑於本人的工作環境主要是採用python作為開發工具,故本篇部落格是基於python來做的學習記錄。1.讀取,將其轉換為陣列 from matplotlib import pyplot as pyl import cv2 import numpy img cv2.imread cat.jpg img...
python機器學習 實現簡單的人臉識別
import cv2 cap cv2.videocapture 0 使用攝像頭 設定人臉分類器 haarcasecades classfier cv2.cascadeclassifier d python selenium anaconda3 pkgs libopencv 3.4.2 h20b85f...
學習opencv 人臉識別
在opencv中提供了許多成熟的介面,其中乙個就是人臉識別,先看看效果圖。可以看出用opencv自帶的樣本就能很方便的識別出人臉。opencv有已經自帶了人臉的haar特徵分類器。在目錄 opencv sources data haarcascades 下面。可以看出裡面還有很多分類器,識別左耳 右...