文章目录前言一、sklearn中的Logistic Regression二、示例代码说明1 .库函数导入2 .示例数据3 .数据集分割4 .模拟LR的计算5 .应用与比较谢谢
前言Logistic Regression是机器学习领域中比较简单的学习器,该学习器的目标是从训练样本特征和标记中提取以下映射函数3358 www.Sina.com
f(x ) 1e ) w0w1x1w2x2.wnxn ) f ) x )=(FRAC1) 1e^{-(w_0w_1x_2x_2.w_NX_n ) } f
应用此模型时,可以通过将新实例的f(X)的系数直接代入此表达式来计算新示例的概率值。
通过将默认阈值设置为0.5,可以对概率进行分类。
另一方面,sklearn中的逻辑注册sklearn工具包提供了逻辑注册的实现,该分类器的两个属性存储了上述w0,w1,w2,wn的值。 即特征X和系数。 其中**coef_**是w1、wn、coef_是w0
使用示例代码帮助理解。
二、示例代码说明1 .库函数importnumpyasnpfromsklearn.linear _ modelimportlogisticregression # lr学习器froms klearn.feature _ extextre
corpus=[ ' thisisthefirstdocument.',' thisdocumentistheseconddocument.',' And this is the third one.',' isthisthefirsthefirsthefisthesthecond ' andthisisthefourthone ' ] labels=[ 1,0,1,1,0,1 ]3.数据集将前四个分为训练集,将以下两个分为训练集
抽取训练集中出现的单词,将每个单词视为一个特征,共有9个特征。 另外,所有的训练数据都转换为向量表示,每个向量中的数字表示某个单词出现的次数。
labels=[ 1,0,1,1,0, 1 ) vector=countvectorizer(#将训练集与测试集分开的x _ train=vector.fit _ transform (corpus [ :4 ] ) x _ test=y _ test=labels [-2: ] print (vector.get _ feature _ names () ) and '、' and '、' this ' ] print (x _ tratrate )
#模拟LR模型的预测实例值为1的概率deflrmodel(test_instance,coefficient_, intercept _ (3360 probability=[ ] forinstance intest _ instance : predict _ prob=1/(1np.exp (-) (NP ) InP.dot ) ) probability.append ) predict_prob ) return probability 5.将原始模型的概率计算结果与我们的模拟结果进行应用比较,发现其值相等。
示例5 [‘thisdocumentistheseconddocument .’],将其预测为1的概率约为0.49,分类结果为0。
样本6 [‘andthisisthefourthone’]将其预测为1的概率约为0.87,分类结果为1。
验证了上述介绍的LR的设计原理。
#模拟LR模型定义预测实例值为1的概率def main () : # )逻辑模型,clf=逻辑注册).fit )训练x_train 学习器系数和截距coefficients=clf.coef _ [0] intercept=clf.intercept _ [0] #提取原始结果的概率original_result=clf以供我们模拟coefficients,intercept print (original _ result ) )的值为0的概率值为1的概率# [0. 506251940.49374806 ] # [0. 12799910.]