estimators.py 文件源码

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

项目:OnPLS 作者: tomlof 项目源码 文件源码
def f(self, X, W):
        """Function value.
        """
        X_ = list(X)
        n = len(X_)
        K = W[0].shape[1]  # The number of components
        f = 0.0
        for k in range(K):
            for i in range(n):
                wik = W[i][:, [k]]
                for j in range(n):
                    if self.pred_comp[i][j] > 0:
                        wjk = W[j][:, [k]]

                        ti = np.dot(X_[i], wik)
                        tj = np.dot(X_[j], wjk)

                        f += np.asscalar(np.dot(ti.T, tj))

            # Deflate for next component
            if k < K - 1:  # Do not deflate for last component
                for i in range(n):
                    wi = W[i][:, k]
                    ti = np.dot(X_[i], wi)
                    titi = np.asscalar(np.dot(ti.T, ti))
                    if titi > consts.TOLERANCE:
                        pi = np.dot(X_[i].T, ti) / titi

                        X_[i] = X_[i] - np.dot(ti, pi.T)  # Deflate
                    # else:
                    #     pi = np.zeros_like(wi)

        return f
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号