一、Sklearn
Scikit-learn(sklearn)是机器学习中常用的第三方模块,对常用的机器学习方法进行了封装,包括回归(Regression)、降维(Dimensionality Reduction)、分类(Classfication)、聚类(Clustering)等方法。当我们面临机器学习问题时,便可根据下图来选择相应的方法。Sklearn具有以下特点:
- 简单高效的数据挖掘和数据分析工具
- 让每个人能够在复杂环境中重复使用
- 建立NumPy、Scipy、MatPlotLib之上
- 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的行向量。