首先,我们需要导入所需的库。在本示例中,我们将使用NumPy和Scikit-learn库。请确保在执行下面的代码之前已安装这些库。
在第一步中,我们导入了所需的库,这些库包括NumPy和Scikit-learn。这些库是Python中用于数据科学和机器学习的常用库。
- NumPy:NumPy是Python中用于科学计算的基本库之一。它提供了高效的数组操作和数学函数,是许多其他Python科学库的基础。
- Scikit-learn:Scikit-learn是Python中用于机器学习的流行库。它包含了许多常用的机器学习算法,例如朴素贝叶斯、支持向量机、决策树等,并提供了用于模型选择、特征提取、数据预处理等的工具。
如果您对这些库不熟悉,可能需要花一些时间学习它们的基本知识,以更好地理解如何使用它们来实现机器学习算法。
接下来,我们将加载鸢尾花数据集,这是一个常用的用于分类的数据集。该数据集包含150个样本和4个特征(萼片长度、萼片宽度、花瓣长度和花瓣宽度),其中每个样本都属于三个可能的类别之一(Setosa、Versicolor或Virginica)。
为了加载鸢尾花数据集,我们使用Scikit-learn库中的load_iris函数。该函数返回一个Bunch对象,其中包含了数据集的特征和标签。我们将这些特征存储在变量X中,将标签存储在变量y中
我们将使用train_test_split函数将数据集分为训练集和测试集。在本示例中,我们将70%的数据用于训练集,30%用于测试集。
详细说明:
首先,我们使用Scikit-learn库中的train_test_split函数来将数据集分成训练集和测试集。该函数接受两个参数,即特征矩阵X和标签向量y,并返回四个对象,分别为训练集特征矩阵X_train、测试集特征矩阵X_test、训练集标签向量y_train和测试集标签向量y_test。其中,训练集和测试集的比例由test_size参数指定。
其中,test_size参数设置为0.3,表示测试集占总数据集的30%。
具体而言,X_train 是训练集的特征矩阵,包含了一些样本的特征,用于训练分类器;y_train 是训练集的标签向量,包含了与 X_train 中的样本对应的分类标签;X_test 是测试集的特征矩阵,包含了另一些样本的特征,用于评估分类器的性能;y_test 是测试集的标签向量,包含了与 X_test 中的样本对应的分类标签。
通过将数据集分成训练集和测试集,我们可以在训练集上训练分类器,并在测试集上评估分类器的性能。这样做的目的是避免过拟合,即在训练集上表现很好但在测试集上表现较差的情况。
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
接下来,我们将创建一个GaussianNB对象并将其用于拟合训练数据。
在第四步中,我们将训练集的特征矩阵和标签向量用于训练朴素贝叶斯分类器。在Scikit-learn库中,朴素贝叶斯分类器由MultinomialNB类和GaussianNB类实现这两个类分别适用于多项式型数据和高斯型数据。
在Scikit-learn库中,我们可以使用GaussianNB类创建GaussianNB分类器对象。然后,我们可以使用该对象的fit方法将训练数据拟合到分类器中,以便在测试数据上进行预测。
最后,我们将使用测试集评估我们的模型,并计算分类的准确性。
在第五步中,我们使用已训练好的分类器对象对测试数据进行预测,并计算模型的准确率。首先,我们使用已训练好的分类器对象的predict方法对测试数据进行预测,该方法接受测试数据X_test作为输入,返回预测标签y_pred。
接下来,我们使用Scikit-learn库中的accuracy_score函数来计算模型的准确率。accuracy_score函数接受两个参数,即真实标签y_test和预测标签y_pred,并返回准确率。我们将这个准确率值存储在准确性变量中。最后,我们打印模型的准确率。
完整代码:
import numpy as np from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.naive_bayes import GaussianNB from sklearn.metrics import accuracy_score iris = load_iris() X = iris.data y = iris.target X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) model = GaussianNB() model.fit(X_train, y_train) y_pred = model.predict(X_test) accuracy = accuracy_score(y_test, y_pred) print(f"Accuracy: {accuracy}")
标签:Jupyter,训练,标签,分类器,train,learn,test,Notebook,chatgpt From: https://www.cnblogs.com/yizhizhangBlog/p/17192370.html