numpy.atleast(), RamdonForestClassifier and numpy.hstack fun



我对numpy.atleast((、RamdonForestClassifier和numpy.hstack函数的确切工作方式有疑问。

我已经阅读了上面提到的所有这些函数的用途的文档,但仍然不清楚。有人能帮帮我吗?!

我正在处理的方法如下:


def fit(self, X, Y):
X, Y = map(np.atleast_2d, (X, Y))
assert X.shape[0] == Y.shape[0]
Ny = Y.shape[1]

self.clfs = []
for i in range(Ny):
clf = RandomForestClassifier(*self.args, **self.kwargs,n_jobs=-1)
Xi = np.hstack([X, Y[:, :i]])
yi = Y[:, i]
self.clfs.append(clf.fit(Xi, yi))

所以让我一步一步地解释。

因此,np.atleast_2d()将任何输入转换为2D阵列。

np.atleast_2d(1)
Out[5]: array([[1]])
np.atleast_2d([1,2])
Out[6]: array([[1, 2]])

因此,正如你所看到的,它正在将它们转换为2D阵列,类似于你的代码,X, Y = map(np.atleast_2d, (X, Y)),这将函数np.atleast_2d映射到这些输入X和Y,使得给定输入X、Y,它将把它们转换为2-D阵列。

接下来,关于RandomForestClassifierclf = RandomForestClassifier(*self.args, **self.kwargs,n_jobs=-1)行为您初始化模型或分类器。

a = np.arange(0,4,1).reshape(2,2)
Y = np.arange(5,9,1).reshape(2,2)
res = np.hstack([a,Y])
res
Out[10]: 
array([[0, 1, 5, 6],
[2, 3, 7, 8]])
res.shape
Out[11]: (2, 4)

见2行4列CCD_ 6只是水平堆叠输入阵列。Xi = np.hstack([X, Y[:, :i]]),这一行基本上将输入X与可能的标签叠加。clf.fit(Xi, yi),此函数使数据适合您的模型。这就像我初始化了一个黑匣子或一个系统,现在我将数据传递到该系统中,以训练系统适应这些数据。如果您有更多问题,请随时询问。

最新更新