J'avais besoin d'analyser l'ensemble de données weka au format arff, et j'ai eu un peu de mal à le lire et à l'utiliser par python, donc je vais le résumer.
Il peut être chargé en utilisant loadaiff () dans scipy.io. (Voir référence scipy.io) https://docs.scipy.org/doc/scipy-0.18.1/reference/tutorial/io.html
readarff.py
from scipy.io import arff
import numpy as np
dataset, meta = arff.loadarff("DARPA99Week3-46.arff")
Pour analyser avec scipy ou scikit-learn, je veux en faire un tableau numpy normal, alors convertissez-le avec le script suivant. (Voir «Préparer le résultat de loadarff scipy.io pour scikit-learn» dans Stack Overflow)
arff1.py
ds=np.asarray(dataset.tolist(), dtype=np.float32)
target=np.asarray(ds[:,22].tolist(), dtype=np.int8)
train=ds[:, :21]
Ou
arff2.py
train_data = dataset[meta.names()[:-1]]
train_array = train_data.view(np.float).reshape(data.shape + (-1,))
Une fois que vous avez un tableau numpy, vous pouvez utiliser matplotlib etc. pour afficher des graphiques et effectuer une analyse.
hist.py
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
duration=ds[:,16]
plt.hist(duration, bins=50)
plt.show()
référence scipy.io https://docs.scipy.org/doc/scipy-0.18.1/reference/tutorial/io.html
Prepare scipy.io loadarff result for scikit-learn (Stack Overflow) http://stackoverflow.com/questions/22873434/prepare-scipy-io-loadarff-result-for-scikit-learn
Recommended Posts