机器学习朴素贝叶斯分类器返回语句简介

Posted

技术标签:

【中文标题】机器学习朴素贝叶斯分类器返回语句简介【英文标题】:Intro to machine learning naive bayes classifier return statement 【发布时间】:2021-01-13 02:15:40 【问题描述】:

我尝试从 Udacity 的机器学习入门课程中学习机器学习。

第 2 课 - 朴素贝叶斯测验 19:地形数据上的高斯 NB 部署

我必须在我添加的classifyNB.py文件中添加一些代码

def classify(features_train, labels_train):   
### import the sklearn module for GaussianNB
### create classifier
### fit the classifier on the training features and labels
### return the fit classifier


### your code goes here!
from sklearn.naive_bayes import GaussianNB
clf = GaussianNB()
clf.fit(features_train, labels_train)
return((features_train, labels_train) 

但是代码没有编译并抛出一些错误。

知道我应该写什么来return the fit classifier

【问题讨论】:

试试这个:return clf 我这样写return(clf)。我想得到一张照片,因为还有其他 .py 文件。这次添加 return(clf) 后,我既没有得到错误也没有得到任何输出。 谢谢 Vaziri。经过2分钟的等待,我得到了结果。谢谢。 你是否将函数体缩进了 1 个制表符? 【参考方案1】:

从 sklearn.naive_bayes 导入 GaussianNB

def 分类(features_train,labels_train): clf = GaussianNB() clf.fit(features_train,labels_train) 返回 clf

【讨论】:

PS:- 我们可以在函数的定义里面写import 请不要重复答案 @proko 实际上这是我的第一个答案我只是想声明即使我们在方法中导入它也不会导致任何错误。我认为最好的方法是提及之前的答案【参考方案2】:

你可以像这样调整你的代码:

from sklearn.naive_bayes import GaussianNB

def classify(features_train, labels_train):   
  clf = GaussianNB()
  clf.fit(features_train, labels_train)
  return clf

模块的导入应该在方法之外,您需要确保在编写方法时有适当的缩进。如果您在代码中的缩进与此处相同,那么您需要在方法中缩进代码,以便清楚地表明您的方法下面的行属于该方法。

现在,您可以使用一些数据调用您的 classify() 方法来获取分类器,例如:

clf = classify(np.array([[0,1,2],[1,1,1]]), [0,1])

然后你就可以使用你的分类器了,可以通过clf来访问

【讨论】:

以上是关于机器学习朴素贝叶斯分类器返回语句简介的主要内容,如果未能解决你的问题,请参考以下文章

机器学习九大算法---朴素贝叶斯分类器

机器学习:贝叶斯分类器——高斯朴素贝叶斯分类器代码实现

机器学习——朴素贝叶斯分类器

《机器学习》-- 第七章 朴素贝叶斯

“移花接木”(朴素贝叶斯分类器)

Weka机器学习:如何解释朴素贝叶斯分类器?