低秩矩阵学习库。一个python库,用于机器学习中的低秩矩阵方法,如矩阵完成、鲁棒PCA和CUR因子分解
LRMatLearnLib的Python项目详细描述
LRMATEARNLIB公司
利用矩阵补全法进行电影改编
首先加载MovieLens1M数据集
data=np.loadtxt('ml-1m/ratings.dat',delimiter='::')X=data[:,[0,1]].astype(int)-1y=data[:,2]n_users=max(X[:,0])+1n_movies=max(X[:,1])+1print((n_users,n_movies))^{pr2}$
所以,我们有6040个用户和3952部电影。总共有2300万的潜在收视率,其中我们知道有100万。我们将保留20万的收视率来测试我们的结果。在
fromsklearn.model_selectionimporttrain_test_splitX_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=42)
进口MC.py公司并进行数据拟合
fromMCimport*fromstatisticsimportmeanmc_model=MC(n_users,n_movies,5)mc_model.fit(np.array(X_train).transpose(),y_train)y_predict=mc_model.predict((np.array(X_test).transpose()))print("MAE:",mean(abs(y_test-y_predict)))print("Percent of predictions off my less than 1: ",np.sum(abs(y_test-y_predict)<1)/len(y_test))
MAE: 0.6910439339771605
Percent of predictions off my less than 1: 0.7603603243318903
稳健主成分分析在背景锻件分离中的应用
导入包,打开视频文件,并将帧展平为向量。在
importsyssys.path.append('../')fromLRMatLearnLib.datasets.data_loaderimport*fromLRMatLearnLib.RPCA.algorithmsimport*importmatplotlib.pyplotaspltimportmatplotlib.animationasanimationv=load_video("../datasets/videos/escalator.avi")(n_frames,d1,d2)=v.shapev=v.reshape(n_frames,d1*d2)
运行altProjNiave,一个基本的RPCA算法。第一个问题是要分解的矩阵,第二个是低秩矩阵的秩,第三个是稀疏矩阵中的项数。在
(L,S)=altProjNiave(v,2,100*n_frames)
将框架重新塑造成图像并绘制它们。在
L=L.reshape(n_frames,d1,d2)S=S.reshape(n_frames,d1,d2)v=v.reshape(n_frames,d1,d2)all=np.concatenate((v,L,S),axis=2)plt.imshow(all[1,:,:])plt.show()
- 项目
标签: