classification
 
- 分类属于监督学习,通过对不同特征值的分析来判断它属于拿一类
- 二元分类(logistic回归、线性回归)
- 多元分类(多元逻辑回归、fisher判别分析等)
分类器
 
![在这里插入图片描述]()
 
Linear Classifiers
 
![在这里插入图片描述]()
 
- 首先将文本进行分隔处理,进而对单个word给予权重来评价
![在这里插入图片描述]()
 
决定标准
 
![在这里插入图片描述]()
 
- 通过上面处理过得到的带有情感评价词进行加权求和,若结果大于0,则是positive的评价,若结果小于0,则是negtive的评价,模型如下:
 ![在这里插入图片描述]() 
Accuracy
 
- 模型正确率 accuracy = correct number/total number
- 模型错误率 error = 1 - accuracy
什么是好的分类?
 
- 不能忽视原来数据的分布情况
- 例如抛硬币,乱猜也有0.5的正确率
- 对于k种同等概率的分布,乱猜的概率为1/k
- 因此,模型的正确率至少要比乱猜的概率高
for example:
 
- 对于垃圾邮件的分类,正确率90%够好吗?
- 根据数据统计,2010年90%的邮件都是垃圾邮件,因此机器只要猜邮件是垃圾邮件,就能得到90%的正确率
type of mistake
 
![在这里插入图片描述]()
 
 
Learning curve
 
![在这里插入图片描述]()
 
- 掌握的数据越多,得到的误差就会越小,直至接近于0
 ![在这里插入图片描述]() 
代码部分
 
- Build the word count vector for each reviem
products['word_count'] = graphlab.text_analytics.count_words(products['review'])
 
 
products['sentiment']=products['rating']>=4 
 
 
train_data, test_data = products.random_split(.8,seed=0)
sentiment_model = graphlab.logistic_classifier.create(train_data,target='sentiment',
                                                      features=['word_count'],
                                                     validation_set=test_data)
 
- Evaluate the sentiment model
sentiment_model.evaluate(test_data,metric='roc_curve')
 
 
giraffe_reviews['predicted_sentiment']=sentiment_model.predict(giraffe_reviews
                                                               ,output_type='probability')```
- 分隔的文本进行在分隔
```python
products=products.stack('word_count',new_column_name=['word','count'])