训练数据和测试数据之间的OneHotEncoding映射问题

时间:2017-04-03 03:32:15

标签: pandas numpy scikit-learn one-hot-encoding

我已经通过sklearn OneHotEncoding方法转换了训练和测试数据集。但是,转换结果具有不同的类型形状。所以不可能应用于其他算法,如逻辑回归。

如何根据训练数据集的形状重塑测试数据?

最好的关注,克里斯

template<class KeyType, class ItemType>
class AVL
{
 protected:
 template<class KeyType, class ItemType>
 class AVLNode
 {
  public:
  AVLNode(KeyType key, ItemType item) :
  m_Balance(0), m_Depth(0),
  m_Key(key), m_Data(item),
  m_pLeft(0), m_pRight(0)
  {
  }

  KeyType       m_Key;
  ItemType  m_Data;

  AVLNode*  m_pLeft;
  AVLNode*  m_pRight;
  };

  AVLNode<KeyType, ItemType>* m_pRoot;
  public:
  AVL() : m_pRoot(0) { }
  ~AVL() { }
};

1 个答案:

答案 0 :(得分:1)

非常感谢你,Vivek!由于你的帮助,我已经解决了这个问题。

def data_transformation2(data, data_test, dummy):
    le = LabelEncoder()

    # Encoding the columns with multiple categorical levels
    for col in dummy:
        le.fit(data[col])
        data[col] = le.transform(data[col])

    for col in dummy:
        le.fit(data_test[col])
        data_test[col] = le.transform(data_test[col])

    enc = OneHotEncoder()
    dummy_data = np.array(data[dummy])
    dummy_data_test = np.array(data_test[dummy])

    enc.fit(dummy_data)

    dummy_data = enc.transform(dummy_data).toarray()
    dummy_data_test = enc.transform(dummy_data_test).toarray()

    print(dummy_data.shape)
    print(dummy_data_test.shape)