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