如何使用 Scikit 制作和使用朴素贝叶斯分类器
How to make and use Naive Bayes Classifier with Scikit
我正在阅读 python 中的一本关于机器学习的书,但我只是不明白这段代码:
import numpy as np
import matplotlib.pyplot as plt
from sklearn.naive_bayes import GaussianNB
from sklearn import cross_validation
from utilities import visualize_classifier
# Input file containing data
input_file = 'data_multivar_nb.txt'
# Load data from input file
data = np.loadtxt(input_file, delimiter=',')
X, y = data[:, :-1], data[:, -1]
# Create Naive Bayes classifier
classifier = GaussianNB()
# Train the classifier
classifier.fit(X, y)
# Predict the values for training data
y_pred = classifier.predict(X)
# Compute accuracy
accuracy = 100.0 * (y == y_pred).sum() / X.shape[0]
print("Accuracy of Naive Bayes classifier =", round(accuracy, 2), "%")
我有几个问题:
data[:, :-1] 和 data[:, -1] 有什么作用?
输入文件格式为:
2.18,0.57,0
4.13,5.12,1
9.87,1.95,2
4.02,-0.8,3
1.18,1.03,0
4.59,5.74,1
计算精度部分是如何工作的?
什么是 X.shape[0]?
最后,如何使用分类器预测新值的 y?
当你索引一个 numpy 数组时,你使用类似于列表的方括号。
my_list[-1]
returns 列表中的最后一项。
例如
my_list = [1, 2, 3, 4]
my_list[-1]
4
如果您熟悉列表索引,那么您就会知道切片是什么。
my_list[:-1]
returns 从头到尾的所有项目。
my_list[:-1]
[1, 2, 3]
在您的代码中,data[:, :-1]
只是使用二维切片进行索引。查找有关 numpy 数组的文档以获取更多信息。理解 ndarrays
是使用 sklearn 的先决条件。
我正在阅读 python 中的一本关于机器学习的书,但我只是不明白这段代码:
import numpy as np
import matplotlib.pyplot as plt
from sklearn.naive_bayes import GaussianNB
from sklearn import cross_validation
from utilities import visualize_classifier
# Input file containing data
input_file = 'data_multivar_nb.txt'
# Load data from input file
data = np.loadtxt(input_file, delimiter=',')
X, y = data[:, :-1], data[:, -1]
# Create Naive Bayes classifier
classifier = GaussianNB()
# Train the classifier
classifier.fit(X, y)
# Predict the values for training data
y_pred = classifier.predict(X)
# Compute accuracy
accuracy = 100.0 * (y == y_pred).sum() / X.shape[0]
print("Accuracy of Naive Bayes classifier =", round(accuracy, 2), "%")
我有几个问题:
data[:, :-1] 和 data[:, -1] 有什么作用? 输入文件格式为:
2.18,0.57,0
4.13,5.12,1
9.87,1.95,2
4.02,-0.8,3
1.18,1.03,0
4.59,5.74,1
计算精度部分是如何工作的? 什么是 X.shape[0]? 最后,如何使用分类器预测新值的 y?
当你索引一个 numpy 数组时,你使用类似于列表的方括号。
my_list[-1]
returns 列表中的最后一项。
例如
my_list = [1, 2, 3, 4]
my_list[-1]
4
如果您熟悉列表索引,那么您就会知道切片是什么。
my_list[:-1]
returns 从头到尾的所有项目。
my_list[:-1]
[1, 2, 3]
在您的代码中,data[:, :-1]
只是使用二维切片进行索引。查找有关 numpy 数组的文档以获取更多信息。理解 ndarrays
是使用 sklearn 的先决条件。