IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 机器学习线性模型 -> 正文阅读

[人工智能]机器学习线性模型

课程笔记

  • 监督学习:

    根据已有的数据集,知道输入和输出结果之间的关系。根据这种已知的关系,训练得到一个最优的模型。也就是说,在监督学习中训练数据既有特征(feature)又有标签(label),通过训练,让机器可以自己找到特征和标签之间的联系,在面对只有特征没有标签的数据时,可以判断出标签。监督学习包括回归问题和分类问题

  • 回归问题和分类问题的区别:

    分类和回归的区别在于输出变量的类型:定量输出称为回归,或者说是连续变量预测;定性输出称为分类,或者说是离散变量预测。
    举个例子:预测明天的气温是多少度,这是一个回归任务;预测明天是阴、晴还是雨,就是一个分类任务。

  • 无监督学习:

    我们不知道数据集中数据、特征之间的关系,而是要根据聚类或一定的模型得到数据之间的关系。可以这么说,比起监督学习,无监督学习更像是自学,让机器学会自己做事情,是没有标签(label)的。

    通过使用sklearn生成符合自身需求的数据集

    import numpy as np
    import matplotlib.pyplot as plt
    from sklearn.semi_supervised import LabelSpreading
    from sklearn.datasets import make_circles
    n_samples = 200
    X, y = make_circles(n_samples=n_samples, shuffle=False)
    outer, inner = 0, 1
    labels = np.full(n_samples, -1.)
    labels[0] = outer
    labels[-1] = inner
    label_spread = LabelSpreading(kernel='knn', alpha=0.8)
    label_spread.fit(X, labels)
    output_labels = label_spread.transduction_
    plt.figure(figsize=(4, 4))
    plt.subplot()
    plt.scatter(X[labels == outer, 0], X[labels == outer, 1], color='navy',
                marker='s', lw=0, label="outer labeled", s=10)
    plt.scatter(X[labels == inner, 0], X[labels == inner, 1], color='c',
                marker='s', lw=0, label='inner labeled', s=10)
    plt.scatter(X[labels == -1, 0], X[labels == -1, 1], color='darkorange',
                marker='.', label='unlabeled')
    plt.legend(scatterpoints=1, shadow=False, loc='upper right')
    plt.title("Raw data (2 classes=outer and inner)")
    
    

  • 使用sklearn构建完整的机器学习项目流程,以boston项目为例

    1. 明确项目任务:房价为监督学习,回归问题,连续变量的预测
    2. 收集数据集并选择合适的特征
    from sklearn import datasets
    import pandas as np
    boston = datasets.load_boston()     # 返回一个类似于字典的类
    X = boston.data
    y = boston.target
    features = boston.feature_names
    boston_data = pd.DataFrame(X,columns=features)
    boston_data["Price"] = y
    boston_data.head()
    

    以上部分代码读取了数据,并对数据进行了简单的展示,我们可以认为输出y和输入数据x是一个线性关系
    3. 选择度量模型性能的指标

    from sklearn.metrics import mean_absolute_error
    y_true = [3, -0.5, 2, 7]
    y_pred = [2.5, 0.0, 2, 8]
    mean_absolute_error(y_true, y_pred)
    结果为0.5
    

    可在sklearn.metrics选取合适的误差函数
    4. 选择具体的模型并进行训练以优化模型
    假设X和Y之间存在线性关系,模型的具体形式为 𝑦? =𝑓(𝑤)= w T x w^Tx wTx,关于线性模型可以使用最小二乘法解决
    5. 评估模型的性能并调参
    将训练结果与目标结果对比,计算精度

作业部分

  1. 对最小二乘法的解读
    对与几何解释的理解:
    线性模型构建的输入和输出的关系为y=wx,x可以是多维的向量(如在波士顿房价数据集中的平均房间数,一氧化氮浓度),y为房价,我们的目的是求出最佳的w,第一感觉最佳的w是能完全拟合这个数据集的输入和输出,使得所有的输入x都等得到输出y,但是数据集往往做不到这么精确。
    也就是所有的y不一定能用x进行拟合,所以将y投影到x的列空间中计算最优w,将y的投影设为 y ^ \hat{y} y^?,并且 y ^ = w ^ x \hat{y}=\hat{w} x y^?=w^x ,由矩阵投影的性质有 X T ( Y ? Y ^ ) = 0 X^T(Y-\hat{Y})=0 XT(Y?Y^)=0,即 X T ( Y ? w ^ x ) = 0 X^T(Y-\hat{w}x)=0 XT(Y?w^x)=0所以 w = ( X T X ) ? 1 X T Y w=(X^TX)^{-1}X^TY w=(XTX)?1XTY,此时求出的 w ^ \hat{w} w^为最优解

  2. 极大似然估计和最小二乘法的关系:
    其实不太理解对于噪声假设为什么可以视为正太分布

  3. 决策树和线性模型的区别:第一次接触决策树是在《统计学习基础》这本书,结合书中内容和视频中的内容列举一些区别:
    区别1:决策树很明显的不是线性模型
    区别2:决策树在选择性能指标的时候有信息增益,信息增益比,基尼系数 线性模型采用平方误差比较多
    区别3:以为决策数不是线性模型,在使用上比线性模型效果更广

  4. 使用线性模型拟合数据集:

import numpy as np
import numpy.linalg as lg

data=np.array([
    [1,2,3,4],
    [2,4,5,6],
    [1,2,4,6],
    [1,4,2,6],
    [4,2,1,3],
    [2,4,1,3],
    [3,3,1,4],
])
target=np.array([
    [21],[33],[24],[29],[18],[21],[21]
])
xTx=data.transpose().dot(data)
result=lg.inv(xTx).dot(data.transpose()).dot(target)
print(result)

使用的方法为最小二乘法,数据集的输入 x ? = [ x 1 , x 2 , x 3 , x 4 ] \vec{x}=[x_1,x_2,x_3,x_4] x =[x1?,x2?,x3?,x4?],设定输出y与输入x的线性关系为 y = 2 ? x 1 + 2 ? x 2 + 2 ? x 3 + 2 ? x 4 ] y=2*x_1+2*x_2+2*x_3+2*x_4] y=2?x1?+2?x2?+2?x3?+2?x4?],所以正确的目标参数为:
[ 2 2 2 2 ] \begin{bmatrix} 2 \\ 2 \\ 2 \\ 2 \\ \end{bmatrix} ?????2222??????
在输出结果target(y)中将数据在目标数据上下波动一定的范围,通过最小二乘法拟合数据,求出的参数为:
[ 0.93983034 2.93825212 1.30755573 2.17390018 ] \begin{bmatrix} 0.93983034 \\ 2.93825212 \\ 1.30755573 \\ 2.17390018 \\ \end{bmatrix} ?????0.939830342.938252121.307555732.17390018??????
通过拟合出来的结果和目标结果还是有一定相似性的

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-07-16 11:17:35  更:2021-07-16 11:20:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 20:41:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码