机器学习:scikit-learn 做笑脸识别 (SVM, KNN, Logisitc regression)
来源:互联网 发布:linux运行中结束进程 编辑:程序博客网 时间:2024/05/16 08:58
scikit-learn 是 Python 非常强大的一个做机器学习的包,今天介绍scikit-learn 里几个常用的分类器
SVM, KNN 和 logistic regression,用来做笑脸识别。
这里用到的是GENKI4K 这个数据库,每张图像先做一个人脸检测与剪切,然后提取HOG特征。这个数据库有 4000 张图,分成4组,做一个 cross validation,取平均值作为最终的识别率:
import string, os, sysimport numpy as npimport matplotlib.pyplot as pltimport scipy.ioimport randomfrom sklearn import neighbors, linear_model, svmdir = '/GENKI4K/Feature_Data' print '----------- no sub dir' # prepare the datafiles = os.listdir(dir) for f in files: print dir + os.sep + ffile_path=dir+os.sep+files[14]#print file_pathdic_mat = scipy.io.loadmat(file_path)data_mat=dic_mat['Hog_Feat']print 'feature: ', data_mat.shape#print data_mat.dtypefile_path2=dir+os.sep+files[15]#print file_path2dic_label=scipy.io.loadmat(file_path2)label_mat=dic_label['Label']file_path3=dir+os.sep+files[16]print 'fiel 3 path: ', file_path3dic_T=scipy.io.loadmat(file_path3)T=dic_T['T']T=T-1print T.shapelabel=label_mat.ravel()# Acc=np.zeros((1,4))Acc=[0,0,0,0]for i in range (0, 4): print "the fold %d" % (i+1) train_ind=[] for j in range (0, 4): if j==i: test_ind=T[j] else: train_ind.extend(T[j])# print len(test_ind), len(train_ind)# print max(test_ind), max(train_ind) train_x=data_mat[train_ind, :] test_x=data_mat[test_ind, :] train_y=label[train_ind] test_y=label[test_ind]# SVM clf=svm.LinearSVC()# KNN # clf = neighbors.KNeighborsClassifier(n_neighbors=15)# Logistic regression# clf = linear_model.LogisticRegression() clf.fit(train_x, train_y) predict_y=clf.predict(test_x) Acc[i]=np.mean(predict_y == test_y) print "Accuracy: %.2f" % (Acc[i])print "The mean average classification accuracy: %.2f" % (np.mean(Acc))# SVM 的实验结果(4, 1000)the fold 1Accuracy: 0.89the fold 2Accuracy: 0.88the fold 3Accuracy: 0.89the fold 4Accuracy: 0.90The mean average classification accuracy: 0.89# KNN 的实验结果(4, 1000)the fold 1Accuracy: 0.83the fold 2Accuracy: 0.84the fold 3Accuracy: 0.84the fold 4Accuracy: 0.85The mean average classification accuracy: 0.84# logistic regression 的实验结果(4, 1000)the fold 1Accuracy: 0.91the fold 2Accuracy: 0.91the fold 3Accuracy: 0.90the fold 4Accuracy: 0.92The mean average classification accuracy: 0.91
0 0
- 机器学习:scikit-learn 做笑脸识别 (SVM, KNN, Logisitc regression)
- [机器学习篇]基于Scikit learn库中KNN,SVM算法的笔迹识别
- [机器学习篇]基于Scikit learn库中KNN,SVM算法的笔迹识别
- 使用scikit-learn做基本机器学习
- 机器学习实战(一)kNN调用scikit-learn库函数
- 【机器学习系列】scikit-learn中的Linear Regression Example
- python机器学习库scikit-learn: Lasso Regression
- 机器学习: Tensor Flow +CNN 做笑脸识别
- Python/scikit-learn机器学习库(SVM支持向量机)
- scikit-learn svm初探 分类:机器学习 Sklearn
- scikit-learn/KNN手写数字识别
- scikit-learn/logistic regression识别mnist
- scikit-learn 机器学习
- 汉澳sinox2016安装tensorflow,scikit-learn,theano做机器学习
- Scikit-Learn 学习 —— kNN使用
- scikit-learn学习:岭回归,ridge regression
- 机器学习: TensorFlow with MLP 笑脸识别
- 机器学习scikit-learn入门教程
- Http 权威指南
- 前端复习--动画设置原理
- 敌敌_ssl2541_dfs
- mysql基本的语法/语句
- 第九周—统计数字字母空格符号
- 机器学习:scikit-learn 做笑脸识别 (SVM, KNN, Logisitc regression)
- HPROSE for java 过滤器 filter + 重写session
- leetcode No147. Insertion Sort List
- kinect脚本部分翻译/注释
- 原生js代码实现图片放大境效果
- PHP MySQLi 增删改查
- HDU 1503 Advanced Fruits (递推)
- 基于HTTPS的双向认证实现
- laravel 生成验证码的方法