scikit-learn 中的警告消息
warning message in scikit-learn
我写了一个非常简单的scikit-learn决策树来实现异或:
from sklearn import tree
X = [[0, 0], [1, 1], [0, 1], [1, 0]]
Y = [0, 0, 1, 1]
clf = tree.DecisionTreeClassifier()
clf = clf.fit(X, Y)
print(clf.predict([0,1]))
print(clf.predict([0,0]))
print(clf.predict([1,1]))
print(clf.predict([1,0]))
预测部分会产生这样的警告:
DeprecationWarning: Passing 1d arrays as data is deprecated in 0.17
and will raise ValueError in 0.19. Reshape your data either using
X.reshape(-1, 1) if your data has a single feature or X.reshape(1, -1)
if it contains a single sample.
我不清楚需要更改什么以及为什么?请赐教!
提前致谢!
该方法对矩阵(二维数组)而不是向量(一维数组)进行操作。为方便起见,旧代码接受一个向量作为 1xN 矩阵。这导致了使用错误,因为一些用户忘记了向量的方向(1xN 与 Nx1)。
该建议告诉您如何将向量重塑为适当的矩阵形状。对于常数向量,只需将它们写成矩阵即可:
clf.predict( [ [0, 1] ] )
"other direction"(此应用程序错误)将是
clf.predict( [ [0], [1] ] )
clf.predict
的输入应该是一个二维数组。因此,而不是写
print(clf.predict([0,1]))
你需要写
print(clf.predict([[0,1]]))
正如警告信息所指出的,您只有一个样本要测试。因此,您可以按以下方式使用重塑或修复,
from sklearn import tree
X = [[0, 0], [1, 1], [0, 1], [1, 0]]
Y = [0, 0, 1, 1]
clf = tree.DecisionTreeClassifier()
clf = clf.fit(X, Y)
print (clf.predict([[0,1]]))
print (clf.predict([[0,0]]))
print (clf.predict([[1,1]]))
print (clf.predict([[1,0]]))
我写了一个非常简单的scikit-learn决策树来实现异或:
from sklearn import tree
X = [[0, 0], [1, 1], [0, 1], [1, 0]]
Y = [0, 0, 1, 1]
clf = tree.DecisionTreeClassifier()
clf = clf.fit(X, Y)
print(clf.predict([0,1]))
print(clf.predict([0,0]))
print(clf.predict([1,1]))
print(clf.predict([1,0]))
预测部分会产生这样的警告:
DeprecationWarning: Passing 1d arrays as data is deprecated in 0.17 and will raise ValueError in 0.19. Reshape your data either using X.reshape(-1, 1) if your data has a single feature or X.reshape(1, -1) if it contains a single sample.
我不清楚需要更改什么以及为什么?请赐教!
提前致谢!
该方法对矩阵(二维数组)而不是向量(一维数组)进行操作。为方便起见,旧代码接受一个向量作为 1xN 矩阵。这导致了使用错误,因为一些用户忘记了向量的方向(1xN 与 Nx1)。
该建议告诉您如何将向量重塑为适当的矩阵形状。对于常数向量,只需将它们写成矩阵即可:
clf.predict( [ [0, 1] ] )
"other direction"(此应用程序错误)将是
clf.predict( [ [0], [1] ] )
clf.predict
的输入应该是一个二维数组。因此,而不是写
print(clf.predict([0,1]))
你需要写
print(clf.predict([[0,1]]))
正如警告信息所指出的,您只有一个样本要测试。因此,您可以按以下方式使用重塑或修复,
from sklearn import tree
X = [[0, 0], [1, 1], [0, 1], [1, 0]]
Y = [0, 0, 1, 1]
clf = tree.DecisionTreeClassifier()
clf = clf.fit(X, Y)
print (clf.predict([[0,1]]))
print (clf.predict([[0,0]]))
print (clf.predict([[1,1]]))
print (clf.predict([[1,0]]))