Skip to main content
00:00/00:00
Lecture 73 of 173

Chapter 9 Nearest neighbor

Download Course (Free)

Course Content

0 / 173 completed
Section 1: Course Curriculum173 videos

Chapter 1 Describing a data structure

16m

Part 1. Improving over basic data structures

6m

Chapter 1 Packing your knapsack - Data structures meet the real world

14m

Chapter 1 Introducing data structures

21m

Chapter 2 Improving priority queues - d-way heaps

21m

Chapter 1 Algorithms to the rescue

26m

Chapter 2 Concrete data structures

21m

Chapter 2 Solutions at hand - Keeping a sorted list

21m

Chapter 2 How to implement a heap

21m

Chapter 2 Priority, min-heap, and max-heap

14m

Chapter 2 PushDown

22m

Chapter 2 Top

24m

Chapter 2 Use case - Find the k largest elements

15m

Chapter 2 Heapify

24m

Chapter 2 Analysis of branching factor

23m

Chapter 2 More use cases

29m

Chapter 2 Interpreting results

17m

Chapter 2 Performance analysis - Finding the best branching factor

25m

Chapter 3 Treaps - Using randomization to balance binary search trees

18m

Chapter 2 The mystery with heapify

16m

Chapter 3 A few design questions

21m

Chapter 3 Treap

25m

Chapter 3 Delete

16m

Chapter 3 Performance analysis and profiling

16m

Chapter 3 Profiling height

27m

Chapter 3 Profiling memory usage

18m

Chapter 3 Applications - Randomized treaps

23m

Chapter 4 Bloom filters - Reducing the memory for tracking content

18m

Chapter 4 Alternatives to implementing a dictionary

14m

Chapter 4 Concrete data structures

25m

Chapter 4 Binary search tree - Every operation is logarithmic

26m

Chapter 4 Implementation

20m

Chapter 4 Constructor

24m

Chapter 4 Why Bloom filters work

19m

Chapter 4 Performance analysis

19m

Chapter 4 Explanation of the false-positive ratio formula

11m

Chapter 4 Applications

22m

Chapter 4 Improved variants

25m

Chapter 5 Reasoning on solutions

16m

Chapter 5 Disjoint sets - Sub-linear time processing

19m

Chapter 5 Naïve solution

19m

Chapter 5 Using a tree-like structure

18m

Chapter 5 Heuristics to improve the running time

27m

Chapter 5 Applications

15m

Chapter 6 Trie, radix trie - Efficient string search

28m

Chapter 6 Trie

31m

Chapter 6 Search

23m

Chapter 6 Insert

26m

Chapter 6 Keys matching a prefix

24m

Chapter 6 Applications

21m

Chapter 6 String sorting

23m

Chapter 6 Radix tries

25m

Chapter 6 Search

24m

Chapter 7 First attempt - Remembering values

20m

Chapter 7 Use case - LRU cache

29m

Chapter 7 Handling asynchronous calls

17m

Chapter 7 Memory is not enough (literally)

14m

Chapter 7 Temporal ordering

20m

Chapter 7 Getting rid of stale data - LRU cache

15m

Chapter 7 When fresher data is more valuable - LFU

25m

Chapter 7 How to use cache is just as important

23m

Chapter 7 Read locks

26m

Chapter 7 Solving concurrency (in Java)

28m

Part 2. Multidimensional queries

8m

Chapter 8 Nearest neighbors search

19m

Chapter 8 Moving to k-dimensional spaces

21m

Chapter 8 Simplifying things to get a hint

23m

Chapter 9 K-d trees - Multidimensional data indexing

16m

Chapter 9 Constructing the BST

24m

Chapter 9 Balanced tree

19m

Chapter 9 Remove

32m

Chapter 9 Methods

28m

Chapter 9 Nearest neighbor

37mNow Playing

Chapter 9 Region search

33m

Chapter 10 Inserting points in an R-tree

14m

Chapter 10 R-tree

27m

Chapter 10 Similarity Search Trees - Approximate nearest neighbors search for image retrieval

24m

Chapter 10 Similarity search tree

16m

Chapter 10 SS-tree search

18m

Chapter 10 Insertion - Split nodes

18m

Chapter 10 Delete

27m

Chapter 10 Insert

31m

Chapter 10 Similarity Search

16m

Chapter 10 Approximated similarity search

19m

Chapter 10 SS+-tree

23m

Chapter 10 Reducing overlap

18m

Chapter 11.Centralized application

20m

Chapter 11 Applications of nearest neighbor search

26m

Chapter 11 Other applications

21m

Chapter 11 Multidimensional DB queries optimization

17m

Chapter 11 Moving to a distributed application

25m

Chapter 12 Clustering

18m

Chapter 12 Types of learning

21m

Chapter 12 The curse of dimensionality strikes again

16m

Chapter 12 Boosting k-means with k-d trees

23m

Chapter 12 K-means

32m

Chapter 12 DBSCAN

16m

Chapter 12 And finally, an implementation

22m

Chapter 12 OPTICS

30m

Chapter 12 From definitions to an algorithm

16m

Chapter 12 From reachability distance to clustering

20m

Chapter 12 Hierarchical clustering

30m

Chapter 13 Canopy clustering

21m

Chapter 12. Evaluating clustering results - Evaluation metrics

33m

Chapter 13 Parallel clustering - MapReduce and canopy clustering

24m

Chapter 13 MapReduce

16m

Chapter 13 MapReduce k-means

19m

Chapter 13 Parallelizing canopy clustering

22m

Chapter 13 First map, then reduce

26m

Chapter 13 MapReduce canopy clustering

23m

Chapter 13 MapReduce DBSCAN - Part 1

26m

Chapter 13 MapReduce DBSCAN - Part 2

23m

Part 3. Planar graphs and minimum crossing number

6m

Chapter 14 An introduction to graphs - Finding paths of minimum distance

12m

Chapter 14 Graph properties

16m

Chapter 14 Implementing graphs

21m

Chapter 14 Graph traversal - BFS and DFS

29m

Chapter 14 Reconstructing the path to target

26m

Chapter 14 Beyond Dijkstra’s algorithm - A

13m

Chapter 14 Shortest path in weighted graphs - Dijkstra

28m

Chapter 14 How good is A search

20m

Chapter 14 Heuristics as a way to balance real-time data

16m

Chapter 15 Some basic definitions

13m

Chapter 15 Graph embeddings and planarity - Drawing graphs with minimal edge intersections

14m

Chapter 15 Planar graphs

12m

Chapter 15 Planarity testing

28m

Chapter 15 Non-planar graphs

18m

Chapter 15 Improving performance

25m

Chapter 15 Rectilinear crossing number

14m

Chapter 15 Edge intersections

15m

Chapter 15 Polylines

13m

Chapter 15 Intersections between quadratic Bézier curves

27m

Chapter 16 Gradient descent - Optimization problems (not just) on graphs

24m

Chapter 16 Did you just say heuristics

26m

Chapter 16 How optimization works

33m

Chapter 16 When is gradient descent appliable

15m

Chapter 16 Gradient descent

23m

Chapter 16 Applications of gradient descent

22m

Chapter 16 Gradient descent for graph embedding

27m

Chapter 17 Simulated annealing - Optimization beyond local minima

23m

Chapter 17 Sometimes you need to climb up to get to the bottom

13m

Chapter 17 Why simulated annealing works

19m

Chapter 17 Short-range vs long-range transitions

24m

Chapter 17 Exact vs approximated solutions

18m

Chapter 17 Simulated annealing + traveling salesman

16m

Chapter 17 Simulated annealing and graph embedding

19m

Chapter 17 State transitions

30m

Chapter 18 Genetic algorithms - Biologically inspired, fast-converging optimization

18m

Chapter 17 Force-directed drawing

26m

Chapter 18 Inspired by nature

26m

Chapter 18 Chromosomes

28m

Chapter 18 Natural selection

18m

Chapter 18 Selecting individuals for mating

33m

Chapter 18 The genetic algorithm template

17m

Chapter 18 Crossover

20m

Chapter 18 TSP

17m

Chapter 18 Minimum vertex cover

24m

Chapter 18 Other applications of the genetic algorithm

27m

Chapter 18 Beyond genetic algorithms

21m

Chapter 18 Results and parameters tuning

30m

Appendix B. Big-O notation

17m

Appendix A Blocks and indent

17m

Appendix A Conditional instructions

19m

Appendix A. A quick guide to pseudo-code

20m

Appendix C Tree

22m

Appendix C. Core data structures

27m

Appendix C Hash table

32m

Appendix B Notation

26m

Appendix D. Containers as priority queues

13m

Appendix E. Recursion

18m

Appendix E Tail recursion

12m

Appendix F. Classification problems and randomnized algorithm metrics

16m

Appendix F Classification metrics

16m