Use PCA to reduce the dimensionality of the data points in pca-data.txt from 3D to 2D. Each line of the data file represents the 3D coordinates of a single point. Please output the directions of the first two principal components.
FastMap
Use FastMap to embed the objects in fastmap-data.txt into a 2D space. The first two columns in each line of the data file represent the IDs of the two objects; and the third column indicates the symmetric distance between them. The objects listed in fastmap-data.txt are actually the words in fastmapwordlist.txt (nth word in this list has an ID value of n). The distance between each pair of objects is the Damerau–Levenshtein distance between them. Plot the words on a 2D plane using your FastMap solution.
You can write your program in any programming language. However, you will have to implement the algorithms yourself instead of using high-level library functions - except for computing eigenvectors and eigenvalues. Provide a description of the data structures you use, any code-level optimizations you perform, any challenges you face, and of course, the requested outputs.
Part 2: Software Familiarization
Do your own research and find out about library functions that offer good implementations of PCA and FastMap. Learn how to use them. Compare them against your implementations and suggest some ideas for how you can improve your code. Describe all this in your report.
Part 3: Applications
Do your own research and describe some interesting applications of PCA and FastMap.