上周主要谈了两个算法,线性逻辑回归与朴素贝叶斯。我们先从线性与逻辑回归谈起。
线性回归:
· 概念:利用线性回归的最小二乘函数对一个或多个自变量的因变量之间关系进行建模的方法
· 应用:预测未来,比如吸烟对死亡率和发病率的影响,资本资产定价模型,以及经济学中消费支出等。
逻辑回归
· 与线性回归最大的区别在于是否是二分类
· 因此对于分界线尤其的敏感
· 根据逻辑回归的分界线的分布,可以呈现出不同的数学公式。
· 梯度下降法:
朴素贝叶斯
· 核心思想:进行文本的分类,比图垃圾邮件的分类等等。
· 举例:准备分类目标的词库,比如垃圾邮件的词库
· 平滑:分子加1,分母加总共的词数量
· 由于在代码中,不能直接识别文本,需要将文本转化为文本向量,给定一个文本向量x=(x1, x2, x3, …., xn),以及两种类型标签y={0,1},在这里指的是垃圾或者不垃圾。有几种不同表示方式:
· 1)boolean:出现了的词语用1表示,没有则用0,将文本全部换成向量
2)count:计算出现了的词语的次数,其余的用0表示
3)Tf-idf:为了减少误差,比如前两种方式都考虑词语出现的频率,但是若此词语并非重要词语,将会影响最终判断结果的误差,因此要将词语的重要性考虑进去。重要公式:Tfidf(w)=tf(d,w)*idf(w)=次数*重要性,其中重要性需要用到log函数,表示为logN/N(w)
· 有特殊的几点需要考虑:
1)如果特征词汇非文本而是实数的时候,需要用到Gaussian NB,代码里面表示为word2vec
2)此算法叫做朴素贝叶斯,那么为什么叫做朴素贝叶斯?
朴素代表将方法简化,看作无数个相关的条件独立事件,因此可以互相乘积。
贝叶斯代表用到了贝叶斯定理,在过程中进行简化,算出一个概率。
3)朴素贝叶斯的最大似然(不是太明白,需要再仔细琢磨琢磨)
4)生成模型与判别模型,举例,判别猫vs狗
生成模型:直接判断特征是否是猫还是狗,1 or 0问题
判别模型:将狗与猫的特征以及数据找出来,然后应用到目标对象当中,找出与之对应的属性是否相符。
总结:目前看了最大的问题还是在代码,很多功能和外包的功能不熟悉,目前的方法是见到一个熟练一个。