如何实现模糊粗略最近邻有序加权平均FRNN-OWA分类以生成准确度分数和分类报告?

如何解决如何实现模糊粗略最近邻有序加权平均FRNN-OWA分类以生成准确度分数和分类报告?

  1. 我正在尝试使用 doc2vec 和 FRNN-OWA 方法对数据进行分类。对于我尝试从代码实现的 FRNN-OWA 代码frnn_emotion_detection ,但是当我尝试运行 Cosine 类时,我收到一个 错误:类型对象 'NNSearch' 没有属性 'Model'.

代码余弦类:

class Cosine(NNSearch):
    '''
    This class defines the cosine similarity relation that can be used into FRNN OWA classification method
    Cosine metric: cos(A,B) = (A * B)(||A|| x ||B||),where A,B - embedding vectors of tweets,* is a scalar product,and ||.|| is the vector norm
    Cosine similarity: cos_similarity(A,B) = (1 + cos(A,B))/2.
    '''
    class Model(NNSearch.Model):
        X_T: np.ndarray
        X_T_norm: np.ndarray
            
        def _query(self,X,m_int: int):
            distances = 1 - 0.5 * X @ self.X_T / np.linalg.norm(X,axis=1)[:,None] / self.X_T_norm
            return least_indices_and_values(distances,m_int,axis=-1)
        
    def construct(self,X) -> Model:
        model: NNSearch.Model = super().construct(X)
        model.X_T = np.transpose(X)
        model.X_T_norm = np.linalg.norm(model.X_T,axis=0)
        return model
  1. 然后我尝试 git clone fuzzy-rough-learn ,它在运行 Cosine 类时工作。但是,当我尝试运行调用 'cross_validation_ensemble_owa' 函数的准确度命令时,会出现错误: AttributeError: 'Model' object has no attribute 'X_T' 。它来自 Cosine 类。

代码“cross_validation_ensemble_owa”:

def cross_validation_ensemble_owa(df,vector_names,K_fold,NNeighbours,lower,upper,method,alpha=0.8):
    
    frnn_acc = []
    random_indices = np.random.permutation(df.index)
    for i in range(K_fold):
        # Split df on train and test data
        test_data = df.loc[df.index.isin(random_indices[i*len(df.index)//K_fold:(i+1)*len(df.index)//K_fold])]
        train_data = df[~df.index.isin(test_data.index)]
        y = train_data['Label']
        y_true = test_data['Label']
        # Apply FRNN OWA method for each feature vector depends on specified output type
        if method == 'labels':
            # Solution for labels calculation
            y_pred_res = test_ensemble_labels(train_data,y,test_data,upper)
        elif method == 'conf_scores':
            # Solution for confidence scores calculation
            y_pred_res = test_ensemble_confscores(train_data,alpha)
        else:
            print('Wrong output type was specified!')
        # Calculate PCC
        frnn_acc.append(accuracy_score(y_true,y_pred_res)[0])
    return frnn_acc

产生新错误的准确率代码AttributeError: 'Model' object has no attribute 'X_T'):

print('accuracy %s' % accuracy_score(cross_validation_ensemble_owa(data,["Vector_d2v"],[19],additive(),'labels')))
print(classification_report(cross_validation_ensemble_owa(data,'labels')))

这是错误的详细信息:

AttributeError                            Traceback (most recent call last)
<ipython-input-74-fc90f2bac465> in <module>()
----> 1 print('accuracy %s' % accuracy_score(cross_validation_ensemble_owa(data,'labels')))
      2 print(classification_report(cross_validation_ensemble_owa(data,'labels')))

9 frames
<ipython-input-68-888ab6434fd0> in cross_validation_ensemble_owa(df,alpha)
     27         if method == 'labels':
     28             # Solution for labels calculation
---> 29             y_pred_res = test_ensemble_labels(train_data,upper)
     30         elif method == 'conf_scores':
     31             # Solution for confidence scores calculation

<ipython-input-67-14268dae82f2> in test_ensemble_labels(train_data,upper)
     15     y_pred = []
     16     for j in range(len(vector_names)):
---> 17         y_pred.append(frnn_owa_method(train_data,vector_names[j],NNeighbours[j],upper)[1])
     18     # Use voting function to obtain the ensembled label - we used mean
     19     y_pred_res = np.mean(y_pred,axis=0)

<ipython-input-64-f945d06e98a8> in frnn_owa_method(train_data,vector_name,upper)
     28     cl = clf.construct(X_train,y)
     29     # confidence scores
---> 30     conf_scores = cl.query(X_test)
     31     # labels
     32     y_pred = np.argmax(conf_scores,axis=1)

/content/fuzzy-rough-learn/frlearn/base.py in __call__(self,X)
    109 
    110         def __call__(self,X):
--> 111             return super().__call__(X)
    112 
    113         @property

/content/fuzzy-rough-learn/frlearn/base.py in __call__(self,*args,**kwargs)
     52             for preprocessing_model in self.preprocessing_models:
     53                 X = preprocessing_model(X)
---> 54             return self._query(X,**kwargs)
     55 
     56         @abstractmethod

/content/fuzzy-rough-learn/frlearn/neighbours/classifiers.py in _query(self,X)
     41             vals = []
     42             if self.upper_approximations:
---> 43                 vals.append(np.stack([approximation(X) for approximation in self.upper_approximations],axis=1))
     44             if self.lower_approximations:
     45                 vals.append(

/content/fuzzy-rough-learn/frlearn/neighbours/classifiers.py in <listcomp>(.0)
     41             vals = []
     42             if self.upper_approximations:
---> 43                 vals.append(np.stack([approximation(X) for approximation in self.upper_approximations],axis=1))
     44             if self.lower_approximations:
     45                 vals.append(

/content/fuzzy-rough-learn/frlearn/neighbours/data_descriptors.py in __call__(self,X)
     42             for preprocessing_model in self.preprocessing_models:
     43                 X = preprocessing_model(X)
---> 44             q_neighbours,q_distances = self.nn_model(X,self.k)
     45             return self._query(q_neighbours,q_distances)
     46 

/content/fuzzy-rough-learn/frlearn/neighbours/neighbour_search.py in __call__(self,k)
     72             if callable(k):
     73                 k = k(self.n)
---> 74             return self._query(X,k)
     75 
     76         @property

<ipython-input-63-01c68ac1ed40> in _query(self,m_int)
     11 
     12         def _query(self,m_int: int):
---> 13             distances = 1 - 0.5 * X @ self.X_T / np.linalg.norm(X,None] / self.X_T_norm
     14             return least_indices_and_values(distances,axis=-1)
     15 
AttributeError: 'Model' object has no attribute 'X_T'

对不起,如果我的解释不够详细,我仍在努力学习。也许有人已经实现了 FRNN-OWA 的代码,可以帮助我,谢谢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?