需求:给出上半张人脸,通过算法预测出下半张人脸
1.首先导入必需的包
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
# 构建方程
from sklearn.linear_model import LinearRegression,Ridge,Lasso
# 构建方程???
from sklearn.neighbors import KNeighborsRegressor
from sklearn.tree import DecisionTreeRegressor
from sklearn import datasets
from sklearn.model_selection import train_test_split
2.获取数据(400张人脸)
faces = datasets.fetch_olivetti_faces()
X = faces.data
images = faces.images
y = faces.target
display(X.shape,y.shape,images.shape)
输出结果:
(400, 4096)
(400,)
(400, 64, 64)
3.展示人脸图片
plt.figure(figsize=(2,2))
index = np.random.randint(0,400,size = 1)[0]
img = images[index]
plt.imshow(img,cmap = plt.cm.gray)
4.将X(人脸数据)分成上半张人脸和下半张人脸
# 上半张人脸
X_up =