我有一个由2个不可分离的特征组成的数据集。我将我的空间划分为nxn网格,然后计划将逻辑回归分别应用于这些网格,以找到用于测试数据的nxn参数。我不想弄清楚如何在Matlab中访问特定网格中的点。我已经成功地将空间划分为n * n网格?
谢谢。
答案 0 :(得分:0)
在网格中访问点没有“神奇”的方法,但这里只使用基本数学。如果你创建一个均匀间隔的网格,让我们说n
的大小,跨越[0,1] x [0,1]的总空间(为简单起见),那么你可以获得给定新点的单元格的索引( x,y)通过计算[floor(x * n),floor(y * n)]。例如,n = 10,(x,y)=(0.41,0.12)=> [floor(x * n),floor(y * n)] = [floor(0.41 * 10),floor(0.12 * 10)] = [4,1]。
然而,将2d空间分割为网格并在每个网格中拟合线性模型的整体想法相当糟糕。只是拟合一个非线性模型,即使knn应该在2d工作得很好。你的方法有很多不足之处 - 你得到的每个模型只有很小的一点,每个模型都不能执行超参数优化,一些单元格将是空的,你需要一个启发式来处理它们(和你的数据)似乎很容易使用任何猜测/启发式看起来像一个可怕的想法),你会得到大量的模型,你引入另一个“神奇的”n超参数,你的决策边界将非常不连续和非光滑....真的 - 这是一个非常简单的问题,你不需要发明任何东西 - 有几十个简单的模型可以正常工作。