《机器学习--监督学习》(入门3章)

3.监督学习

3.1.线性回归

我们希望根据房子的居住尺寸来预测房价并得到房价与尺寸之间的线性关系。每个居住尺寸对应一个唯一且给定的住房价格,所以这是一个监督学习问题。我们希望获得居住尺寸和房价两个变量之间的关系,这是个回归问题。由于求取的线性模型,所以得到的是个线性回归问题。

《《机器学习--监督学习》(入门3章)》 房屋预测.png

令w=θ1,b=θ2。

《《机器学习--监督学习》(入门3章)》 目标函数.png

  • 欧式距离:欧几里得度量(也称欧式距离)是一个通常采用的距离定义,指在m维空间中两个点之间的真实距离。

    《《机器学习--监督学习》(入门3章)》 欧式距离.png

  • 曼哈顿距离:曼哈顿距离是使用在几何度量空间的几何学用语,用以标明两个点在标准坐标系上的绝对轴距总和。

    《《机器学习--监督学习》(入门3章)》 曼哈顿距离.png

  • 拟合曲线:在计算了每个点到各个拟合曲线之间的均方误差后,可以得到使得误差最小的拟合曲线,这样的曲线我们称之为最佳拟合曲线。对于线性关系显著的数据集,最佳拟合曲线就是我们想要寻找的在该数据下的拟合曲线,我们可以看出最中间的曲线拟合效果最好。

    《《机器学习--监督学习》(入门3章)》 拟合曲线.png

  • 线性规划总结

    《《机器学习--监督学习》(入门3章)》 线性规划总结.png

3.2多元线性回归

《《机器学习--监督学习》(入门3章)》 数据表达.png
《《机器学习--监督学习》(入门3章)》 分类.png
《《机器学习--监督学习》(入门3章)》 向量表示.png

  • 特征缩放:是用来标准化数据特征的范围,使得所有特征数据处于相同的大小维度上,从而避免模型对数据偏差处理,同时加快梯度下降的收敛速度。
    从表格数据中我们可以看出,房子大小和卧室数量、洗手间数量在数值上不属于一个数量级,这样的数据在处理上容易使得模型倾向于用房子大小来决定最后的预测结果,所以我们需要用到特征缩放使所有特征处于相同数量级。

    《《机器学习--监督学习》(入门3章)》 特征缩放.png

  • 比例调节:比例调节(rescaling)将数据的特征缩放到[0,1]或[-1.1]之间。缩放到什么范围取决于数据的性质。公式如下所示:

    《《机器学习--监督学习》(入门3章)》 比例调节.png

  • 标准化:特征标准化使每个特征的值有零均值和单位方差,公式如下所示:

    《《机器学习--监督学习》(入门3章)》 标准化.png

  • 多项式回归:从已有特征中构造新的特征,得到的输入是关于已有特征的多项式。

3.3python代码

3.3.1梯度下降线性回归模型
# 兼容 pythone2,3
from __future__ import print_function

# 导入相关python库
import os
import numpy as np
import pandas as pd

#设定随机数种子
np.random.seed(36)

#使用matplotlib库画图
import matplotlib
import seaborn
import matplotlib.pyplot as plot

from sklearn import datasets


#读取数据
housing = pd.read_csv('kc_train.csv')
target=pd.read_csv('kc_train2.csv')  #销售价格
t=pd.read_csv('kc_test.csv')         #测试数据

#数据预处理
housing.info()    #查看是否有缺失值

#特征缩放
from sklearn.preprocessing import MinMaxScaler
minmax_scaler=MinMaxScaler()
minmax_scaler.fit(housing)   #进行内部拟合,内部参数会发生变化
scaler_housing=minmax_scaler.transform(housing)
scaler_housing=pd.DataFrame(scaler_housing,columns=housing.columns)

mm=MinMaxScaler()
mm.fit(t)
scaler_t=mm.transform(t)
scaler_t=pd.DataFrame(scaler_t,columns=t.columns)



#选择基于梯度下降的线性回归模型
from sklearn.linear_model import LinearRegression
LR_reg=LinearRegression()
#进行拟合
LR_reg.fit(scaler_housing,target)


#使用均方误差用于评价模型好坏
from sklearn.metrics import mean_squared_error
preds=LR_reg.predict(scaler_housing)   #输入数据进行预测得到结果
mse=mean_squared_error(preds,target)   #使用均方误差来评价模型好坏,可以输出mse进行查看评价值

#绘图进行比较
plot.figure(figsize=(10,7))       #画布大小
num=100
x=np.arange(1,num+1)              #取100个点进行比较
plot.plot(x,target[:num],label='target')      #目标取值
plot.plot(x,preds[:num],label='preds')        #预测取值
plot.legend(loc='upper right')  #线条显示位置
plot.show()


#输出测试数据
result=LR_reg.predict(scaler_t)
df_result=pd.DataFrame(result)
df_result.to_csv("result.csv")
3.3.2扩展多项式

使用多项式的方法来进行的,如果有a,b两个特征,那么它的2次多项式为(1,a,b,a^2,ab, b^2),代码为:

#构造多项式特征
from sklearn.preprocessing import PolynomialFeatures
poly_feature=PolynomialFeatures(degree=5,include_bias=False)
poly_housing=poly_feature.fit_transform(scaler_housing)
poly_t=poly_feature.fit_transform(scaler_t)

3.4逻辑回归

逻辑回归是用来做分类算法的,那么分类学习的概念是什么呢?

  • 在机器学习和统计中,分类是根据包含已知类别成员的观察值(或实例)的训练数据集来确定新观测值所属的一组类别(子群)中的哪一个。
3.4.1模型

《《机器学习--监督学习》(入门3章)》 逻辑回归模型.png

3.5过拟合

《《机器学习--监督学习》(入门3章)》 分类.png

3.5.1过拟合

机器学习中,拟合优度(goodness of fit) 指的是模型预测值与真实值想匹配的程度。学习“噪声”的模型被称为是过拟合(overfit),在训练集上表现良好,但是与新训练集的拟合优度差,如下图绿线所示。

《《机器学习--监督学习》(入门3章)》 过拟合.png

  • 检测过拟合:把初始训练集数据分为训练集(train set)和验证集(validation set),通过验证集的输出表现来判断是否过拟合。
  • 防止过拟合
    1.k折交叉验证选择训练参数。
    2.使用更多数据来训练。
    3.删除部分相关度高的特征。
    4.正则化。
    5.过拟合前提停止训练模型。
    6.。。。。。
3.5.2欠拟合

与过拟合相对的拟合曲线被称为是欠拟合(underfit),如下图所示,对已有训练集的拟合程度差,模型表现效果差,没有学习到数据中的信息,这样的拟合曲线被称为欠拟合。

《《机器学习--监督学习》(入门3章)》 欠拟合.png

  • 防止欠拟合
    1.选取或者构造新的特征。
    2.增加模型复杂度。
    3.检查数据是否噪声较大。
    4.增加模型训练时间。
    5.。。。。。。
3.5.3误差

统计学习和机器学习中模型或者结果的泛化误差通常可以表示为三个不同误差的总和:偏差、方差、残差,也称为噪声。

  • 偏差:期望输出与真实标记的差别称为偏差,由错误的模型假设造成的,模型呈现欠拟合的状态。
  • 方差:度量了同样大小的训练集变动所导致的学习性能的变化,即刻画了数据扰动造成的影响。
  • 噪声:数据本身存在的误差导致的学习困难。
  • 期望泛化误差:直接影响算法在新数据集上表现能力。是由方差+偏差+噪声造成的。
    即!!!增加模型的复杂度会增加预测结果的方差同时减小偏差,相反减小模型复杂度会增加偏差、减小方差,这就是为什么被称为偏差与方差的权衡(bias/variance tradeoff)
3.5.4防止过拟合
K折交叉验证

k折交叉验证是评价模型的最好选择之一,也可以在一定程度上减小过拟合。在标准的k折交叉验证中,我们将数据划分为k个子集,称之为折叠(fold),然后迭代的用其中的k-1个子集用于模型训练,同时将剩余的子集用于作为验证集验证模型。一般k=10

《《机器学习--监督学习》(入门3章)》 k折交叉验证.png

L2正则化

正则化也分为许多种,这里介绍两种正则化方法:L1正则化、L2正则化。L1正则化方法又被称为拉索回归,L2正则化方法又被称为岭回归。L2正则化将需要正则化系数的平方作为惩罚项。这个惩罚项会使梯度下降造成权重更新是更大的。

《《机器学习--监督学习》(入门3章)》 L2正则化.png

在L2正则化中λ是正则化系数,用于控制对于权重的惩罚。
λ越大,权重越接近于0,使得拟合曲线更平缓从而减少过拟合的情况。

L1正则化

L1正则化的惩罚项为系数的绝对值。L2对大数比较敏感,对大数的惩罚力度也大,容易产生均匀解,而L1不会,产生比较稀疏的解,稀疏解就是结果中含0比较多的情况。

《《机器学习--监督学习》(入门3章)》 L1正则化.png

弹性网络

弹性网络是权衡L1正则化和L2正则化后得出的方法,通过控制混合比率r我们可以实现想要的正则化效果。其中,当r=0时,弹性网络为L2正则化,当r=1时,弹性网络为L1正则化。一般来说,弹性网络比L1正则化更常用一些。

《《机器学习--监督学习》(入门3章)》 弹性网络公式.png

  • 这种组合用于只有很少的权重非零的稀疏模型,比如拉索回归,但是又能保持岭回归的正则化属性,我们可以使用r参数来调节L1和L2的组合。
  • 当多个特征和另一个特征相关的时候弹性网络非常有用。拉索回归倾向于随机选择其中一个,而弹性网络更倾向于选择两个。

3.6K临近算法(KNN)

3.6.1原理

K-NN算法的核心思想非常简单:在训练集中选取离输入的数据点最近的k个邻居,根据这个k个邻居出现次数最多的类别(最大表决规则),作为该数据点的类别。
1.计算训练样本和测试样本中每个样本点的距离(常见的距离度量有欧氏距离,马氏距离等)。
2.对上面所有的距离进行排序。
3.选前k个最小距离的样本。
4.根据这k个样本的标签进行投票,得到最后的分类类别。

《《机器学习--监督学习》(入门3章)》 原理图.png

3.6.2KNN修正

经典k领域的样本点对预测结果的贡献度是相等的。而一个简单的思想是距离更近的样本点应有更大的相似度,其贡献应比距离更远的样本点打。

3.6.3KNN优缺点
  • 优点:精度高、对异常值不敏感,无数据输入假定。
  • 缺点:计算复杂度高、空间复杂度高。适用数据范围:数值型和标称型。

3.7支持向量机(SVM)

现在有一个二维平面,平面上有两种不同的数据,分别用圈和叉表示。由于这些数据是线性可分的,所以可以用一条直线将这两类数据分开,这条直线就相当于一个超平面,超平面一边的数据点所对应的y全是-1,另一边所对应的y全是1。SVM要解决的就是如何找到最优的分割超平面。

3.8朴素贝叶斯分类

  • 思想:是一种基于统计学思想的方法
    先验概率+数据=后验概率

朴素贝叶斯分类器原理:对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于哪个类别。

《《机器学习--监督学习》(入门3章)》 分类项.png

也就是说在感冒的情况下,哪种分类项出现的概率高,那么这个分类项就属于盖帽的结果。

《《机器学习--监督学习》(入门3章)》 流程.png

  • 优点:对小规模的数据表现很好,适合多分类任务,适合增量式训练。
  • 缺点:对输入数据的表达形式很敏感。

3.9树模型

  • 定义:决策树在分类问题中,表示基于特征对实例空间进行划分的方法,可以视为if-then规则的集合,也可以认为是定义在特征空间和类空间上的条件概率分布。
  • 基本步骤:1.特征选择。2.决策树生成。3.决策树减枝。
3.9.1熵的定义

《《机器学习--监督学习》(入门3章)》 熵的定义.png

3.9.2决策树生成
  • 两种经典算法:ID3,C4.5
  • 基于信息增益特征选择的ID3
    1.从根节点的全量数据开始,计算各特征的信息增益。
    2.选取特征信息增益最大的构建分支,以特征类型将数据分割为各子数据集,并去除其使用的特征。
    3.在分割的子数据集和子节点上,重复1.2步骤直到信息增益小于给定阈值或数据无特征为止,将其标签的众数作为类标签。
  • C4.5算法即为将ID3中的特征选择方式由信息增益替换为信息增益比。
3.9.3决策时分类剪枝

实现方式:极小化决策树整体的损失函数或者代价函数。

3.9.4混淆矩阵

《《机器学习--监督学习》(入门3章)》 混淆矩阵.png

3.9.5分类与回归树-CART
  • 假设条件:CART假设决策时是二叉树形式(也就是说一次的特征只能将数据集分为两个类别)

  • 与ID3,C4.5的不同:相对于ID3,C4.5来讲,CART可以对于连续型变量进行分类和回归,但每个特征只能对数据集进行二分类。

3.9.6决策树优缺点
  • 优点
    1.不需要任何领域知识或参数假设。
    2.适合高维数据。
    3.简单易于理解。
    4.短时间内处理大量数据,得到可行且效果较好的结果。

  • 缺点
    1.对于各类别样本数量不一致数据,信息增益偏向于那些具有更多数值的特征。
    2.易于过拟合,特别是在特征多的情况下,容易引入噪声特征。
    3.忽略属性之间的相关性。
    4.不支持在线学习。

3.10坦坦尼克号生还者预测

持续更新中……..

    原文作者:mantch
    原文地址: https://www.jianshu.com/p/415afe979a9a
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞