MyMediaLite  3.01
Public Member Functions | Static Public Member Functions | Public Attributes | Protected Attributes | Properties
BinaryCosine Class Reference

Class for storing cosine similarities. More...

Inheritance diagram for BinaryCosine:
BinaryDataCorrelationMatrix CorrelationMatrix SymmetricMatrix< T > IMatrix< T >

List of all members.

Public Member Functions

void AddEntity (int entity_id)
 Add an entity to the CorrelationMatrix by growing it to the requested size.
 BinaryCosine (int num_entities)
 Creates an object of type Cosine.
override void ComputeCorrelations (IBooleanMatrix entity_data)
 Compute the correlations from an implicit feedback, positive-only dataset.
IMatrix< T > CreateMatrix (int num_rows, int num_columns)
 Create a matrix with a given number of rows and columns.
int[] GetNearestNeighbors (int entity_id, uint k)
 Get the k nearest neighbors of a given entity.
IList< int > GetPositivelyCorrelatedEntities (int entity_id)
 Get all entities that are positively correlated to an entity, sorted by correlation.
void Grow (int num_rows, int num_columns)
 Grows the matrix to the requested size, if necessary.
double SumUp (int entity_id, ICollection< int > entities)
 Sum up the correlations between a given entity and the entities in a collection.
 SymmetricMatrix (int dim)
 Initializes a new instance of the SymmetricMatrix class.
IMatrix< T > Transpose ()
 Get the transpose of the matrix, i.e. a matrix where rows and columns are interchanged.
void Write (StreamWriter writer)
 Write out the correlations to a StreamWriter.

Static Public Member Functions

static float ComputeCorrelation (HashSet< int > vector_i, HashSet< int > vector_j)
 Computes the cosine similarity of two binary vectors.
static CorrelationMatrix Create (IBooleanMatrix vectors)
 Creates a Cosine similarity matrix from given data.
static CorrelationMatrix Create (int num_entities)
 Creates a correlation matrix.
static CorrelationMatrix ReadCorrelationMatrix (StreamReader reader)
 Creates a CorrelationMatrix from the lines of a StreamReader.

Public Attributes

int dim
 Dimension, the number of rows and columns.

Protected Attributes

internal T[][] data
 Data array: data is stored in columns.
int num_entities
 Number of entities, e.g. users or items.

Properties

override bool IsSymmetric [get]
 returns true if the matrix is symmetric, which is generally the case for similarity matrices
int NumberOfColumns [get]
 The number of columns of the matrix.
int NumberOfRows [get]
 The number of rows of the matrix.
virtual T this[int i, int j] [get, set]
this[int x, int y] [get, set]
 The value at (i,j)

Detailed Description

Class for storing cosine similarities.

http://en.wikipedia.org/wiki/Cosine_similarity


Constructor & Destructor Documentation

BinaryCosine ( int  num_entities) [inline]

Creates an object of type Cosine.

Parameters:
num_entitiesthe number of entities

Member Function Documentation

void AddEntity ( int  entity_id) [inline, inherited]

Add an entity to the CorrelationMatrix by growing it to the requested size.

Note that you still have to correctly compute and set the entity's correlation values

Parameters:
entity_idthe numerical ID of the entity
static float ComputeCorrelation ( HashSet< int >  vector_i,
HashSet< int >  vector_j 
) [inline, static]

Computes the cosine similarity of two binary vectors.

Parameters:
vector_ithe first vector
vector_jthe second vector
Returns:
the cosine similarity between the two vectors
override void ComputeCorrelations ( IBooleanMatrix  entity_data) [inline, virtual]

Compute the correlations from an implicit feedback, positive-only dataset.

Parameters:
entity_datathe implicit feedback set, rows contain the entities to correlate

Implements BinaryDataCorrelationMatrix.

static CorrelationMatrix Create ( IBooleanMatrix  vectors) [inline, static]

Creates a Cosine similarity matrix from given data.

Parameters:
vectorsthe boolean data
Returns:
the similarity matrix based on the data
static CorrelationMatrix Create ( int  num_entities) [inline, static, inherited]

Creates a correlation matrix.

Gives out a useful warning if there is not enough memory

Parameters:
num_entitiesthe number of entities
Returns:
the correlation matrix
IMatrix<T> CreateMatrix ( int  num_rows,
int  num_columns 
) [inline, inherited]

Create a matrix with a given number of rows and columns.

Parameters:
num_rowsthe number of rows
num_columnsthe number of columns
Returns:
A matrix with num_rows rows and num_column columns

Implements IMatrix< T >.

int [] GetNearestNeighbors ( int  entity_id,
uint  k 
) [inline, inherited]

Get the k nearest neighbors of a given entity.

Parameters:
entity_idthe numerical ID of the entity
kthe neighborhood size
Returns:
an array containing the numerical IDs of the k nearest neighbors
IList<int> GetPositivelyCorrelatedEntities ( int  entity_id) [inline, inherited]

Get all entities that are positively correlated to an entity, sorted by correlation.

Parameters:
entity_idthe entity ID
Returns:
a sorted list of all entities that are positively correlated to entitiy_id
void Grow ( int  num_rows,
int  num_cols 
) [inline, inherited]

Grows the matrix to the requested size, if necessary.

The new entries are filled with zeros.

Parameters:
num_rowsthe minimum number of rows
num_colsthe minimum number of columns

Implements IMatrix< T >.

static CorrelationMatrix ReadCorrelationMatrix ( StreamReader  reader) [inline, static, inherited]

Creates a CorrelationMatrix from the lines of a StreamReader.

In the first line, we expect to be the number of entities. All the other lines have the format

		      EntityID1 EntityID2 Correlation
		    

where EntityID1 and EntityID2 are non-negative integers and Correlation is a floating point number.

Parameters:
readerthe StreamReader to read from
double SumUp ( int  entity_id,
ICollection< int >  entities 
) [inline, inherited]

Sum up the correlations between a given entity and the entities in a collection.

Parameters:
entity_idthe numerical ID of the entity
entitiesa collection containing the numerical IDs of the entities to compare to
Returns:
the correlation sum
SymmetricMatrix ( int  dim) [inline, inherited]

Initializes a new instance of the SymmetricMatrix class.

Parameters:
dimthe number of rows and columns
IMatrix<T> Transpose ( ) [inline, inherited]

Get the transpose of the matrix, i.e. a matrix where rows and columns are interchanged.

Returns:
the transpose of the matrix (copy)

Implements IMatrix< T >.

void Write ( StreamWriter  writer) [inline, inherited]

Write out the correlations to a StreamWriter.

Parameters:
writerA StreamWriter

Member Data Documentation

internal T [][] data [protected, inherited]

Data array: data is stored in columns.

int dim [inherited]

Dimension, the number of rows and columns.

int num_entities [protected, inherited]

Number of entities, e.g. users or items.


Property Documentation

int NumberOfColumns [get, inherited]

The number of columns of the matrix.

The number of columns of the matrix

Implements IMatrix< T >.

int NumberOfRows [get, inherited]

The number of rows of the matrix.

The number of rows of the matrix

Implements IMatrix< T >.

T this[int x, int y] [get, set, inherited]

The value at (i,j)

The value at (i,j)

Parameters:
xthe row ID
ythe column ID

Implemented in SparseMatrix< T >, SkewSymmetricSparseMatrix, SymmetricSparseMatrix< T >, SparseBooleanMatrix, SparseBooleanMatrixBinarySearch, and SparseBooleanMatrixStatic.


The documentation for this class was generated from the following file: