def _fit(self,X,y=None):
if isinstance(X, pyisc.DataObject) and y is None:
assert y is None # Contained in the data object
self.class_column = X.class_column
if self.class_column >= 0:
self.classes_ = X.classes_
self._anomaly_detector._SetParams(
0,
-1 if X.class_column is None else X.class_column,
self.anomaly_threshold,
1 if self.is_clustering else 0
)
self._anomaly_detector._TrainData(X)
return self
if isinstance(X, ndarray):
class_column = -1
data_object = None
assert X.ndim <= 2
if X.ndim == 2:
max_class_column = X.shape[1]
else:
max_class_column = 1
if isinstance(y, list) or isinstance(y, ndarray):
assert len(X) == len(y)
class_column = max_class_column
data_object = pyisc.DataObject(numpy.c_[X, y], class_column=class_column)
elif y is None or int(y) == y and y > -1 and y <= max_class_column:
self.class_column = y
data_object = pyisc.DataObject(X,class_column=y)
if data_object is not None:
return self._fit(data_object)
raise ValueError("Unknown type of data to fit X, y:", type(X), type(y))
评论列表
文章目录