????1.????
???????????(MatrixFactorization??MF)???????????????????????????????е?????????(SVD)????????SVD??????Щ???????????????SVD????????????????3?????????????????????MF???????????????????????????????Users???????????????????????Items????????????
????2.?????
???????????????????????????????????????????????????????????????0??0.2??0.7??????????????????????????Щ???????????????????????????????????????0??1????????????0.1??0.6??0.2????????????????????????????????????????????????????????????????????????????0*0.1+0.2*0.6+0.7*0.2=0.26
????????????????????????????????????????????ο??????????????Э??????????C++?????????????????????????????Item??????????????????????Item??????????????????????????????????????ó????????????Item?????????????????????????????????????Items????????????.

???????????10*10????????????A????????????10*5?????B???????5*10?????C???????????B???????????t?????????????????????Items????ó?????????B??????????????????????Item????5?????????????????????5??????????趨????????????????????????????????A?е?????????????С???????????????á?B??C??????????????????????B??C???????????????????????????????????????????B??C?е???????B??C???????????????????????????????????С????????????B??C????????????????????Item?????????????????????ο???Matrix_factorization_techniques_for_recommender_systems.pdf
????3.???
???????????????????????????????????movielens.rar??????????????????
????????????txt?????????
1#ifndefREADANDWRITEDATA_H
2#defineREADANDWRITEDATA_H
3#include<iostream>
4#include<fstream>
5#include<vector>
6#include<string>
7
8usingnamespacestd;
9
10template<typenameT>
11vector<vector<T>>txtRead(stringFilePath??introw??intcol)
12{
13ifstreaminput(FilePath);
14if(!input.is_open())
15{
16cerr<<"Fileisnotexisting??checkthepath: "<<FilePath<<endl;
17exit(1);
18}
19vector<vector<T>>data(row??vector<T>(col??0));
20for(inti=0;i<row;++i)
21{
22for(intj=0;j<col;++j)
23{
24input>>data[i][j];
25}
26}
27returndata;
28}
29
30template<typenameT>
31voidtxtWrite(vector<vector<T>>Matrix??stringdest)
32{
33ofstreamoutput(dest);
34vector<vector<T>>::size_typerow=Matrix.size();
35vector<T>::size_typecol=Matrix[0].size();
36for(vector<vector<T>>::size_typei=0;i<row;++i)
37{
38for(vector<T>::size_typej=0;j<col;++j)
39{
40output<<Matrix[i][j];
41}
42output<<endl;
43}
44}
45#endif