google 机器学习复习及重点笔记(一)

1、学习速率

学习步长,控制损失函数负梯度->0的移动速度,要根据损失函数的平坦程度来确定。一般凸性较大,每迭代一次梯度下降程度较大,梯度学习速率适宜较小;反之,学习速率选择较大。

一维空间中的理想学习速率是 1f(x)″(f(x) 对 x 的二阶导数的倒数)。

二维或多维空间中的理想学习速率是海森矩阵(由二阶偏导数组成的矩阵)的倒数。

广义凸函数的情况则更为复杂。

2、降低损失:随机梯度下降

损失函数梯度迭代过程中,需要选择适量样本参与计算。随机梯度下降法 (SGD) 每次迭代只使用一个样本(批量大小为 1)。如果进行足够的迭代,SGD 也可以发挥作用,但过程会非常杂乱。“随机”这一术语表示构成各个批量的一个样本都是随机选择的。

小批量随机梯度下降法小批量 SGD)是介于全批量迭代与 SGD 之间的折衷方案。小批量通常包含 10-1000 个随机选择的样本。小批量 SGD 可以减少 SGD 中的杂乱样本数量,但仍然比全批量更高效。

3、tensorflow

(1)tensorf安装,python3.5

pip install –upgrade –ignore-installedhttps://ci.tensorflow.org/view/Nightly/job/nightly-win/DEVICE=cpu,OS=windows/lastSuccessfulBuild/artifact/cmake_build/tf_python/dist/tensorflow-1.0.1-cp35-cp35m-win_amd64.whl

4、机器学习前提:

(1)从分布中随机抽取独立同分布(i.i.d)的样本,样本之间不会相互影响。

(2)数据分布是平稳的:分布不会随时间发生变化

(3)始终从同一分布中抽取样本:包括训练集、验证集合测试集

实践中会违反假设,但应尽量保证数据的的平稳性,否则会失去对新数据进行预测的重要理论保证。

5、特征工程

(1)特征值为字符型,可采取one-hot编码,转换为[0,0,0,1,,0,...,0]

(2)机器学习将每个分类特征表示为单独的布尔值,0或1,而不编码为枚举类型或表示不同值的整数离散集。例如,卡车,摩托,跑车,不编码为1,2,3,而是将卡车作为一个特征,则有[1,0,0]。与one-hot编码不同的是,某一对象可能隶属多个类别。

(3)异常值,例如缺失值的特征,可填充为不同于正常范围内的负值,-1区别于[0,1],称之为神奇值。也可以为类特征,生成一个对应的布尔类型的特征,is_feature_null,用以分析该特征缺失是否对模型具有显著影响。

(4)特征定义的不稳定性。例如城市名称可能发生改变,可以采用old_city/new_city:23,以降低特征收集的推理模型的代价,但是在应用过程中,特征值易改变。

(5)特征值分箱,转为离散型特征,即特征值为字符型,同(1)处理。如果分箱时,按照聚类情况分箱,得到的特征为分类特征,可同(2)处理。按分位数分箱,异常值不对特征存在影响,因为每个桶内的样本数相同。

(6)数据清理

  • 遗漏值。 例如,有人忘记为某个房屋的年龄输入值。
  • 重复样本。 例如,服务器错误地将同一条记录上传了两次。
  • 不良标签。 例如,有人错误地将一颗橡树的图片标记为枫树。
  • 不良特征值。 例如,有人输入了多余的位数,或者温度计被遗落在太阳底下。

一旦检测到存在这些问题,您通常需要将相应样本从数据集中移除,从而“修正”不良样本。要检测遗漏值或重复样本,您可以编写一个简单的程序。检测不良特征值或标签可能会比较棘手。可以数据的最值、均值,标准差作为参考,分析数据的质量。

(7)特征组合

可采用特征交叉生成,即简单的特征二元乘积作为新的组合特征。组合特征应该具有可解释性,任意组合可能会造成模型的不可解释。在使用扩展的线性模型时辅以特征组合一直都是训练大规模数据集的有效方法。

6、正则化

特征工程是为了挖掘合理的数据表征特征,以期用高质量的数据降低模型的经验风险。一般而言,针对特定数据,模型的复杂度与对数据的拟合程度成正比,为防止过拟合,可采用正则化降低模型的复杂度

两种衡量模型复杂度的常见方式

  • 将模型复杂度作为模型中所有特征的权重的函数。
  • 将模型复杂度作为具有非零权重的特征总数的函数












你可能感兴趣的:(python,Machine,Learning)