Python手写识别--Sklearn(一)

一、Sklearn

Scikit-learn(sklearn)是机器学习中常用的第三方模块,对常用的机器学习方法进行了封装,包括回归(Regression)、降维(Dimensionality Reduction)、分类(Classfication)、聚类(Clustering)等方法。当我们面临机器学习问题时,便可根据下图来选择相应的方法。Sklearn具有以下特点:

  1. 简单高效的数据挖掘和数据分析工具
  2. 让每个人能够在复杂环境中重复使用
  3. 建立NumPy、Scipy、MatPlotLib之上
  4. sklearn的基本功能
    主要包括回归、分类、聚类、降维、模型旋转、数据的预处理.

常用的分类模型及其调用方法

分类模型 加载模块
最近临近法 neighbors.NearestNeighbors
支持向量机 svm.SVC
朴素贝叶斯 native_bayes,GaussianNB
决策树 tree.DecisionTreeClassifier
集成方法 ensemble.BaggingClassifier
神经网络 neural_network.MLPClassifier

常用的回归模型及其调用方法

回归模型 加载模块
岭回归 linear_model.Ridge
Lasso回归 linear_model.Lasso
弹性网络 linear_model.ElasticNet
最小角回归 linear_model.Lars
贝叶斯回归 linear_model.BayesianRidge
逻辑回归 linear_model.LogisticRegression
多项式回归 linear_model.PolynomialFeatures

常用的聚类模型及其调用方法

聚类模型 加载模块
K-means cluster.KMeans
AP聚类 cluster.AffinityPropagation
均值漂移 cluster.MeanShift
层次聚类 cluster.AgglomerativeClustering
DBSCAN cluster.DBSCAN
BIRCH cluster.Birch
谱聚类 cluster.SpectralClustering

常用的降维模型及其调用方法

降维模块 加载模块
主成分分析 decomposition.PCA
截断SVD和LSA decomposition.TruncatedSVD
字典学习 decomposition.SparseCoder
因子分析 decomposition.FactorAnalysis
独立成分分析 decomposition.FastICA
非负矩阵分解 decomposition.NMF
LDA decomposition.LatenDirichletAllocation

三、Sklearn通用学习模式

首先引入需要训练的数据,Sklearn自带部分数据集,也可以通过相应方法进行构造。
然后选择相应机器学习方法进行训练,训练过程中可以通过一些技巧调整参数,使得学习准确率更高。
模型训练完成之后便可预测新数据,然后我们还可以通过MatPlotLib等方法来直观的展示数据。
另外还可以将我们已训练好的Model进行保存,方便移动到其他平台,不必重新训练。

四、手写数据集

MNIST是一个非常有名的手写体数字识别数据集,在很多资料中,这个数据集都会被用作深度学习的入门样例。
数据集下载网址:http://yann.lecun.com/exdb/mnist/
数据集简介:
1、共有4数据集,下载之后保存在磁盘中(最好放在你代码执行目录下,方便后期使用。)如新建一个文件夹D:*****\MNIST_data存放数据。
训练集
train-images-idx3-ubyte.gz: training set images (9912422 bytes)
train-labels-idx1-ubyte.gz: training set labels (28881 bytes)
测试集
t10k-images-idx3-ubyte.gz: test set images (1648877 bytes)
t10k-labels-idx1-ubyte.gz: test set labels (4542 bytes)
2、此数据集中,
训练样本:共60000个,其中55000个用于训练,另外5000个用于验证
测试样本:共10000个
28x28x1
3、数据集中像素值
a)使用python读取二进制文件方法读取mnist数据集,则读进来的图像像素值为0-255之间;标签是0-9的数值。
b)采用TensorFlow的封装的函数读取mnist,则读进来的图像像素值为0-1之间;标签是0-1值组成的大小为1*10的行向量。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容