Ошибка с размерностью данных (должно быть одномерным) - PullRequest
0 голосов
/ 17 июня 2020

Я пытаюсь определить конформные прогнозы (метод оценки) для моей модели с моими данными. Но это дает мне следующую ошибку:

Traceback (most recent call last):
File "/home/john/Dupont_Internship/CP/scripts/Conformity_PredictionsV2.py", line 100, in <module>
    icp.calibrate(X_cal, y_cal)
File "/home/john/.local/lib/python3.8/site-packages/nonconformist/icp.py", line 104, in calibrate
    cal_scores = self.nc_function.score(self.cal_x, self.cal_y)
Exception: Data must be 1-dimensional

К сожалению, я не уверен, что это на самом деле означает на основе приведенного выше кода. Первоначально я пытался использовать numpy, но это вызывало у меня проблемы, поэтому я решил использовать pandas dataframe в качестве вторичного варианта, чтобы увидеть, есть ли разница (которая была), но теперь я получил ошибку выше .

# initial split into train/test data
train = df.loc[df['split']== 'train']
valid = df.loc[df['split']== 'valid']

#print(train.head())

#Proper Validation Set (Split the Validation set into features and target)
X_valid = valid.iloc[:,:-1]
y_valid = valid.iloc[:,-1]

# Create Training Set (Split the Training set into features and target)
X_train = train.iloc[:,:-1]
y_train = train.iloc[:,-1]

# Split Training set into further training set and calibration set
X_train, X_cal, y_train, y_cal = train_test_split(X_train, y_train, test_size =0.2)

print (X_train.shape, y_train.shape)
#print(type(X_train))
print (X_cal.shape, y_cal.shape)

print("Data has been split")

# -----------------------------------------------------------------------------
# Train and calibrate underlying model
# -----------------------------------------------------------------------------

model = KNeighborsClassifier(n_neighbors=5)
print("Underlying model loaded")
nc = RegressorNc(model, AbsErrorErrFunc()) # Create a default nonconformity function
#nc = NcFactory.create_nc(model) #Alternative Method
print("Nonconformity Function Applied")
icp = IcpRegressor(nc)  # Create an inductive conformal Regressor
print("ICP Regressor Created")

#Dataset Review
print('{}: {} instances, {} features, {} classes'.format(df,
                                                   y_train.size,
                                                   X_train.shape[1],
                                                   np.unique(y_train).size))

icp.fit(X_train, y_train)
icp.calibrate(X_cal, y_cal)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...