每周一算法:朴素贝叶斯分析
"N"为打网球,"P"为不打网球
朴素贝叶斯分类算法例题
python程序实例
# 朴素贝叶斯高斯模型心脏病预测
#(1)导入心脏病数据
import pandas as pd
data = pd.read_csv(filepath)
#(2)数据处理
# 重新洗牌,行互换后,让索引从0开始
data = data.sample(frac=1).reset_index(drop=True)
# 提取目标值target一列
data_target = data['target']
# 提取目标值
data_feature = data.drop('target',axis=1)
# 取出最后10行作为验证集
data_predict_feature = data_feature[-10:] #作为最后预测函数的输入
data_predict_target = data_target[-10:] #用来验证预测输出结果的正确性
# 建模用的特征值和目标值删去最后10行
data_feature = data_feature[:-10] #x数据
data_target = data_target[:-10] #y数据
#(3)划分训练集和测试集
from sklearn.model_selection import train_test_split
x_train,x_test,y_train,y_test = train_test_split(data_feature,data_target,test_size=0.25)
#(4)高斯模型训练
# 导入朴素贝叶斯--高斯模型方法
from sklearn.naive_bayes import GaussianNB
# gauss_nb接收高斯方法
gauss_nb = GaussianNB()
# 模型训练,输入训练集
gauss_nb.fit(x_train,y_train)
# 计算准确率--评分法
gauss_accuracy = gauss_nb.score(x_test,y_test)
# 预测
gauss_result = gauss_nb.predict(data_predict_feature)
print ('准确率:',gauss_accuracy)
print ('预测结果',gauss_result)
数据链接:https://pan.baidu.com/s/1aQ8Dsy0AvlYGHZQQBYgieA
提取码:f51v