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

原文地址:https://www.cnblogs.com/jev-0987/p/15238954.html