朴素贝叶斯 逻辑回归 例子

#
from sklearn.naive_bayes import GaussianNB
import numpy as np
import matplotlib.pyplot as plt

#假设存在这样的二元特征变量x,对应属性Y
# x= np.array([[3,7],[-3,7],[1,5], [1,2], [-2,0], [2,3], [-4,0], [-1,1], [1,1], [-2,2], [2,7], [-4,1], [-2,7]])
# Y = np.array([4,3, 3, 4, 4, 4, 3, 3, 4, 3, 3, 3, 4])
x= np.array([[1,0],[2,0],[3,0], [4,0], [5,0],[6,0],[7,0],[8,0], [9,0], [10,0], [5.4,0], [5.7,0]])
Y = np.array([0,0,0,0,0,1,1,1,1,1,0,1])


id3 = np.where(Y==0)
id4 = np.where(Y==1)

fig, ax = plt.subplots(figsize=(8,5))
ax.scatter(x[id3,0], x[id3,1],s=50, c='b', marker='o', label='Y=3')
ax.scatter(x[id4,0], x[id4,1], s=50, c='r', marker='x', label='Y=4')
ax.legend()
ax.set_xlabel('X[:,0]')
ax.set_ylabel('X[:,1]')
plt.show()

#高斯分布的朴素贝叶斯
#Create a Gaussian Classifier
model = GaussianNB()
# Train the model using the training sets
model.fit(x, Y)
#Predict Output
predicted= model.predict([[3.5,0],[5.5,0]])
print(predicted)

#Logistic回归的朴素贝叶斯
# LogisticRegression Predict
from sklearn.linear_model.logistic import LogisticRegression
classifier=LogisticRegression()
classifier.fit(x, Y)
predictions=classifier.predict([[3.5,0],[5.5,0]])

print(predictions)



[0 0]
[0 1]



朴素贝叶斯的三个常用模型:高斯、多项式、伯努利

一共有3个朴素贝叶斯的分类算法类。分别是GaussianNB,MultinomialNB和BernoulliNB。

高斯模型
对于连续型的数据使用,它会按高斯分布来划分成多个特征来进行概率统计
高斯模型假设每一维特征都服从高斯分布(正态分布)

[url]https://blog.csdn.net/u011331731/article/details/72832864[/url]


多项式模型
该模型常用于文本分类,特征是单词,值是单词的出现次数。(预防一些特征在样本中没有出现过),当特征是离散的时候,使用多项式模型。

在多项式模型中, 设某文档d=(t1,t2,…,tk),tk是该文档中出现过的单词,允许重复,则
先验概率P(c)= 类c下单词总数/整个训练样本的单词总数
类条件概率P(tk|c)=(类c下单词tk在各个文档中出现过的次数之和+1)/(类c下单词总数+|V|)
V是训练样本的单词表(即抽取单词,单词出现多次,只算一个),|V|则表示训练样本包含多少种单词。 P(tk|c)可以看作是单词tk在证明d属于类c上提供了多大的证据,而P(c)则可以认为是类别c在整体上占多大比例(有多大可能性)。

[url]https://blog.csdn.net/qq_35044025/article/details/79322169[/url]
[url]https://wenku.baidu.com/view/70c98707abea998fcc22bcd126fff705cc175c6b.html[/url]


伯努利模型
在伯努利模型中,每个特征的取值是布尔型的,即true和false,或者1和0。


在scikit-learn中,与逻辑回归有关的主要是这3个类。LogisticRegression, LogisticRegressionCV 和logistic_regression_path。其中LogisticRegression和LogisticRegressionCV的主要区别是LogisticRegressionCV使用了交叉验证来选择正则化系数C。
LogisticRegression和LogisticRegressionCV默认就带了正则化项。penalty参数可选择的值为"l1"和"l2".分别对应L1的正则化和L2的正则化,默认是L2的正则化。
在调参时如果我们主要的目的只是为了解决过拟合,一般penalty选择L2正则化就够了。但是如果选择L2正则化发现还是过拟合,即预测效果差的时候,就可以考虑L1正则化。另外,如果模型的特征非常多,我们希望一些不重要的特征系数归零,从而让模型系数稀疏化的话,也可以使用L1正则化。
penalty参数的选择会影响我们损失函数优化算法的选择。即参数solver的选择,如果是L2正则化,那么4种可选的算法{‘newton-cg’, ‘lbfgs’, ‘liblinear’, ‘sag’}都可以选择。但是如果penalty是L1正则化的话,就只能选择‘liblinear’了。这是因为L1正则化的损失函数不是连续可导的,而{‘newton-cg’, ‘lbfgs’,‘sag’}这三种优化算法时都需要损失函数的一阶或者二阶连续导数。而‘liblinear’并没有这个依赖。

[url]https://www.cnblogs.com/ooon/p/4947688.html[/url](梯度下降(Gradient Descent)算法,目的是求解最小值的,最小值就可以确定相关系数了)

[url]https://blog.csdn.net/liulina603/article/details/78676723[/url](逻辑回归公式)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jie310600

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值