“n_features”和“center”参数在SciKit中的make_blobs中意味着什么?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了“n_features”和“center”参数在SciKit中的make_blobs中意味着什么?相关的知识,希望对你有一定的参考价值。

我在n_features中查看了centers函数中make_blobsSciKit参数的文档。然而,我所看到的每一个解释对我来说都不是那么清楚,因为我是SciKit和数学的新手。我想知道这两个参数是做什么的:n_featurescentersmake_blobs中的功能如下所示。

make_blobs(n_samples=50, n_features=2, centers=2, random_state=75)

先感谢您。

答案

make_blobs函数是sklearn.datasets.samples_generator的一部分。包中的所有方法都可以帮助我们生成数据样本或数据集。在机器学习中,数据集用于评估机器学习模型的性能。这是关于如何评估KNN classifier的示例:

from sklearn.datasets.samples_generator import make_blobs
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

X, y = make_blobs(n_features=2, centers=3)
X_train, X_test, y_train, y_test = train_test_split(X, y)
model = KNeighborsClassifier()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
acc = accuracy_score(y_test, y_pred) * 100
print('accuracy: {}%'.format(acc))

现在,如您所述,n_features确定生成的数据集将包含多少列或特征。在机器学习中,特征对应于数字特征数据。例如,在Iris Dataset中,有4个特征(Sepal Length,Sepal Width,Petal Length和Petal Width),因此数据集中有4个数字列。因此,通过增加n_features中的make_blobs,我们将添加更多功能,从而增加生成的数据集的复杂性。

至于centers,通过可视化生成的数据集更容易理解。我使用matplotlib来帮助我们:

from sklearn.datasets.samples_generator import make_blobs
import matplot

# plot 1
X, y = make_blobs(n_features=2, centers=1)
plt.figure()
plt.scatter(X[:, 0], X[:, 1], c=y)
plt.savefig('centers_1.png')
plt.title('centers = 1')

# plot 2    
X, y = make_blobs(n_features=2, centers=3)
plt.figure()
plt.scatter(X[:, 0], X[:, 1], c=y)
plt.title('centers = 2')

# plot 3
X, y = make_blobs(n_features=2, centers=3)
plt.figure()
plt.scatter(X[:, 0], X[:, 1], c=y)
plt.title('centers = 3')

plt.show()

centers=1

centers=2

centers=3

如果运行上面的代码,您可以很容易地看到centers对应于数据中生成的类的数量。它使用中心作为术语,因为属于同一类的样本倾向于聚集在一个中心(坐标)附近。

以上是关于“n_features”和“center”参数在SciKit中的make_blobs中意味着什么?的主要内容,如果未能解决你的问题,请参考以下文章

使用随机森林时,scikit 中的“ValueError: max_features must be in (0, n_features]”

ValueError:输入具有 n_features=12,而模型已使用 n_features=2494 进行了训练

模型的特征数量必须与输入相匹配。模型 n_features 为 20,输入 n_features 为 4

模型的特征数量必须与输入相匹配。模型 n_features 为 16,输入 n_features 为 1

机器学习sklearn19.0聚类算法——Kmeans算法

模型的特征数量必须与输入相匹配。模型 n_features 为 40,输入 n_features 为 38