机器学习,分类算法(饭店评价的例子)

分类算法

classifacation(分类)

analyzing Sentiment(情感分析)

1、【关于饭店评价的例子】

①、智能的餐馆推荐系统
  • 将所有评价拆分成每一句,将句子输入到一个情感分类器,告知这是一个积极评价还是消极评价
②、新型的餐馆评论系统
  • 找到评论的子集,把筛选好的子集输入到情感分类器,对每个语句的结果求平均值,也可以找出最积极的评论

2、分类的应用

  • 分类可以应用在很多地方:图片识别;牢记邮件分类;医疗健诊断康预测
  • 例子:FMRI技术 获取大脑的影像,扫描大脑,预测正在阅读的是什么文字/照片,分类器读懂了你的大脑
  • 最常见的分类器:线性分类器

3、如何表示线性分类器,它又是如何工作的

  • 阈值分类器:计算积极/消极单词的个数 两者谁大就表示是哪一种语句
  • 线性分类器:不仅有积极消极单词的列表 还要加入他们的权值(great比good程度要深,great权值更大)中性词 为0 例如 we she 输出是输入的简单叠加 >0为+ ;<0为-
  • x:为评论语句(确切只看语句中有情感的单词)

4、回归与分类模型区别

  • 回归:用误差平方和测量模型误差
  • 分类:讨论那些输入我们预测对了,那些输入我们预测错了,对于数据测试结果的正误判断数量记下来
  • 一 误差率 二正确率 相加为1

5、我的分类器到底有多好呢

  • 第一个拿来做比较的基准是优于随机猜测的结果 如果有k个特性的话,最差的正确率是1/k
  • 大多数类别预测(垃圾邮件比好邮件多)在分类的时候要注意有没有不平衡类别
  • 考虑自己的应用,已经这样的正确率有没有意义

6、误差也有多种类型,这种类型称为错误

  • 用混淆矩阵来研究这些错误
    图混淆矩阵

7、你的模型需要学习多少数据和模型复杂的之间的关系

  • 在数据质量好的情况下,数据越多越好
  • 多的坏数据比拥有少量很好很清晰高质量的数据要糟糕的多

8、用一些理论技巧来分析我们到底需要多少数据,技巧帮我们理解数据的总体趋势

  • 在数据和模型智联关系中有个很重要的指标:学习曲线
    在这里插入图片描述

  • 误差:即使有再多的数据,误差也不会变成0

  • 模型的参数越多所需要的数据也就越多,学习曲线的误差随着训练数据集增多就越小

9、前面知识讨论了,预测是否为正面负面,是否为垃圾邮件,现在分析这封邮件是垃圾邮件的概率是多少

在这里插入图片描述

我们上面学习了怎么做分类问题、看了分类例子以及这些例子的应用、讨论构建分类的若干模型、如何从数据中构建一个分类器、如何分析分类器

10、③【构建一个核心是分类器的智慧应用】

  • 产品评价情绪分析
#导入graphlab库
import graphlab
  • 读入一些产品数据(亚马逊上的母婴用品数据集)
products = graphlab.SFrame('amazon.baby.csv')
  • 浏览数据
products.head()

结果为:
在这里插入图片描述

11、为每条评论建立单词统计向量(build the word count vector for each review)

  • 而自己操作需要分词再进行统计
  • 文本分析工具提供函数count_word()
#在表格的第四列新增了一个word_count 属性
products['word_count'] = graphlab.text_analytics.count_words(products['review'])

结果为:
在这里插入图片描述

  • 利用canvas做一些可视化
#利用canvas做一些可视化
graphlab.canvas.set_target('ipynb')
#将产品名称这一列提取出来
products['name'].show()

结果为:
在这里插入图片描述

12、对特定产品进行研究

#研究特定产品Vulli Sophie
giraffe_reviews = products[products['name'] = ='Vulli Sophie the Giraffe Teather']
#查看他的点评数量有多少
len(giraffe_reviews)
#得到785
#这一类是分类变量,会得到一张不同点评和产品得到多少分的图
giraffe_reviews['rating'].show(view = 'Categorical')

结果为:
#图14

13、做一个情感分类器 build a sentiment classifier

#将产品的评分这一列进行排序再显示 得到一张评价的图表

pruducts['rating'].show(view = 'Categorical')#希望得到的评价是分类性质的数据

结果为:
在这里插入图片描述

14、数据工程:定义什么是正面情感,什么是负面情感define what’s a positive and a negative sentiment

  • 1、先忽略所有的三星的评价
products = products[products['rating']!=3]
  • 2、定义正面(四星,五星)负面情感(一星,二星)
#创建一个新的列叫情感(sentiment) 如果大于4 这一列就是1
products['sentiment'] = products['rating'] >=4
products.head()

结果为:
在这里插入图片描述

15、训练我们的情感分析器

#1、将原始数据划分为训练集和测试集
train_data,test_data = products.random_split(.8,seed = 0)
#一个特定的分类器,逻辑回归分类器
sentiment_model = graphlab.logistic_classifier.create(train_data,#第一个参数,训练数据
                                                      target='sentiment',#第二个参数,我们要分类的东西是数据表中的情感列
                                                      features=['word_count'],#指定使用什么样的特征,用word_count列
                                                      validation_set=test_data)#设置验证集validation_set

结果为:
在这里插入图片描述

16、讲解ROC曲线

  • 建立情感分析模型来评估: evaluate()函数
  • 一个特定的计量表最:ROC曲线(受试者工作特征曲线)
  • ROC只是用来研究混淆矩阵中的假阴性和假阳性的
#建立情感分析模型来评估   evaluate()函数
sentiment_model.evaluate(test_data,metric = 'roc_curve')

结果为:
在这里插入图片描述

sentiment_model.show(view = 'Evaluation')

结果为:
在这里插入图片描述

17、通过训练的模型来分析我们的朋友Giraffe的情感状况

giraffe_reviews['predicted_sentiment'] = sentiment_model.predict(giraffe_reviews,output_type='probability')

#排序那些基于预测情感的点评并深入研究       #降序排序
giraffe_reviews = giraffe_reviews.sort('predicted_sentiment',ascending=False)
giraffe_reviews.head()

结果为:
在这里插入图片描述

18、对降序后的评论列表进行查看

  • 得到第一条评论为:
giraffe_reviews[0]['review']  #查看第一条评论`

#图111

  • 得到第二条评论为:
giraffe_reviews[1]['review']   #查看第二条评论

#图112

  • 显示出最负面的评论,因为评论降序排序的
#显示出最负面的评论,因为评论降序排序的
giraffe_reviews[-1]['review'] 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值