나는 맞게 필요 RandomForestRegressor
에서 sklearn.ensemble
.
forest = ensemble.RandomForestRegressor(**RF_tuned_parameters)
model = forest.fit(train_fold, train_y)
yhat = model.predict(test_fold)
이 코드는 데이터를 전처리 할 때까지 항상 작동했습니다 ( train_y
). 오류 메시지는 다음과 같습니다.
DataConversionWarning : 1d 배열이 예상되었을 때 열 벡터 y가 전달되었습니다. 예를 들어 ravel ()을 사용하여 y의 모양을 (n_samples,)로 변경하십시오.
모델 = forest.fit (train_fold, train_y)
이전 train_y
에는 시리즈 였지만 이제는 numpy 배열입니다 (열 벡터입니다). 적용 train_y.ravel()
하면 행 벡터가되고 오류 메시지가 나타나지 않습니다. 예측 단계를 통해 매우 오랜 시간이 걸립니다 (실제로는 완료되지 않습니다 …).
문서
에서이 문제를 해결하는 방법에 대한 아이디어 로 정의되어야 함을 RandomForestRegressor
알았습니다 .train_y
y : array-like, shape = [n_samples] or [n_samples, n_outputs]
답변
이 줄을 변경하십시오.
model = forest.fit(train_fold, train_y)
에:
model = forest.fit(train_fold, train_y.values.ravel())
편집하다:
.values
값을 배열로 제공합니다. (모양 : (n, 1)
.ravel
해당 배열 모양을 (n,)로 변환합니다.
답변
KNN 분류기 를 훈련 시키려고 할 때도 이런 상황이 발생했습니다 . 하지만 내가 변경 한 후 경고가 사라졌다 것으로 보인다 :
knn.fit(X_train,y_train)
에
knn.fit(X_train, np.ravel(y_train,order='C'))
이 줄 앞에 import numpy as np
.
답변
나는 같은 문제가 있었다. 문제는 레이블이 열 형식이지만 행에서 예상되는 것입니다. 사용하다np.ravel()
knn.score(training_set, np.ravel(training_labels))
이것이 해결되기를 바랍니다.
답변
아래 코드를 사용하십시오.
model = forest.fit(train_fold, train_y.ravel())
아래와 같이 오류로 인해 여전히 때리는 경우가 있습니까?
Unknown label type: %r" % y
이 코드를 사용하십시오.
y = train_y.ravel()
train_y = np.array(y).astype(int)
model = forest.fit(train_fold, train_y)
답변
이를 수행하는 또 다른 방법은 ravel
model = forest.fit(train_fold, train_y.values.reshape(-1,))
답변
로 neuraxle 쉽게이 문제를 해결 할 수 있습니다 :
p = Pipeline([
# expected outputs shape: (n, 1)
OutputTransformerWrapper(NumpyRavel()),
# expected outputs shape: (n, )
RandomForestRegressor(**RF_tuned_parameters)
])
p, outputs = p.fit_transform(data_inputs, expected_outputs)
Neuraxle은 딥 러닝 프로젝트에서 하이퍼 파라미터 튜닝 및 AutoML을위한 sklearn과 유사한 프레임 워크입니다!
답변
format_train_y=[]
for n in train_y:
format_train_y.append(n[0])