click_model.py 文件源码

python
阅读 22 收藏 0 点赞 0 评论 0

项目:cas-eval 作者: varepsilon 项目源码 文件源码
def train(self, data):
        reg_weight = self.regularization_weight()

        def f(theta):
            ll = 0
            for d in data:
                session = d['session']
                if DEBUG:
                    assert len(session) > 5
                    assert len(session) < 15
                ll += self.log_likelihood(theta, session, d['serp'], d['sat'], f_only=True).full
            N = len(data)
            reg_term = 0.5 * self.reg_coeff / N * np.multiply(reg_weight, theta).dot(theta)
            if DEBUG:
                self.debug_theta(theta)
                print 'mean LL = %f, reg_term = %f, N = %d' % (ll/N, reg_term, N)
            return -ll / N + reg_term

        def fprime(theta):
            ll_prime = np.zeros(self.num_features)
            for d in data:
                ll_prime += self.log_likelihood(theta, d['session'], d['serp'], d['sat']).gaussian
            N = len(data)
            return -ll_prime / N + self.reg_coeff / N * np.multiply(reg_weight, theta)

        theta0 = self.initial_guess()
        opt_res = scipy.optimize.minimize(f, theta0, method='L-BFGS-B', jac=fprime, options=dict(maxiter=100))
        return opt_res.x
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号