我有两个 csv 和 arff 格式的数据集,我一直在 weka 的分类模型中使用它们。我想知道这种格式是否可以在 scikit 中使用来尝试 python 中的其他分类方法。
这就是我的数据集的样子: ASSAY_CHEMBLID...MDEN.23...MA,TARGET_TYPE...否...MA,TARGET_TYPE...apol...MA,TARGET_TYPE...ATSm5...MA,TARGET_TYPE...SCH.6。 ..MA,TARGET_TYPE...SPC.6...MA,TARGET_TYPE...SP.3...MA,TARGET_TYPE...MDEN.12...MA,TARGET_TYPE...MDEN.22... MA,TARGET_TYPE...MLogP...MA,TARGET_TYPE...R...MA,TARGET_TYPE...G...MA,TARGET_TYPE...I...MA,有机体...否... MA,有机体...C2SP1...MA,有机体...VC.6...MA,有机体...ECCEN...MA,有机体...khs.aasC...MA,有机体... MDEC.12...MA,有机体...MDEC.13...MA,有机体...MDEC.23...MA,有机体...MDEC.33...MA,有机体...MDEO。 11...MA,有机体...MDEN.22...MA,有机体...topoShape...MA,有机体...WPATH...MA,有机体...P...MA,Lij 0.202796,0.426972,0.117596,0.143818,0.072542,0.158172,0.136301,0.007245,0.016986,0.488281,0.300438,0.541931,0.644161,0.04 8149,0.02002,0,0.503415,0.153457,0.288099,0.186024,0.216833,0.184642,0,0.011592,0.00089, 0,0.209406,0
其中 Lij 是我的类(class)标识符(0 或 1)。我想知道是否需要使用 numpy 进行先前的转换。
最佳答案
要读取 ARFF 文件,您需要安装 liac-arff 。详情请参阅链接。 安装完成后,请使用以下代码读取 ARFF 文件
import arff
import numpy as np
# read arff data
with open("file.arff") as f:
# load reads the arff db as a dictionary with
# the data as a list of lists at key "data"
dataDictionary = arff.load(f)
f.close()
# extract data and convert to numpy array
arffData = np.array(dataDictionary['data'])
读取csv数据的方法有多种,我发现最简单的是使用函数 read_csv
来自Python的模块Pandas 。有关安装的详细信息,请参阅链接。
读取csv数据文件的代码如下
# read csv data
import pandas as pd
csvData = pd.read_csv("filename.csv",sep=',').values
无论哪种情况,您都会有一个包含数据的 numpy 数组。因为最后一列代表(类/目标/地面实况/标签)。您需要将数据分离到特征数组 X
和目标向量y
。例如
X = arffData[:, :-1]
y = arffData[:, -1]
哪里X
包含 arffData
中的所有数据除了最后一列和 y
包含 arffData
中的最后一列
现在您可以使用任何 supervised learning binary classifier from scikit-learn .
关于python - 如何将 csv 或 arff 导入到 scikit?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48573169/