저는 Machine Learning의 초보자이며 OneHotEncoder 클래스를 사용하여 오류가 발생했습니다. 오류 : "예상 된 2D 배열 대신 1D 배열이 있습니다." 그래서 1D 배열을 생각하면 다음과 같습니다 : [1,4,5,6]
그리고 2D 배열은 [[2,3], [3,4], [5,6]]
이 될 것입니다. 그러나 왜 아직도 실패하고 있는지 알 수 없습니다. 그것은이 라인에 실패하는 것 : 오류 "2D 배열이 필요합니다. 대신 1D 배열이 있습니다."OneHotEncoder 사용
X[:, 0] = onehotencoder1.fit_transform(X[:, 0]).toarray()
여기 내 전체 코드입니다 :
# Import Libraries
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
# Import Dataset
dataset = pd.read_csv('Data2.csv')
X = dataset.iloc[:, :-1].values
y = dataset.iloc[:, 5].values
df_X = pd.DataFrame(X)
df_y = pd.DataFrame(y)
# Replace Missing Values
from sklearn.preprocessing import Imputer
imputer = Imputer(missing_values = 'NaN', strategy = 'mean', axis = 0)
imputer = imputer.fit(X[:, 3:5 ])
X[:, 3:5] = imputer.transform(X[:, 3:5])
# Encoding Categorical Data "Name"
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
labelencoder_x = LabelEncoder()
X[:, 0] = labelencoder_x.fit_transform(X[:, 0])
# Transform into a Matrix
onehotencoder1 = OneHotEncoder(categorical_features = [0])
X[:, 0] = onehotencoder1.fit_transform(X[:, 0]).toarray()
# Encoding Categorical Data "University"
from sklearn.preprocessing import LabelEncoder
labelencoder_x1 = LabelEncoder()
X[:, 1] = labelencoder_x1.fit_transform(X[:, 1])
난 당신이 내가 라벨했다 2 열이이 코드에 의해 알 수 있습니다 확신합니다. Label Encoder를 사용하여 해당 열을 숫자로 변환했습니다. 내가 레이블을 인코딩하는 방법이었다 마음에 온
0 1 0
1 0 1
있는 유일한 방법 : 각 행이 같은 것을 할 것이다, 그래서 나는 한 단계 더 가져 가서 매트릭스로 다음을 설정하는 OneHotEncoder 사용하고 싶습니다. 나는 그들을 한꺼번에하는 대신에 한 명씩 그렇게했다. 이 문제가 확실하지 않습니다.
나는 이런 식으로 뭔가를 기대했다 : 아래에서
# Encoding Categorical Data "Name"
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
labelencoder_x = LabelEncoder()
X[:, 0] = labelencoder_x.fit_transform(X[:, 0])
# Transform into a Matrix
onehotencoder1 = OneHotEncoder(categorical_features = [0])
X[:, 0] = onehotencoder1.fit_transform(X[:, 0]).toarray()
# Encoding Categorical Data "University"
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
labelencoder_x1 = LabelEncoder()
X[:, 1] = labelencoder_x1.fit_transform(X[:, 1])
# Transform into a Matrix
onehotencoder2 = OneHotEncoder(categorical_features = [1])
X[:, 1] = onehotencoder1.fit_transform(X[:, 1]).toarray()
내 모든 오류를 발견 할 것이다 :
File "/Users/jim/anaconda3/lib/python3.6/site-packages/sklearn/utils/validation.py", line 441, in check_array
"if it contains a single sample.".format(array))
ValueError: Expected 2D array, got 1D array instead:
array=[ 2. 1. 3. 2. 3. 5. 5. 0. 4. 0.].
Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.
올바른 방향으로 어떤 도움이 좋을 것.
사용'X [:, 0] = onehotencoder1.fit_transform를 해결하는 올바른 방법 인 경우 X.reshape는 (-1,1)
오류는 이제 사라,하지만 확실하지 않은 것으로 나타납니다 [:, 0]. 추락 (-1,1)). toarray ()' –