minepy:缓冲区的维数错误
minepy: Buffer has wrong number of dimensions
我正在尝试在 jupyter notebook 中使用最大信息系数,Boston Housing dataset。
import numpy as np
import pandas as pd
from minepy import MINE
#Read dataset
df = pd.read_csv('housing.data', delim_whitespace=True, header=None);
col_name = ['CRIM', 'ZN' , 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD', 'TAX', 'PTRATIO', 'B', 'LSTAT', 'MEDV']
df.columns = col_name;
#Compute MIC
m = MINE()
m.compute_score(df[col_name[0:13]], df.MEDV)
print(m.mic())
m.compute_score(..
给我 ValueError: Buffer has wrong number of dimensions (expected 1, got 2)
.
更新
我现在明白 compute_score()
需要一个向量而不是矩阵。在 df.MEDV
和 13 个特征 df[col_name[0:13]]
之间找到 MIC 分数的正确方法是什么?
我对minepy不太了解,但是查看源代码,compute_score
接收x
和y
参数必须是一维数组,然后如果你传递一个14xN数组 (2D) 这行不通。
而是pstats
(View on API) receives a 2D array and cstats
(View on API)接收一对二维数组,所以你可以看一下两者,如前所述,我对minepy了解不多,也不知道你的目的寻找,但您可以按如下方式使用它们:
from minepy import pstats, cstats
... # Load of the data
micOneVector, ticOneVector = pstats(df) # Returns mic and tic (Arrays of 1D)
micTwoVectors, ticTwoVectors = cstats(df, df.MEDV) # Returns mic and tic (Arrays of 1D)
参考资料
我正在尝试在 jupyter notebook 中使用最大信息系数,Boston Housing dataset。
import numpy as np
import pandas as pd
from minepy import MINE
#Read dataset
df = pd.read_csv('housing.data', delim_whitespace=True, header=None);
col_name = ['CRIM', 'ZN' , 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD', 'TAX', 'PTRATIO', 'B', 'LSTAT', 'MEDV']
df.columns = col_name;
#Compute MIC
m = MINE()
m.compute_score(df[col_name[0:13]], df.MEDV)
print(m.mic())
m.compute_score(..
给我 ValueError: Buffer has wrong number of dimensions (expected 1, got 2)
.
更新
我现在明白 compute_score()
需要一个向量而不是矩阵。在 df.MEDV
和 13 个特征 df[col_name[0:13]]
之间找到 MIC 分数的正确方法是什么?
我对minepy不太了解,但是查看源代码,compute_score
接收x
和y
参数必须是一维数组,然后如果你传递一个14xN数组 (2D) 这行不通。
而是pstats
(View on API) receives a 2D array and cstats
(View on API)接收一对二维数组,所以你可以看一下两者,如前所述,我对minepy了解不多,也不知道你的目的寻找,但您可以按如下方式使用它们:
from minepy import pstats, cstats
... # Load of the data
micOneVector, ticOneVector = pstats(df) # Returns mic and tic (Arrays of 1D)
micTwoVectors, ticTwoVectors = cstats(df, df.MEDV) # Returns mic and tic (Arrays of 1D)
参考资料