• Supervised ML-1


    有监督的机器学习

    你有特征X和标签Y,希望通过某个预测函数来得到一个Y',使得Y和Y'之间的误差尽可能小,这样就得到预测函数中较为不错的参数$ heta (,不断更新) heta $直到你的Cost达到最低。

    image-20210905230313871

    情感分析

    使用逻辑回归分类器,它将观察结果分配给两个不同的类

    image-20210905230848090

    首先在训练集中处理原始推文,然后提取有用的功能,然后将训练逻辑回归分类器,同时将Cost降到最低,最后,将能够做出预测。

    image-20210905231016647

    如何用向量表示文本

    1. 需要建立一个vocabulary,使你能够使用数字序列编码(encode)任何文本。

    词汇表

    image-20210906083500061

    特征提取

    在这个例子中,你的文本信息将会有6个1和许多0来表示。这些数字在你的vocabulary中关联了每一个独立的单词。但是这有非常多的0值,所以称这个为稀疏表示(sparse representation)

    image-20210906092708356

    稀疏表示的问题

    image-20210906095729316

    积极和消极计数

    image-20210906100145819

    积极情绪的词汇计数

    image-20210906100314499

    消极情绪词汇计数

    image-20210906100404314

    频率字典

    image-20210906100454323

    特征提取

    image-20210906110644987

    举例:

    image-20210906110937298

    预处理

    词干

    停用词

    删除停用词和标点符号

    image-20210907150410825

    通常只关注与情感相关的词语,所以将url和其他信息也给删除了

    image-20210907150547936

    整合实现

    image-20210907151057871

    freqs = build_freqs(tweet,labls) #建立频率字典
    X = np.zeros((m,3)) #初始化 矩阵X,匹配推文数量
    for i in range(m): #遍历每天推文
        p_tweet = process_tweet(tweets[i])  #预处理推文
        X[i,:] = extract_features(p_tweet,freqs) #提取特征
    

    回顾逻辑回归

    image-20210907151916678

    常见的有sigmoid函数:

    image-20210907151951336

    就刚刚的内容举例:

    image-20210907152015440

    逻辑回归中的训练

    左图是带有( heta1)( heta2)的函数图,右图为Cost函数在迭代次数变化时的损失值。

    可以看到,随着迭代次数增多,两个参数值慢慢往梯度最低的位置去。该方法也被称为梯度下降

    image-20210907152342592

    image-20210907152617566

    测试逻辑回归

    首先有测试集和之前得到的最佳参数( heta)(从之前的训练中得到的)

    image-20210907162203787

    第一步,先计算参数为( heta)(X_{val})的sigmoid函数,然后评估h的每个值是否大于或等于阈值

    image-20210907162431420

    例如,得到下面这个向量:

    image-20210907162606122

    与0.5做对比后,可以得到0或1的数值,用来预测负值或正值。

    第二步,建立完预测向量后,我们可以计算出验证集是否能够通过模型。对此,我们将比较预测值和真实值,验证数据中的每个观察值。如果预测值和真实值相等,则为1,否则为0.用向量来表示。有:

    image-20210907163029537

    比较完后,查看准确度:

    image-20210907163300664

    例如:

    image-20210907163323155

  • 相关阅读:
    十进制数转换
    桶排序
    快速排序
    单词倒排
    (c++) string b; cin>>b; int i=strlen(b); 报错的原因。
    n的阶乘(1<n<10000)(结果超大……)
    2020软件工程最后一次作业
    2020软件工程第四次作业
    2020软件工程第三次作业
    2020软件工程第二次作业
  • 原文地址:https://www.cnblogs.com/jev-0987/p/15238954.html
Copyright © 2020-2023  润新知