机器学习一些简单笔记

机器学习中的矩阵

机器学习中矩阵是一个很重要的概念,对我们理解其中变量的相关性和相似性,降维等分析具有很大的作用,其中一些概念和数学中的矩阵表示有些不同,在这里说明一些,以便加深理解
  1. 特征
特征在数学的矩阵中标示的这个向量的特征值和特征向量,但是在机器学习中,我们习惯将多个实例的变量用表格的形式来进行综合表述,比如:




























名称 高度cm 重量kg
小红 168 56
小名 200 50
橘子 8 4
香蕉 10 6

在这个表格中,我们将不同的行表示一个向量,每个列就表示成相应的特征,可以看出,不同类型中特征差异会挺大的,对于相似性分析来说有很重要的意义
数据的预处理,均值和归一化
  1. 数据的归一化(其实就是将数据变成正态分布,将不是正态分布的数据正态分布化)
在机器学习和数据分析中,我们需要去掉特征的量纲,好对数据进行比较分析,比如人和牛的身高/体重的对比,没有什么可比性,但是将身高/体重的比例进行对比就是发现不同的身高体重比需要消耗多少能量了
一般我们使用的数据归一化也叫数据标准化,其公式如下
X1= (X-M)/S

M为均值,s为标准差
在python中可以使用sklearn来对数据进行预处理,均值化为0,方差化为1的正态分布曲线
from sklearn import preprocessing import numpy as npdata = https://www.it610.com/article/np.array([[1,2,3],[0,3,4],[5,2,1]]) X = preprocessing.scale(data)

  1. ID3算法
【机器学习一些简单笔记】ID3算法是用来对决策树进行规划选择节点的一种算法,通过选择不同的节点来最小化树的高度,从而进行最小的选择就能实现分类了
熵值的计算:
H(X) = -∑p*log(p)

I(S1, S2) = -p1log(p1) - p2log(p2) 其中p1=S1/S, p2=S2/S

一个分类下的熵的计算为:
G(分类) = I(该分类标签) - E(pi(该分类占的权重)*I(分类结果下的标签))

数据划分
使用sklearn中的cross_validate的train_test_split函数可以简单快速的完成数据集的划分
X_train,x_test,Y_train,y_test = train_test_split(data, label, test_size=0.3)

机器学习等高线 等高线是用来,判断多维图像的变化快慢程度的一种直观形式,一般情况下,等高线图上的高度都是等间隔的,如果一条轮廓线与另一条轮廓线彼此很近,也就是我们可以用很少的横向距离来增加高度,因此证明这个大山很陡峭; 如果一条轮廓线与另一条轮廓线彼此很远,也就是我们要用很长的横向距离来增加高度,因此证明这个大山很平稳。
机器学习算法的归类 监督学习
回归算法 采用对误差的衡量来探索变量之间的区别和联系的一类算法,主要有:最小二乘法(Ordinary Least Square),逻辑回归(Logistic Regression),逐步式回归(Stepwise Regression),多元自适应回归样条(Multivariate Adaptive Regression Splines)以及本地散点平滑估计(Locally Estimated Scatterplot Smoothing)
线性回归
  • 优点
简单,计算快
  • 缺点
不直观
基于实例的算法
基于实例的算法常常用来对决策问题建立模型,这样的模型常常先选取一批样本数据,然后根据某些近似性把新数据与样本数据进行比较。通过这种方式来寻找最佳的匹配。因此,基于实例的算法常常也被称为“赢家通吃”学习或者“基于记忆的学习”。常见的算法包括 k-Nearest Neighbor(KNN), 学习矢量量化(Learning Vector Quantization, LVQ),以及自组织映射算法(Self-Organizing Map , SOM)
正则化算法
正则化方法是其他算法(通常是回归算法)的延伸,根据算法的复杂度对算法进行调整。正则化方法通常对简单模型予以奖励而对复杂算法予以惩罚。常见的算法包括:Ridge Regression, Least Absolute Shrinkage and Selection Operator(LASSO),以及弹性网络(Elastic Net)。
决策树学习
决策树算法根据数据的属性采用树状结构建立决策模型, 决策树模型常常用来解决分类和回归问题。常见的算法包括:分类及回归树(Classification And Regression Tree, CART), ID3 (Iterative Dichotomiser 3), C4.5, Chi-squared Automatic Interaction Detection(CHAID), Decision Stump, 随机森林(Random Forest), 多元自适应回归样条(MARS)以及梯度推进机(Gradient Boosting Machine, GBM)
贝叶斯算法
贝叶斯方法算法是基于贝叶斯定理的一类算法,主要用来解决分类和回归问题。常见算法包括:朴素贝叶斯算法,平均单依赖估计(Averaged One-Dependence Estimators, AODE),以及Bayesian Belief Network(BBN)。
基于核的算法
基于核的算法中最著名的莫过于支持向量机(SVM)了。 基于核的算法把输入数据映射到一个高阶的向量空间, 在这些高阶向量空间里, 有些分类或者回归问题能够更容易的解决。 常见的基于核的算法包括:支持向量机(Support Vector Machine, SVM), 径向基函数(Radial Basis Function ,RBF), 以及线性判别分析(Linear Discriminate Analysis ,LDA)等
聚类算法
聚类,就像回归一样,有时候人们描述的是一类问题,有时候描述的是一类算法。聚类算法通常按照中心点或者分层的方式对输入数据进行归并。所以的聚类算法都试图找到数据的内在结构,以便按照最大的共同点将数据进行归类。常见的聚类算法包括 k-Means算法以及期望最大化算法(Expectation Maximization, EM)。
关联规则学习
关联规则学习通过寻找最能够解释数据变量之间关系的规则,来找出大量多元数据集中有用的关联规则。常见算法包括 Apriori算法和Eclat算法等。
人工神经网络
人工神经网络算法模拟生物神经网络,是一类模式匹配算法。通常用于解决分类和回归问题。人工神经网络是机器学习的一个庞大的分支,有几百种不同的算法。(其中深度学习就是其中的一类算法,我们会单独讨论),重要的人工神经网络算法包括:感知器神经网络(Perceptron Neural Network), 反向传递(Back Propagation), Hopfield网络,自组织映射(Self-Organizing Map, SOM)。学习矢量量化(Learning Vector Quantization, LVQ)
过拟合问题的解决
对于过拟合问题的解决,可以通过下面几种方式来实现: 1. 减少特征变量 2. 使用正则化方式 * 正则化就是对我们的代价函数加上一个λ∑j的系数惩罚,比较加入太多的特征或者是系数太大而导致的过拟合

    推荐阅读