分别使用线性回归,岭回归,KNN,以及ExtraTrees回归进行分析
from sklearn.linear_model import LinearRegression,Ridge
from sklearn.neighbors import KNeighborsRegressor
from sklearn.ensemble import ExtraTreesRegressor
import sklearn.datasets as datasets
from sklearn.model_selection import train_test_split
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
faces = datasets.fetch_olivetti_faces() # 人脸数据fetch_olivetti_faces
data = faces.data # (400, 4096)
# 对data数据进行拆分,拆分成上半部分脸(训练样本集)和下半部分脸(目标值)
face_up = data[:, :2048] # (400, 2048)
face_down = data[:, 2048:]
X_train,X_test,y_train,y_test = train_test_split(face_up, face_down, test_size = 0.02)
# 创建机器学习模型,以字典的形式包含四种模型
estimators = {"linear":LinearRegression(),
"ridge":Ridge(alpha = 0),
"knn":KNeighborsRegressor(),
"e