Download presentation
Presentation is loading. Please wait.
Published byKayden Hollifield Modified over 10 years ago
1
1 Using Blind Search and Formal Concepts for Binary Factor Analysis Aleš Keprt ales.keprt@vsb.cz
2
2 Synopsis Binary Factor Analysis (BFA) - introduction to BFA - exact solution of BFA - quality checking Possible optimizations Blind Search method Method based on Formal Concepts Tests and the comparison of methods Possible future work
3
3 Binary Factor Analysis (BFA) Factor analysis of binary data Using boolean arithmetic Trying to express matrix X as a product of two matrices is binary matrix multiplication Initial conditions: we know X, dimensions of all matrices, number of one’s per row of A
4
4 Exact BFA Solution (i.e. reference factorizer) For checking other algorithms Searches for the best (optimal) solution Exact = opposite to approximate solution The key: Perform all possible optimizations to avoid checking of all bit-combinations
5
5 Boolean arithmetic Classical arithmetic: Boolean arithmetic:
6
6 Quality check Discrepancy (česky „odchylka”) Our goal is to minimize discrepancy We distinguish between positive and negative discrepancy
7
7 Possible optimizations Empty rows and columns – skip Duplicate rows and columns – merge Order factor loadings (rows of A) Constant number of one’s per row of A Use the knowledge of A to get F Parallel (distributed) computaion using multiple computers
8
8 Quality check When merging duplicate rows/columns:
9
9 Blind Search Blind Search = „slepé hledání” The strategy: 1. Build up particular candidate for A 2. Find the best F for this A 3. Compute discrepancy 4. Remember the best A,F pair so far 5. Back to step 1
10
10 Blind Search (2.) The key tasks: 1. Building up the candidates for A 2. How to get F when knowing A Building up the candidates for A: - row by row (one row one factor) - bit-coded matrices can be much faster - factors cannot repeat on several rows
11
11 Blind Search (3.) How to get F when knowing X and A: - bit-coded matrices may help (yet again) - going row by row (better than cassical „rows x columns” multiplication algo) How to get the particular row of F: (a) blind search (b) do some preprocessing, then blind search
12
12 Formal context
13
13 Formal concept
14
14 Using Formal Concepts Concepts are our candidates for the rows of matrix A Example: set “p3” - data matrix size 100x100 - 10 concepts (see pict.) Searching for 5 factors: - only 8 candidates - 56 possible combinations
15
15 Details Concepts generate no negative discrepancy higher computation error higher semantic value (for us) We can get negative discrepancy when computing F (as discussed before) Performed tests gave promising results
16
16 Final Comparison The presented algo’s are very similar Giving the same results in our tests Computation times are very different - times of set “p2” (mentioned before): blind search: approx. 3x10 9 years concepts: 7 seconds
17
17 Possible Future Work Current implementaion uses independent application to compute concepts lattices Integration to a single application may speed up the computation We don’t need to compute whole concept lattice, even don’t need to know all concepts Need to find better algorithm for binary matrix pseudo-division F = X/A
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.