首页 > 代码库 > python-classfiction

python-classfiction

1.概述:  

对于一些结果较单一的离散数值,机器学习的分类器是一个不错的选择。例如,我们预测一封邮件是否为垃圾邮寄的时候,可以分析该邮件的相关的特征得出“0,1”的结果,从而分析得到该邮件的最终属性。2特点

2.1变形

分类器与线性回归相似,可以通过对数变形得到。

  将线性函数引申成为“0,1”,通过辅助函数:

    技术分享

      注:z值变为线性回归方程

        当z值大于0时,g取值倾向于1;当z小于0时,函数值趋向于0

   g函数图像:

      技术分享

2.2代价函数(cost function):

     技术分享

      函数绘图:

              当y为1时                   当y为0时

       技术分享            技术分享

       可知:当y=1时,结果越接近0,当y=1时,代价函数的值接近为0。别且注意函数的斜率,横坐标为线性函数。

2.3如何确定线性函数的thea(n):

     通过梯度下降算法:当thea的值趋近于平缓,便接近收敛

      技术分享

     "BFGS", and "L-BFGS":该种方法不用进行步长的给予,能够更快地收敛。并且octave里面有内置函数。

3.举例

情感分类器也是如此,以cousera上的亚马逊商品评价为例,通过提取评价中的字数,小于三星是差评,大于则是好评,通过模型求解,获得商品评价的线性结果。

  

import graphlab

products = graphlab.SFrame(amazon_baby.gl/)

products[word_count] = graphlab.text_analytics.count_words(products[review])

giraffe_reviews = products[products[name] == Vulli Sophie the Giraffe Teether]

products = products[products[rating]!=3]

products[sentiment] = products[rating] >= 4

print(products.head())

#train sentiment classifier
train_data,test_data = products.random_split(.8, seed=0)

#logistic_classfier
sentiment_model = graphlab.logistic_classifier.create(train_data,
                                                       target=sentiment,
                                                       features=[word_count],
                                                       validation_set=test_data)

sentiment_model.evaluate(test_data, metric=roc_curve)
sentiment_model.show(view=‘Evaluaion‘)
  giraffe_reviews[predict_sentiment] = sentiment_model.predict(giraffe_reviews,output_type=probability) #paixu giraffe_reviews = giraffe_reviews.sort(predict_sentiment) print(giraffe_reviews[1])

 

python-classfiction