Finishing Up Persons Using Machine Learning

 3r3119. 3r3-31. This example shows the use of various machine learning algorithms to complete images. The goal is to predict the lower half of the face, given its upper half.
 3r3119.
 3r3119. The first column of images shows real faces. The following columns illustrate how trees (extremely randomized trees), the k-nearest neighbor method (k nearest neighbors /K-nn), linear regression (linear regression) and RidgeCV (ridge regression complete) complete the bottom half of these individuals.
 3r3119. Finishing Up Persons Using Machine Learning  3r3119. 3r311.
 3r3119.
 3r3119.
3r318. # We connect libraries
import numpy as np
import matplotlib.pyplot as plt
3r3119. from sklearn.datasets import fetch_olivetti_faces
from sklearn.utils.validation import check_random_state
3r3119. from sklearn.ensemble import ExtraTreesRegressor
from sklearn.neighbors import KNeighborsRegressor
from sklearn.linear_model import LinearRegression
from sklearn.linear_model import RidgeCV
3r3119. # Load the datasets
data = fetch_olivetti_faces ()
targets = data.target
3r3119. data = data.images.reshape ((len (data.images), -1))
train = data[targets < 30]3r3119. test = data[targets >= 30]# Test on independent people
3r3119. # Test for a subset of people
n_faces = 5
rng = check_random_state (4)
face_ids = rng.randint (test.shape[0], size = (n_faces,))
test = test[face_ids, :]3r3119. 3r3119. n_pixels = data.shape[1]3r3119. # Top half faces
X_train = train[:, :(n_pixels + 1) //2]3r3119. # Lower half of faces
y_train = train[:, n_pixels //2:]3r3119. X_test = test[:, :(n_pixels + 1) //2]3r3119. y_test = test[:, n_pixels //2:]3r3119. 3r3119. # We define methods
ESTIMATORS = {
"Extra trees": ExtraTreesRegressor (n_estimators = 1? max_features = 3?
Random_state = 0),
"K-nn": KNeighborsRegressor (), 3r3119. "Linear regression": LinearRegression (),
"Ridge": RidgeCV (),
}
3r3119. y_test_predict = dict ()
for name, estimator in ESTIMATORS.items ():
estimator.fit (X_train, y_train)
y_test_predict[name]= estimator.predict (X_test)
3r3119. # Visualization
image_shape = (6? 64)
3r3119. n_cols = 1 + len (ESTIMATORS)
plt.figure (figsize = (2. * n_cols, ??? * n_faces))
plt.suptitle ("Completing Images with Various Machine Learning Algorithms," size = 16)
3r3119. for i in range (n_faces):
true_face = np.hstack ((X_test[i], y_test[i]))
3r3119. if i:
sub = plt.subplot (n_faces, n_cols, i * n_cols + 1)
else:
sub = plt.subplot (n_faces, n_cols, i * n_cols + ?
title = "true faces")
3r3119. sub.axis ("off")
sub.imshow (true_face.reshape (image_shape),
cmap = plt.cm.gray,
interpolation = "nearest")
3r3119. for j, est in enumerate (sorted (ESTIMATORS)):
completed_face = np.hstack ((X_test[i], y_test_predict[est] [i]))
3r3119. if i:
sub = plt.subplot (n_faces, n_cols, i * n_cols + 2 + j)
3r3119. else:
sub = plt.subplot (n_faces, n_cols, i * n_cols + 2 + j,
title = est)
3r3119. sub.axis ("off")
sub.imshow (completed_face.reshape (image_shape),
cmap = plt.cm.gray,
interpolation = "nearest")
3r3119. plt.show ()
3r3104. 3r3105.
 3r3119. 3r3108. 3r3115. 3r3119. 3r3119. 3r33112. ! function (e) {function t (t, n) {if (! (n in e)) {for (var r, a = e.document, i = a.scripts, o = i.length; o-- ;) if (-1! == i[o].src.indexOf (t)) {r = i[o]; break} if (! r) {r = a.createElement ("script"), r.type = "text /jаvascript", r.async =! ? r.defer =! ? r.src = t, r.charset = "UTF-8"; var d = function () {var e = a.getElementsByTagName ("script")[0]; e.parentNode.insertBefore (r, e)}; "[object Opera]" == e.opera? a.addEventListener? a.addEventListener ("DOMContentLoaded", d ): d ()}}} t ("//mediator.mail.ru/script/2820404/"""_mediator") () (); 3r3113. 3r3119. 3r3115. 3r3119. 3r3119. 3r3119. 3r3119.
+ 0 -

Add comment