本文代码及数据集来自《Python大数据分析与机器学习商业案例实战》
朴素贝叶斯模型是一种非常经典的机器学习模型,它主要基于贝叶斯公式,在应用过程中会把数据集中的特征看成是相互独立的,而不需考虑特征间的关联关系,因此运算速度较快。相比于其他经典的机器学习模型,朴素贝叶斯模型的泛化能力稍弱,不过当样本及特征的数量增加时,其预测效果也是不错的。
import pandas as pd
df = pd.read_excel('肿瘤数据.xlsx')
df.head()
X = df.drop(columns='肿瘤性质')
y = df['肿瘤性质']
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1)
from sklearn.naive_bayes import GaussianNB
nb_clf = GaussianNB() # 高斯朴素贝叶斯模型
nb_clf.fit(X_train,y_train)
y_pred = nb_clf.predict(X_test)
a = pd.DataFrame()
a['预测值'] = list(y_pred)
a['实际值'] = list(y_test)
print(a.head())
from sklearn.metrics import accuracy_score
score = accuracy_score(y_pred, y_test)
print(score)
运行结果: