Monday, November 6, 2017

We were enumerating the differences between data mining and machine learning. Data Mining is generally used in conjunction with a database. Some of the algorithms included with models and predictions used with data mining fall in the following categories:
Classification algorithms - for finding similar groups based on discrete variables
Regression algorithms - for finding statistical correlations on continuous variables from attributes
Segmentation algorithms - for dividing into groups with similar properties
Association algorithms - for finding correlations between different attributes in a data set
Sequence Analysis Algorithms - for finding groups via paths in sequences

Some of the machine learning algorithms such as from MicrosoftML package includes:
fast linear  for binary classification or linear regression
one class SVM for anomaly detection
fast trees for regression
fast forests for churn detection and building multiple trees
neural net for binary and multi-class classification
logistic regression for classifying sentiments from feedback

Applications of machine learning are generally for :
1) making recommendations with collaborative filtering
2) discovering groups using clustering and unsupervised methods as opposed to neural networks, decision trees, support vector machines and bayesian filtering which are supervised learning methods
3) searching and ranking as used with pagerank for web pages
4) text document filtering
5) modeling decision trees and
6) for evolving intelligence such as with genetic programming and elimination of weakness

#codingexercise
Get cosine similarity between two vectors

double get_cosine_distance(int dimension, double* vec1, double* vec2)
{
    double distance = 0;
    double magnitude = 0;
    int i, j;
    for (i = 0; i < dimension; i++) distance += vec1[i] * vec2[i];
    for (i = 0; i < dimension; i++) magnitude += vec1[i] * vec1[i];
    magnitude = sqrt(magnitude);
    distance /= magnitude;
    magnitude = 0;
    for (i = 0; i < dimension; i++) magnitude += vec2[i] * vec2[i];
    magnitude = sqrt(magnitude);
    distance /= magnitude;
    return distance;
}

No comments:

Post a Comment