Training F1 Score:
Training F1 Score:
In the tradition of Tkinter SVM GUI, the purpose of this website is to demonstrate how machine learning model forms are affected by the shape of the underlying dataset. By selecting a dataset or by creating one of your own, you can fit a model to the data and see how the model would make decisions based on the data it has been trained on. The fitted contours display the highest likelihoods of the class the model would select.
Although this is a toy example, hopefully it helps give you the intuition that the machine learning process is a model selection search for the best combination of features, algorithm, and hyperparameter that generalize well in a bounded feature space.
This application is for demonstration purposes only.
Naive Bayesian models are a collection of supervised classification algorithms that apply Bayes rule of conditional probability with the "naive" assumption of conditional independence between all pairs of features given the value. Bayesian predictions are based on the conditional likelihood of the joint probability of all features and the target class. Becasue features are treated like likelihoods, the primary difference of each classifier is the assumptions they make about the distrubition of the features.
array-like shape (n_classes,)
float
float
bool
float or None
bool
Support vector machines are supervised, discriminitive classifiers that learn an optimal hyperplane that can separate and categorize data. This hyperplane (e.g. an defined space one dimension less than the ambient space) maximizes the distance between groups of classes by selecting support vectors from each group (potentially with some slack) then finding the parallel hyperplane between those vectors that is halfway between the orthogonal. To optimize support vector discovery, the kernel functions are used to find mappings that increase the space between points, increasing separability between classes.
float
{'linear', 'poly', 'rbf', 'sigmoid', 'precomputed', None}
(n_samples, n_samples)
.
int
float
float
boolean
float
{dict, 'balanced'}
n_samples / (n_classes * np.bincount(y))
int
{‘ovo’, ‘ovr’}
(n_samples, n_classes)
as all other classifiers, or the original one-vs-one (‘ovo’) decision function of libsvm which has shape
(n_samples, n_classes * (n_classes - 1) / 2)
. However, one-vs-one (‘ovo’) is always used
as multi-class strategy.
Logistic Regression is a supervised classification algorithm that models the probabilities describing the possible outcome (class) of a single trial using a logistic function. This method is also known as a logit regression, maximum-entropy classifier, or log-linear classifier.
{'l1', 'l2', 'elasticnet', 'none'}
bool
dual=False
when n_samples > n_features
.
float
float
bool
float
[x, self.intercept_scaling]
, i.e. a “synthetic” feature with constant value
equal to intercept_scaling is appended to the instance vector.
{dict, 'balanced'}
n_samples / (n_classes * np.bincount(y)).
{'newton-cg', 'lbfgs', 'liblinear', 'sag', 'saga'}
int
{'ovr', 'multinomial', 'auto'}
float
0 <= l1_ratio <=1
. Only used if penalty='elasticnet'
.
Setting l1_ratio=0
is equivalent to using penalty='l2'
, while setting l1_ratio=1
is equivalent to using penalty='l1'
. For 0 < l1_ratio < 1
, the penalty is a combination of L1 and L2.