我在使用RandomForest fit函数时遇到了麻烦
这是我的训练集
P1 Tp1 IrrPOA Gz Drz2
0 0.0 7.7 0.0 -1.4 -0.3
1 0.0 7.7 0.0 -1.4 -0.3
2 ... ... ... ... ...
3 49.4 7.5 0.0 -1.4 -0.3
4 47.4 7.5 0.0 -1.4 -0.3
... (10k rows)
Run Code Online (Sandbox Code Playgroud)
感谢使用sklearn.ensemble RandomForest的所有其他变量,我想预测P1
colsRes = ['P1']
X_train = train.drop(colsRes, axis = 1)
Y_train = pd.DataFrame(train[colsRes])
rf = RandomForestClassifier(n_estimators=100)
rf.fit(X_train, Y_train)
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误:
ValueError: Unknown label type: array([[ 0. ],
[ 0. ],
[ 0. ],
...,
[ 49.4],
[ 47.4],
Run Code Online (Sandbox Code Playgroud)
我没有发现任何有关此标签错误的信息,我使用的是Python …
我有两个numpy数组,X_train和Y_train,其中第一个维度(700,1000)由值0,1,2,3,4和10填充.第二个维度(700,)填充为由于我正在使用烂番茄的API,因此我认为这些值是"新鲜的"或"腐烂的".出于某种原因,当我执行时:
nb = MultinomialNB()
nb.fit(X_train, Y_train)
Run Code Online (Sandbox Code Playgroud)
我明白了:
ValueError: Unknown label type
Run Code Online (Sandbox Code Playgroud)
我尝试构建一对较小的数组:
print xs, '\n', ys
Run Code Online (Sandbox Code Playgroud)
给
[[0 0 0 0 1]
[1 0 0 2 5]
[3 2 5 5 0]
[3 2 0 0 1]
[1 5 1 0 0]]
['rotten' 'fresh' 'fresh' 'rotten' 'fresh']
Run Code Online (Sandbox Code Playgroud)
并且多项NB适合不会出现未知标签错误.有关为什么会发生这种情况的任何想法?
我还用numpy.unique检查了X_train,Y_train中的唯一值,看起来好像没有任何奇怪或错误的标签 - 它们都是'新鲜'或'烂'.
我生成X_train和Y_train的代码:
def make_xy(critics, vectorizer=None):
stext = critics['quote'].tolist() # need to have a list
if vectorizer == None:
vectorizer = CountVectorizer(min_df=0)
vectorizer.fit(stext)
X = vectorizer.transform(stext).toarray() # this is X
Y …Run Code Online (Sandbox Code Playgroud)