自动秒收录

AI人工智能在Python中构建分类器


文章编号:2681 / 分类:技术教程 / 更新时间:2024-05-17 14:44:14 / 浏览:

恭喜您成为首批注册用户

AI人工智能在Python中构建分类器

在本节中,我们将学习如何在Python中构建分类器。

朴素贝叶斯分类器

朴素贝叶斯是一种使用贝叶斯定理建立分类器的分类技术。假设是预测变量是独立的。简而言之,它假设类中某个特征的存在与任何其他特征的存在无关。要构建朴素贝叶斯分类器,我们需要使用名为scikitlearn的python库。在scikit学习包中,有三种类型的朴素贝叶斯模型被称为Gaussian,Multinomial和Bernoulli。

要构建朴素贝叶斯机器学习分类器模型,需要以下“减号”

为了构建朴素贝叶斯分类器,需要一个朴素贝叶斯模型。如前所述,scikit学习包中有三种类型的NaïveBayes模型,分别称为Gaussian,Multinomial和Bernoulli。在下面的例子中,将使用高斯朴素贝叶斯模型。

通过使用上述内容,我们将建立一个朴素贝叶斯机器学习模型来使用肿瘤信息来预测肿瘤是否是恶性的或良性的。

首先,我们需要安装sklearn模块。它可以通过以下命令完成-

importsklearn

现在,需要导入名为BreastCancerWisconsinDiagnosticDatabase的数据集。

fromsklearn.datasetsimportload_breast_cancer

现在,以下命令将加载数据集。

data=load_breast_cancer()

数据可以按如下方式组织-

print(label_names)

上述命令将分别打印恶性和良性的类名。它显示为下面的输出-

['malignant''benign']

现在,下面给出的命令将显示它们映射到二进制值01。这里0表示恶性肿瘤,1表示良性癌症。它显示为下面的输出-

print(labels[0])0

以下两个命令将生成功能名称和功能值。

print(feature_names[0])meanradiusprint(features[0])[1.79900000e011.03800000e011.22800000e021.00100000e031.18400000e-012.77600000e-013.00100000e-011.47100000e-012.41900000e-017.87100000e-021.09500000e009.05300000e-018.58900000e001.53400000e026.39900000e-034.90400000e-025.37300000e-021.58700000e-023.00300000e-026.19300000e-032.53800000e011.73300000e011.84600000e022.01900000e031.62200000e-016.65600000e-017.11900000e-012.65400000e-014.60100000e-011.18900000e-01]

从以上输出可以看出,第一个数据实例是一个主要半径为1.7990000e01的恶性肿瘤。

要在未看到的数据上测试模型,我们需要将数据分解为训练和测试数据。它可以在下面的代码的帮助下完成-

fromsklearn.model_selectionimporttrain_test_split

上述命令将从sklearn中导入train_test_split函数,下面的命令将数据分解为训练和测试数据。在下面的例子中,使用40%的数据进行测试,并将提示数据用于训练模型。

train,test,train_labels,test_labels=train_test_split(features,labels,test_size=0.40,random_state=42)

现在,使用以下命令构建模型-

fromsklearn.naive_bayesimportGaussianNB

上述命令将从sklearn中导入train_test_split函数,下面的命令将数据分解为训练和测试数据。在下面的例子中,我们使用40%的数据进行测试,并将提示数据用于训练模型。

train,test,train_labels,test_labels=train_test_split(features,labels,test_size=0.40,random_state=42)

现在,使用以下命令构建模型-

fromsklearn.naive_bayesimportGaussianNB

上述命令将导入GaussianNB模块。现在,使用下面给出的命令,需要初始化模型。

gnb=GaussianNB()

将通过使用gnb.fit()将它拟合到数据来训练模型。

model=gnb.fit(train,train_labels)

现在,通过对测试数据进行预测来评估模型,并且可以按如下方式完成-

preds=gnb.predict(test)print(preds)[100110001110101011101101111110111111010110111111110011111001100111001100101111110110000011111111001001001110110110001110011010011000111011001011010011111110011111111111101110110111111000110101111011011101001111111101111101001101]

上述01系列是肿瘤类别的预测值,即恶性和良性。

现在,通过比较两个数组即test_labelspreds,可以看到模型的准确性。我们将使用accuracy_score()函数来确定准确性。考虑下面的命令-

fromsklearn.metricsimportaccuracy_scoreprint(accuracy_score(test_labels,preds))0.951754385965

结果显示NaïveBayes分类器准确率为95.17%。

这是基于NaïveBayse高斯模型的机器学习分类器。

支持向量机(SVM)基本上,支持向量机(SVM)是一种有监督的机器学习算法,可用于回归和分类。SVM的主要概念是将每个数据项绘制为n维空间中的一个点,每个特征的值是特定坐标的值。以下是了解SVM概念的简单图形表示-

在上图中,有两个特征。因此,首先需要在二维空间中绘制这两个变量,其中每个点都有两个坐标,称为支持向量。该行将数据分成两个不同的分类组。这条线将是分类器。

在这里,将使用scikit-learn和iris数据集来构建SVM分类器。Scikitlearn库具有sklearn.svm模块并提供sklearn.svm.svc进行分类。下面显示了基于4个特征来预测虹膜植物种类的SVM分类器。

我们将使用包含3个类别(每个类别为50个实例)的虹膜数据集,其中每个类别指的是一类虹膜工厂。每个实例具有四个特征,即萼片长度,萼片宽度,花瓣长度和花瓣宽度。下面显示了基于4个特征来预测虹膜植物分类的SVM分类器。

内核这是SVM使用的技术。基本上这些功能采用低维输入空间并将其转换到更高维空间。它将不可分离的问题转换成可分离的问题。核函数可以是线性,多项式,rbf和sigmoid中的任何一种。在这个例子中,将使用线性内核。

现在导入下列软件包-

importpandasaspdimportnumpyasnpfromsklearnimportsvm,datasetsimportmatplotlib.pyplotasplt

现在,加载输入数据-

iris=datasets.load_iris()

我们使用前两个功能-

X=iris.data[:,:2]y=iris.target

我们将用原始数据绘制支持向量机边界,创建一个网格来绘制。

x_min,x_max=X[:,0].min()-1,X[:,0].max()1y_min,y_max=X[:,1].min()-1,X[:,1].max()1h=(x_max/x_min)/100xx,yy=np.meshgrid(np.arange(x_min,x_max,h),np.arange(y_min,y_max,h))X_plot=np.c_[xx.ravel(),yy.ravel()]

需要给出正则化参数的值。

C=1.0

需要创建SVM分类器对象。参考以下代码-

Svc_classifier=svm_classifier.SVC(kernel='linear',C=C,decision_function_shape='ovr').fit(X,y)Z=svc_classifier.predict(X_plot)Z=Z.reshape(xx.shape)plt.figure(figsize=(15,5))plt.subplot(121)plt.contourf(xx,yy,Z,cmap=plt.cm.tab10,alpha=0.3)plt.scatter(X[:,0],X[:,1],c=y,cmap=plt.cm.Set1)plt.xlabel('Sepallength')plt.ylabel('Sepalwidth')plt.xlim(xx.min(),xx.max())plt.title('SVCwithlinearkernel')

执行后得到以下结果-

违法和不良信息举报电话:173-0602-2364|


相关标签: AI人工智能在Python中构建分类器

本文地址:https://www.badfl.com/article/b8152ca66f482bdc74d4.html

上一篇:AI人工智能决策树分类器...
下一篇:AI人工智能在Python中构建分类器的步骤...

发表评论

温馨提示

做上本站友情链接,在您站上点击一次,即可自动收录并自动排在本站第一位!
<a href="https://www.badfl.com/" target="_blank">自动秒收录</a>