目录
一、导入数据
二、选择特征
三、十折交叉验证
四、划分训练集和测试集
五、训练高斯贝叶斯模型
六、预测测试集
七、查看训练集和测试集上的分数
八、查看混合矩阵
九、输出评估指标
一、导入数据
# 根据商户数据预测其是否续约案例
import pandas
#读取数据到 data 变量中
data = pandas.read_csv('高斯贝叶斯.csv', encoding='ansi')
二、选择特征
features = [ '注册时长', '营收收入', '成本']
x=data[features]
y=data['是否续约']
三、十折交叉验证
#高斯贝叶斯
from sklearn.naive_bayes import GaussianNB
gaussianNB = GaussianNB()
from sklearn.model_selection import cross_val_score
#进行K折交叉验证
cvs = cross_val_score(gaussianNB, x, y, cv=10)
cvs.mean()
分数如下:
四、划分训练集和测试集
from sklearn.model_selection import train_test_split#把数据集分为训练集和测试集
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.3)
五、训练高斯贝叶斯模型
gaussianNB = gaussianNB.fit(x_train, y_train)
六、预测测试集
predict=gaussianNB.predict(x_test)
七、查看训练集和测试集上的分数
gaussianNB.score(x_train, y_train)
gaussianNB.score(x_test, y_test)
八、查看混合矩阵
gaussianNB = GaussianNB()
#使用所有数据训练模型
gaussianNB.fit(x, y)
#对所有的数据进行预测
data['预测是否续约'] = gaussianNB.predict(data[features])
from sklearn.metrics import confusion_matrix
#计算混淆矩阵,labels参数,可由 gaussianNB.classes_ 得到
confusion_matrix(data['是否续约'], data['预测是否续约'], labels=['不续约', '续约']
)
九、输出评估指标
from sklearn.metrics import classification_report
# 输出评估指标
print(classification_report(y_test, predict))