sklearn学习:LogisticRegression中的coef_和intercept_的解释

更新时间:2023-05-30 12:03:29 阅读: 评论:0

sklearn 学习:LogisticRegression 中的coef_和intercept_的解释
⽂章⽬录
前⾔
Logistic Regression是机器学习领域中⼀种⽐较简单的学习器,该学习器的⽬标是根据训练样本的特征和标记拟合出如下的映射函数f(X)的系数 w0,w1,w2,wn:
在应⽤该模型时,直接将新实例的特征X代⼊该表达式即可计算出新样本的概率值。
默认设置阈值为0.5可以对概率进⾏分类。
大米发糕怎么做
⼀、sklearn 中的Logistic Regression
sklearn ⼯具包提供了 Logistic Regression 的实现,该分类器的两各属性存储了上述系数的值。即 coef_ 和 intercept_,其中**coef_**是w1,…,wn ,intercept_ 是w0
下⾯使⽤⽰例代码辅助理解。
⼆、⽰例代码说明
1.引⼊库函数
import numpy as np
from sklearn .linear_model import LogisticRegression #LR 学习器
from sklearn .feature_extraction .text import CountVectorizer # 词汇切分器
2.样本数据
该样本中共有6条数据,每条数据的类别为1或者0
corpus = [
'This is the first document.',
'This document is the cond document.',
'And this is the third one.',
'Is this the first document?',
白头老母遮门啼
'This document is the cond document.',
'and this is the fourth one'
]
labels = [1, 0, 1, 1, 0, 1]
亳怎么读3.数据集划分
将前4条划分为训练集,后2条划分为测试集
提取训练集中出现的单词,将每个单词看作⼀个特征,共有9个特征。同时,所有训练数据被转换成向量表⽰,每个向量中的数字代表某个单词出现的次数。
f (X )=1+e −(w +w x +w x +...+w x )
01122n n 1
labels =[1,0,1,1,0,1]
vector =CountVectorizer()
# 划分训练集和测试集
X_train = vector.fit_transform(corpus[:4])
X_test = ansform(corpus[-2:])
y_train = labels[:4]
y_test = labels[-2:]
_feature_names())
# ['and','document','first','is','one','cond','the','third','this']
print(array())
"""
[[011100101]
[020101101]
[100110111]
[011100101]]
"""
4.模拟LR的计算
我们在LRModel中根据第⼀节的公式为每个新的实例计算出它被预测为1的概率值。和sklearn中原始的模型值⽐较,看它们是否相等。
# 模拟LR模型预测实例值为1的概率
def LRModel(test_instance, coefficient_, intercept_):
probability =[]
for instance in test_instance:
predict_prob =1/(1+ np.exp(-(np.dot(instance, coefficient_)+ intercept_)))
probability.append(predict_prob)
return probability
5.应⽤和⽐较企业年度报告
石斛泡水喝的功效与作用⽐较原始模型的概率计算结果和我们模拟的结果,发现其值是相等的:
样例5 [‘This document is the cond document.’], 将其预测为1的概率 约0.49,分类结果为0。
样例6 [‘and this is the fourth one’],将其预测为1的概率 约0.87,分类结果为1。
验证了上述介绍的LR的设计原理,。
# 模拟LR模型预测实例值为1的概率
def main():
# 定义Logistic模型并进⾏训练
clf =LogisticRegression().fit(X_train, y_train)
# 提取出学习器的系数和截距
coefficients = f_[0]
intercept = clf.intercept_[0]
# 原始结果的概率
original_result = clf.predict_proba(X_test)
# 我们模拟的概率
simulated_result =LRModel(array(), coefficients, intercept)
兴登堡号print(original_result)
# 值为0的概率,值为1的概率
# [[0.506251940.49374806]
# [0.12799910.8720009]]
print(simulated_result)
唱歌的英文
潮湿天气# [0.49374806142939265,0.8720008951321764]
if __name__ =='__main__':
main()
致谢
感谢各位阅读,欢迎评论交流!

本文发布于:2023-05-30 12:03:29,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/951442.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:概率   单词   特征   模型   训练
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图