python-鸢尾花分类
import pandas as pd data_iris = pd.read_csv('iris.csv',index_col=0) #绘制直方图 import matplotlib.pyplot as plt data_iris.hist(figsize=(8,6)) plt.show() 123456
#绘制散点图(花瓣的长和宽) plt.figure(figsize=(8,6)) plt.scatter(x=data_iris['petal_l'], y=data_iris['petal_w'],c=data_iris['classes']) plt.show() 1234
from sklearn.naive_bayes import MultinomialNB,BernoulliNB,GaussianNB#多项式朴素贝叶斯(适合离散数据分类),伯努利朴素贝叶斯(适合离散数据分类),高斯朴素贝叶斯(适合连续数据分类) from sklearn.metrics import classification_report #分类报告 from sklearn.model_selection import train_test_split #划分数据集 X = data_iris.iloc[:,:-1]#数据(花瓣长,宽,花萼长,宽) y = data_iris.iloc[:,-1]#标签(花种类用0.0,1.0,2.0表示) #调用分割函数,将数据集分为训练集和测试集20% X_tr,X_ts,y_tr,y_ts = train_test_split(X,y,test_size=0.2) #训练模型 model = GaussianNB()#高斯朴素贝叶斯 model.fit(X_tr,y_tr) #拟合(数据,标签) y_pred = model.predict(X_ts) y_pred print(classification_report(y_pred,y_ts)) #precision(准确率):正确预测为正的,占全部预测为正的比例 #recall(召回率):正确预测为正的,占全部实际为正的比例。 #f1-score (f1值):精确率和召回率的调和平均数。 #support 各分类样本的数量或测试集样本的总数量。
1234567891011121314151617181920