已知想法条件时的分类方法?

数据挖掘 分类
2022-03-06 03:19:34

数据集:在 8 组属性上测量的混凝土。约 4000 个数据点。

已知:在理想条件下,10 种不同类型混凝土的 8 个属性值。

目标是找到:在 8 维空间中,给定数据点最接近的“混凝土类型”是什么。

如果我的话令人困惑,我认为图像很好地解释了这个问题。黑色 = 想法条件。红色 = 需要确定类别的点。

澄清:

from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier(n_neighbors=8)
knn.fit(X_train, y_train)
pred = knn.predict(X_test)

如果我理解正确,可以接受:X_train 将是 8 x 10 的数组,Y_train 将是 1 x 10 的数组。这是正确的吗?

1个回答

欢迎来到社区 Martan!

如果我很好地理解了你的问题,你有一组模式(你称之为想法条件)和一组查询点(样本),你想根据它们与模式的亲和力/相似性/接近度来确定(预测)它们的标签.

如果它是正确的,那么K-Nearest Neighbor 算法就是您正在寻找的。请注意,在高维欧几里得距离是扭曲的,但 8 维是可以的。

希望它有所帮助,如果我不太了解,请在此处发表评论,以便我更新我的答案。祝你好运!

更新

您在评论中提到的关于 KNN 培训的内容是正确的。让我澄清一下。

  1. 分类为监督学习过程:这意味着您已经有了一些数据及其类。所以你可以根据所有这些标签来划分你的空间。下图显示了不同类别的划分(我不是特别擅长 MS 油漆的最佳画家:D)。有了这个,一个新的点落入这些分区之一,所以你可以确定它的标签。如您所说,构建这样的分区是在训练过程中完成的。

在此处输入图像描述

  1. 最近邻搜索:但是这种方法不是很自然吗?你真的不需要知道机器学习来执行这样的算法,事实上你在日常生活中使用了 KNN(今天你看到你的朋友和他的一些同事和一个你不认识的新人,你立刻认为他可能是一个同事。前几天你看到你的朋友和他的家人和一个你不认识的人,你猜他很可能是一个亲戚。这在概念上是 KNN!)。在您的示例中,您不需要学习如何划分空间,因为您已经拥有具有固定位置的预定义标签(我们进行培训以找出这一点。您已经拥有它,所以继续!)。现在您可以进行最近邻搜索并说出一个点属于哪个类。