一、实战 - 朴素贝叶斯的使用
调用sklearn 朴素贝叶斯模块CategoricalNB, 训练模型基于用户基本信息,预测其购买商品的概率。
import pandas as pd import numpy as np # 数据加载 data = pd.read_csv("data.csv") data.head() # X赋值 X = data.drop(['y'], axis = 1) # y 赋值 y = data.loc[:, 'y'] # 建立模型 # pip install sklearn from sklearn.native_bayes import CategoricalNB # 建立模型实例 model = CategoricalNB() # 模型训练 model.fit(X, y) y_predict_prob = model.predict_proba(X) # 输出预测y y_predict = model.predict(X) # 计算模型准确率 from sklearn.metrics import accuracy_score accuracy = accuracy_score(y, y_predict) # 测试样本的预测 X_test = np.array([0,0,0,1,1,0]) y_test_proba = model.predict_proba(X_test) y_test = model.predict(X_test)
任务部分 是怎么打上去的
实战问题:
代码(已验证):
# 导入pandas库, numpy库
import pandas as pd
import numpy as np
# 将数据预先储存为一个csv文件,然后加载到开发环境中来
# 读取数据
data = pd.read_csv("chapter3_data.csv")
# 查看数据
data.head()
# X赋值
# 将y的一列单独去掉,axis=0为行,axis=1为列
X = data.drop(["y"], axis=1)
print(X)
#y赋值
y = data.loc[:,"y"]
print(y)
#建立模型
# 从sklearn包的naive_bayes之中导入CategoricalNB
from sklearn.naive_bayes import CategoricalNB
# 建立模型实例
model = CategoricalNB()
# 训练模型
model.fit(X, y)
# 预测 测试集数据
# 预测y=1or=0的概率
y_predict_proba = model.predict_proba(X)
# 输出y的预测值
y_predict = model.predict(X)
#计算模型准确率
from sklearn.metrics import accuracy_score
accuracy = accuracy_score(y, y_predict)
print(accuracy)
# 任务二:
# 测试样品X_test的预测
# 先将其转化成为数组形式
X_test = np.array([[0,0,0,1,1,0]])
print(X_test)
# 预测样品的购买或不购买的概率
y_predict_proba = model.predict_proba(X_test)
print(y_predict_proba)
# 输出样品的预测值
y_test = model.predict(X_test)
print(y_test)
sklearn库中引入CategoricalNB失败,但是高斯NB和多项式NB都是有的,请问这是库的问题吗还是我引入错了
代码为
from sklearn.naive_bayes import CategoricalNB
返回信息为
ImportError: cannot import name 'CategoricalNB' from 'sklearn.naive_bayes' (E:\Anaconda3\lib\site-packages\sklearn\naive_bayes.py)
实战: 利用朴素贝叶斯判断客户消费意愿
调用sklearn朴素贝叶斯模块的CategoricalNB, 训练模型基于用户信息,预测购买商品的概率。
任务一:基于上面的数据,建立朴素贝叶斯模型
任务二:基于模型,判断上面用户会否购买
具体实现代码展示:
import pandas as pd //导入pandas库
import numpy as np //导入numpy库
data = pd.read_csv("chapter3_data.csv") //将数据预先储存为一个csv文件,然后加载到开发环境中来
data.head() //读取数据
#x赋值 x = data.drop(["y"], axis=1) //将y的一列单独去掉,axis=0为行,axis=1为列
print(x)
#y赋值 y = data.loc([: , "y"])
print(y)
#建立模型
from sklearn.naive_bayes import CategoricalNB //从sklearn包的naive_bayes之中导入 CategoricalNB
model = CategoricalNB() //建立模型实例
model.fit(x , y) //训练模型
y_predict_proba = model.predict_proba(x) //预测y=1or=0的概率
y_predict = model.predict(x) //输出y的预测值
#计算模型准确率
from sklearn.metrics import accuracy_score
accuracy = accuracy_score(y, y_predict)
print(accuracy)
任务二:
#测试样品x的预测
X_test = np.array([[0,0,0,1,1,0]]) //先将其转化成为数组形式
print(X_test)
y_predict_proba = model.predict_proba(X_test) //预测样品的购买或不购买的概率
print(y_predict_proba)
y_test = model.predict(X_test) //输出样品的预测值
print(y_test)