コード例 #1
0
ファイル: Models.py プロジェクト: gustavo-momente/fdms_reco
def main():
    # learn_data = Parser.MatrixParser.txttocsc(r"../ml-100k/u1.base")
    # test_data = Parser.MatrixParser.txttocsc(r"../ml-100k/u1.test")
    pairs_lt = Tools.folder2pairs(r"../ml-100k/")
    m_score = 0.0
    for pair in pairs_lt:
        # bias = Bias(Parser.MatrixParser.txttocsc(pair[0]), "item_{}.png".format(pair[2]), case='item')
        # score = bias.predict(Parser.MatrixParser.txttocsc(pair[1]))

        # export_name = "{}.sim".format(pair[0].split("/")[-1])
        #
        # if os.path.isfile(export_name):
        #     bfile = open(export_name, 'rb')
        #     sim = pickle.load(bfile)
        #     bfile.close()
        # else:
        #     sim = SimiTriple(pair[0])
        #     filehandler = open(export_name, "wb")
        #     pickle.dump(sim, filehandler)
        #     filehandler.close()

        # svd = SVD(pair[0], k=10)
        # score = svd.predict(Parser.MatrixParser.txttocsc(pair[1]))

        # fgd = FGD(pair[0], epochs=12, nZ=10, l1_weight=0.1, l2_weight=0.1, learning_rate=0.01)
        # score = fgd.predict(Parser.MatrixParser.txttocsc(pair[1]))

        svdgd = SVDGD(pair[0], nZ=2, learning_rate=0.1, lambda_4=10, epochs=10)
        score = svdgd.predict(Parser.MatrixParser.txttocsc(pair[1]))

        print pair[2], score
        m_score += score
        break
    print "Mean", m_score/len(pairs_lt)
コード例 #2
0
def evalSVD(config):
    pairs_lt = Tools.folder2pairs(r"../ml-100k/")
    m_score = 0.0
    for pair in pairs_lt:
        svd = SVD(pair[0], k=config[0])
        try:
            score = svd.predict(Parser.MatrixParser.txttocsc(pair[1]))
            m_score += score
        except FloatingPointError:
            score = -100
            m_score += score
            print "FP ERROR", pair[2], config
            break
        except:
            score = -500
            m_score += score
            print "PREDICT ERROR", pair[2], config
            break
        # m_score += score

    m_score /= len(pairs_lt)
    print "{:2d}, {:2.4f}".format(config[0], m_score)
    return m_score