我是Python的新手。我想使用numpy和sklearn来KNN
。但是,我的数据中有nan
。我将dtype
的{{1}}设置为genfromtxt
,但数组如下所示:
None
然后,我会在[('ADT1_YEAST', 0.58, 0.61, 0.47, 0.13, 0.5, 0.0, 0.48, 0.22, 'MIT')
('ADT2_YEAST', 0.43, 0.67, 0.48, 0.27, 0.5, 0.0, 0.53, 0.22, 'MIT')
('ADT3_YEAST', 0.64, 0.62, 0.49, 0.15, 0.5, 0.0, 0.53, 0.22, 'MIT') ...,
('ZNRP_YEAST', 0.67, 0.57, 0.36, 0.19, 0.5, 0.0, 0.56, 0.22, 'ME2')
('ZUO1_YEAST', 0.43, 0.4, 0.6, 0.16, 0.5, 0.0, 0.53, 0.39, 'NUC')
('G6PD_YEAST', 0.65, 0.54, 0.54, 0.13, 0.5, 0.0, 0.53, 0.22, 'CYT')]
函数上获得data type not understood
。
这是我的代码:
NearestNeighbors
任何人都可以教我如何阅读清单吗?提前谢谢。
答案 0 :(得分:1)
如果我理解了这个问题,你真的会问如何对categorical variables进行编码,使得它们可以被最近邻算法正确解释。您可以按照4.2.4. Encoding categorical features中的说明使用sklearn
执行此操作。另一方面,如果您的功能不完整,请4.2.6. Imputation of missing values。
答案 1 :(得分:0)
我认为您需要将数据正确地放入矩阵中。我通常做这样的事情:
import numpy as np
features = [] # list of lists of the feature vairables.
classes = [] # list of the target variables
for line in f:
line = line.strip().split() # will split the line into pieces on any white spaces
features.append(line[1:-1]) # or whatever indices your features are in
classes.append(line[-1]) # or whatever index your target variable is in
classes = np.array(classes)
features = np.array(features,dtype=np.float)