<div dir="ltr"><div dir="ltr">Hi community,<div>I have an interesting challenge that i think that it can be resolved using NMF.</div><div>I have a total of 52 product with different protein profiles. I would like to make two protein premixes (two unique profiles) to create all the SKU using different concentrations of them (mixing). I have tried the  following code and it partially works. The main problem is that the levels that i have in the spec are the minimum protein concentrations [minimum guarantee]. </div><div>The solution that I got is the average that minimize the error, but with this profile of proteins and concentrations I have profiles that do not reach the minimum requirements. We can overdose, but we cannot under dose. </div><div><br></div><div>Code:</div><div><div><br></div><div>Data=read.table("clipboard", header=T, sep="\t", dec=".")</div><div>res=nmf(Data[,-1],2, nrun=30, seed=12345)</div><div>C=as.matrix(.coef(res)*100000)</div><div>S=as.matrix(basis(res)/100000)</div><div><br></div><div>#write.csv(S%*%C, "Test1.csv")</div><div>DD=(Data[,-1]-S%*%C)/(Data[,-1])*100+100</div><div>summary(DD)</div></div><div><br></div><div>Is there any way to add some restrictions to the NMF? for example W%*%H> Data</div><div>Is there a better algorithm to factorize this data set?</div><div><br></div><div>Thank you so much for your help!</div><div>Cheers,</div><div>Marcal</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div></div></div>