有监督的机器学习
你有特征X和标签Y,希望通过某个预测函数来得到一个Y',使得Y和Y'之间的误差尽可能小,这样就得到预测函数中较为不错的参数$ heta (,不断更新) heta $直到你的Cost达到最低。
情感分析
使用逻辑回归分类器,它将观察结果分配给两个不同的类
首先在训练集中处理原始推文,然后提取有用的功能,然后将训练逻辑回归分类器,同时将Cost降到最低,最后,将能够做出预测。
如何用向量表示文本
- 需要建立一个vocabulary,使你能够使用数字序列编码(encode)任何文本。
词汇表
特征提取
在这个例子中,你的文本信息将会有6个1和许多0来表示。这些数字在你的vocabulary中关联了每一个独立的单词。但是这有非常多的0值,所以称这个为稀疏表示(sparse representation)
稀疏表示的问题
积极和消极计数
积极情绪的词汇计数
消极情绪词汇计数
频率字典
特征提取
举例:
预处理
词干
停用词
删除停用词和标点符号
通常只关注与情感相关的词语,所以将url和其他信息也给删除了
整合实现
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) #提取特征
回顾逻辑回归
常见的有sigmoid函数:
就刚刚的内容举例:
逻辑回归中的训练
左图是带有( heta1)和( heta2)的函数图,右图为Cost函数在迭代次数变化时的损失值。
可以看到,随着迭代次数增多,两个参数值慢慢往梯度最低的位置去。该方法也被称为梯度下降
测试逻辑回归
首先有测试集和之前得到的最佳参数( heta)(从之前的训练中得到的)
第一步,先计算参数为( heta)的(X_{val})的sigmoid函数,然后评估h的每个值是否大于或等于阈值
例如,得到下面这个向量:
与0.5做对比后,可以得到0或1的数值,用来预测负值或正值。
第二步,建立完预测向量后,我们可以计算出验证集是否能够通过模型。对此,我们将比较预测值和真实值,验证数据中的每个观察值。如果预测值和真实值相等,则为1,否则为0.用向量来表示。有:
比较完后,查看准确度:
例如: