pystruct.models.
MultiClassClf
(n_features=None, n_classes=None, class_weight=None, rescale_C=False)[source]¶Formulate linear multiclass SVM in C-S style in CRF framework.
Inputs x are simply feature arrays, labels y are 0 to n_classes.
Parameters: | n_features : int
n_classes : int, default=None
class_weight : None, or array-like
rescale_C : bool, default=False
|
---|
Notes
No bias / intercept is learned. It is recommended to add a constant one feature to the data.
It is also highly recommended to use n_jobs=1 in the learner when using this model. Trying to parallelize the trivial inference will slow the infernce down a lot!
Methods
batch_inference (X, w[, relaxed]) |
|
batch_joint_feature (X, Y[, Y_true]) |
|
batch_loss (Y, Y_hat) |
|
batch_loss_augmented_inference (X, Y, w[, ...]) |
|
continuous_loss (y, y_hat) |
|
inference (x, w[, relaxed, return_energy]) |
Inference for x using parameters w. |
initialize (X, Y) |
|
joint_feature (x, y[, y_true]) |
Compute joint feature vector of x and y. |
loss (y, y_hat) |
|
loss_augmented_inference (x, y, w[, relaxed, ...]) |
Loss-augmented inference for x and y using parameters w. |
max_loss (y) |
inference
(x, w, relaxed=None, return_energy=False)[source]¶Inference for x using parameters w.
Finds armin_y np.dot(w, joint_feature(x, y)), i.e. best possible prediction.
For an unstructured multi-class model (this model), this can easily done by enumerating all possible y.
Parameters: | x : ndarray, shape (n_features,)
w : ndarray, shape=(size_joint_feature,)
relaxed : ignored |
---|---|
Returns: | y_pred : int
|
joint_feature
(x, y, y_true=None)[source]¶Compute joint feature vector of x and y.
Feature representation joint_feature, such that the energy of the configuration (x, y) and a weight vector w is given by np.dot(w, joint_feature(x, y)).
Parameters: | x : nd-array, shape=(n_features,)
y : int
y_true : int
|
---|---|
Returns: | p : ndarray, shape (size_joint_feature,)
|
loss_augmented_inference
(x, y, w, relaxed=None, return_energy=False)[source]¶Loss-augmented inference for x and y using parameters w.
Minimizes over y_hat: np.dot(joint_feature(x, y_hat), w) + loss(y, y_hat)
Parameters: | x : ndarray, shape (n_features,)
y : int
w : ndarray, shape (size_joint_feature,)
|
---|---|
Returns: | y_hat : int
|