1. 机器学习 明白一些基本概念
什么是机器学习
研究如何通过计算的手段,利用经验来改善系统自身的性能
通俗来讲,让代码学着干活
特征:自变量
标签:因变量
学习的种类
有监督学习:提供标签,分类、回归
无监督学习:无标签,聚类
增强学习:也称强化学习,马尔科夫决策过程(Markov Decision Processes,MDP)
主动学习:边学习边标注
迁移学习:从一个域(Domain)迁移(Transfer)到另一个域
集成学习:Ensemble,三个臭皮匠赛个诸葛亮,Boosting和Bagging
两大痛点
维度灾难:数据量和特征数
过拟合:模型泛化能力
学习的流程
预处理:数据重塑、缺失值处理(补全、统计为缺失特征)
特征工程:特征没做好,参数调到老。在已有的特征上生成新的特征,数值、类别
特征选择、降维:基于MIC、Pearson相关系数、正则化方法、模型,PCA、tSNE
训练模型、调参:单模型,多模型融合,集成
评估模型:正确率(Acurracy)、准确值(Pecision)、召回值(Recall)、F值、AUC
代码实现
你需要的都在这里:http://scikit-learn.org/
用机器学习来赌香港赛马
https://www.zhihu.com/question/35131866/answer/152880313
https://www.kaggle.com/lantanacamara/hong-kong-horse-racing
2. 机器学习 常用经典模型及其实现
常用经典模型
1.线性回归:有监督回归,y=WX+b,X为m维向量,y、b为n维向量,W为n*m维矩阵
2.Logistic回归:有监督回归,y=logit(WX+b)
3.贝叶斯:有监督分类,最可能的分类是概率最大的分类
4.k近邻:有监督分类,kNN,距离的定义
5.决策树:有监督分类,树形判断分支,非线形边界,+集成=随机森林
6.支持向量机:有监督分类,将原空间变换到另一空间,在新空间里寻找margin最大的分界面(hyperplane)
7.k-means:无监督聚类,初始化中心,不断迭代,EM算法
8.神经网络:有监督和无监督都有,详情参见下一章,深度学习
实现之前的准备
安装scikit-learn:http://scikit-learn.org/
sklearn、numpy
>>> from sklearn import svm
>>> X = [[0, 0], [1, 1]]
>>> y = [0, 1]
>>> clf = svm.SVC()
>>> clf.fit(X, y)
SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,
decision_function_shape=None, degree=3, gamma='auto', kernel='rbf',
max_iter=-1, probability=False, random_state=None, shrinking=True,
tol=0.001, verbose=False)
>>> clf.predict([[2., 2.]])
array([1])
一个简单的例子:http://scikit-learn.org/stable/auto_examples/svm/plot_iris.html#sphx-glr-auto-examples-svm-plot-iris-py