使用Python来学习算法的话,首先在Python基础上还是要打好的,比如说变量及其运算、循环、函数和面向对象、线性数据结构等。先掌握理论,然后针对各个算法,去进行相应的练习。大致对算法做个分类,包括:
回归算法
普通最小二乘法 Ordinary Least Squares
逻辑回归 Logistic Regression
逐步回归 Stepwise Regression
多元自适应回归 MARS
局部散点平滑估计 LOESS
基于实例的方法
k最邻近算法 k-Nearest Neighbour ,kNN
学习矢量量化 Learning Vector Quantization ,LVQ
自组织映射 Self-Organizing Map ,SOM
局部加权学习 Locally Weighted Learning ,LWL
正则化方法
岭回归数值计算方法 Ridge Regression
至少绝对的收缩和选择算子 LASSO
弹性网络 Elastic Net
决策树算法
分类回归树 Classification and Regression Tree ,CART
迭代二叉树3代 Iterative Dichotomiser 3 ,ID3
卡方自动交互检测 CHAID
多元自适应回归样条 MARS
梯度推进机 Gradient Boosting Machines ,GBM
单层决策树 Decision Stump
贝叶斯方法
朴素贝叶斯 Naive Bayes
平均单依赖估计 AODE
贝叶斯置信网络 Bayesian Belief Network ,BBN
内核方法
支持向量机 Support Vector Machines ,SVM
径向基函数 Radial Basis Function ,RBF
线性鉴别分析 Linear Discriminate Analysis ,LDA
聚类算法
k-Means聚类方法
期望最大化算法 Expectation Maximisation ,EM
关联规则学习
Apriori 算法
Eclat 算法
人工神经网络
感知器神经网络 Perceptron
反向传播 Back-Propagation
霍普菲尔网络 Hopfield Network
自组织映射 Self-Organizing Map ,SOM
学习矢量量化 Learning Vector Quantization ,LVQ
深度学习
受限波尔兹曼机 Restricted Boltzmann Machine ,RBM
深度置信网络 Deep Belief Networks ,DBN
卷积神经网络 Convolutional Neural Network,CNN
堆栈式自动编码器 Stacked Auto-encoders
降维方法
主成分分析 Principal Component Analysis ,PCA
偏最小二乘回归 Partial Least Squares Regression ,PLS
萨蒙映射 Sammon Mapping
多维尺度 Multidimensional Scaling ,MDS
投影寻踪 Projection Pursuit
模型融合算法
Boosting/AdaBoost
自展输入引导式聚合 Bootstrapped Aggregation
堆栈泛化 Stacked Generalization
梯度Boosting机器 Gradient Boosting Machines ,GBM
随机森林 Random Forest
一般来说,行业主流用到比较多,一定要着重掌握的,建议至少掌握:
线性回归、逻辑回归、决策树、SVM算法、朴素贝叶斯算法、KNN算法、K平均数算法、随机森林算法、降维算法、Gradient Boost 和 Adaboost 算法。