import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression,Ridge,Lasso
from sklearn.neighbors import KNeighborsRegressor
from sklearn.ensemble import ExtraTreesRegressor
from sklearn.datasets import fetch_olivetti_faces
faces=fetch_olivetti_faces()
data=faces['data']
target=faces['target']
#data.shape
#人脸补全
#人脸数据一分为二,上半部分作为数据,下半部分作为target
face_up,face_down=data[:,:2048],data[:,2048:]
from sklearn.model_selection import train_test_split
x_train,x_test,y_train,y_test=train_test_split(face_up,face_down,test_size=0.1) #5个算法分别识别
estimators={'knn':KNeighborsRegressor(),
'LinearRe':LinearRegression(),
'Ridge':Ridge(alpha=0.1),
'Lasso':Lasso(alpha=0.5),
'ExtraTree':ExtraTreesRegressor()} #face_down[2048]
result_ = {} for key,estimator in estimators.items():
estimator.fit(x_train,y_train)
y_ = estimator.predict(x_test)
result_[key] = y_
plt.figure(figsize=(2*6,10*2))
for i in range(10):
if i :
axes=plt.subplot(10,6,i*6+1)
else:
axes=plt.subplot(10,6,1,title='True Face')
axes.axis('off') face_up=x_test[i]
face_down=y_test[i]
face_full=np.hstack((face_up,face_down))
face_image=face_full.reshape((64,64))
axes.imshow(face_image,cmap='gray') for j,key in enumerate(result_):
if i :
axes=plt.subplot(10,6,i*6+2+j)
else: axes=plt.subplot(10,6,2+j,title=key)
face_up=x_test[i]
y_=result_[key]
face_down_predict=y_[i]
face_full_predict=np.hstack((face_up,face_down_predict))
face_image_predict=face_full_predict.reshape((64,64))
axes.imshow(face_image_predict,cmap='gray')

基于python机器学习人脸自动补全的更多相关文章

  1. Python建立Tab自动补全的脚本

    Python建立Tab自动补全的脚本 #!/usr/bin/python #python steup file import sys import readline import rlcomplete ...

  2. Windows 下python的tab自动补全

    方法一:安装一个ipython就OK啦,而且关键字还能高亮显示呢 一.打开cmd,输入pip3 install ipython联网安装 二.安装成功后,cmd里运行ipython,成功啦. 方法二:写 ...

  3. Python - pycharm 代码自动补全

    有很多人说是代码补全功能未打开,的确,代码补全功能确实要打开才能用,打开方法 file---->power save mode,把这个前面的√号去掉即可

  4. python的tab自动补全

    vi tab.py #!/usr/bin/env python # python startup file import sys import readline import rlcompleter ...

  5. Python配置tab自动补全功能

    # cat tab.py #!/usr/bin/python # python tab file import sys import readline import rlcompleter impor ...

  6. windows下Python shell代码自动补全

    Unix下实现如题功能用下面的代码: import rlcompleter, readline readline.parse_and_bind('tab: complete') 但readline不能 ...

  7. python机器学习实现人脸图片自动补全

    人脸自动补全 关注公众号"轻松学编程"了解更多. 1.导包 import matplotlib.pyplot as plt import numpy as np import pa ...

  8. 基于linux vim环境python代码自动补全

    (一)简述 在使用vim编写python文件的过程中,默认的vim不会实现代码补全功能,在写程序或者是改程序的时候不是很方面,很容易出错,但是vim提供了各种插件,其中包括这个python文件的自动补 ...

  9. python代码自动补全

    牛逼了!Python代码补全利器,提高效率告别996! Python之禅 Python之禅 微信号 VTtalk 功能介绍 人生苦短,我用Python,这里是一名老程序员分享Python技术的地方,欢 ...

随机推荐

  1. selenium+requests访问微博

    import requests from selenium import webdriver from selenium.webdriver.support import expected_condi ...

  2. redis新手入门,摸不着头脑可以看看<二>

    对<Redis开发与运维>的理解--下文中引号部分来自该书,略有修改 P19.  Redis有序集合(图2-1) "Redis有序集合和集合一样也是某种类型元素的集合,不重复.不 ...

  3. python学习:匿名函数

    Python 函数 lambda   匿名函数 -lambda 函数是一种快速定义单行的最小函数,可以用在任何需要函数的地方.   def fun(x,y):        return x*y fu ...

  4. php实现301跳转

    php实现301跳转代码 <?php Header("HTTP/1.1 301 Moved Permanently"); Header("Location: htt ...

  5. 洛谷 P2622 关灯问题II【状压DP;隐式图搜索】

    题目描述 现有n盏灯,以及m个按钮.每个按钮可以同时控制这n盏灯--按下了第i个按钮,对于所有的灯都有一个效果.按下i按钮对于第j盏灯,是下面3中效果之一:如果a[i][j]为1,那么当这盏灯开了的时 ...

  6. bzoj 2073 暴力

    2073: [POI2004]PRZ Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 442  Solved: 327[Submit][Status][D ...

  7. iOS视频直播

    视频直播技术点 视频直播,可以分为 采集,前处理,编码,传输, 服务器处理,解码,渲染 采集: iOS系统因为软硬件种类不多, 硬件适配性比较好, 所以比较简单. 而Android端市面上机型众多, ...

  8. Win10 部署 依赖 NET3.5 项目,报错 无法安装 NET3.5 ,该如何解决?

    下载 NetFx3.cab Cab 安装包 拷贝 NetFx3.cab 文件至 C:\Windows 目录 打开命令行窗口(管理员权限) 输入以下内容: dism /online /Enable-Fe ...

  9. C. Polycarp at the Radio

    这题题意不太好理解,但是可以通过样例推.主要考察思维的全面性,注意把b[m]特殊处理下. AC代码: #include<cstdio> #include<cstring> co ...

  10. tox环境安装

    ubuntu 下安装tox环境 1.apt-get install pip 2.pip install tox 3.git git clone https://github.com/openstack ...