本文整理汇总了Python中dataset.DataSet.update_label方法的典型用法代码示例。如果您正苦于以下问题:Python DataSet.update_label方法的具体用法?Python DataSet.update_label怎么用?Python DataSet.update_label使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类dataset.DataSet
的用法示例。
在下文中一共展示了DataSet.update_label方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: extract_data
# 需要导入模块: from dataset import DataSet [as 别名]
# 或者: from dataset.DataSet import update_label [as 别名]
def extract_data(raw_data_file, format_data_path, n_vectors, n_components, shift=-1, n_datums=-1, test_percentage=0):
"""
Extrait les données brutes de raw_data_file, et, à partir des paramètres de formatage renseignés, construit deux fichiers de données préformatées train et test.
Un item de données (datum) est une matrice de la forme (n_vectors,n_components*20), où n_vectors est le nombre de vecteurs à prendre pour un item de donnée, et n_components le nombre de composantes à garder sur chaque vecteur.
:param file raw_data_file: Fichier contenant les données brutes
:param str format_data_path: Chemin vers le dossier où placer les données préformatées
:param int n_vectors: Nombre de vecteurs à considérer comme étant un item de données
:param int n_components: Nombre de composantes à garder sur chaque vecteur. Si = 1, un vecteur ne contiendra que les mfcc, si = 2 un vecteur contiendra les mfcc et leurs dérivées premières, si = 3, il y aura aussi les dérivées secondes.
:param int shift: Décalage/Overlapping. Nombre de vecteurs en commun entre le dernier item de données extrait et le prochain. Attention ! Laisser à -1 pour désactiver l'overlapping. Introduire un overlapping donne des résultats surestimés en apprentissage (voir rapport de stage).
:param int n_datums: the first n_datums will be extracted. -1 to extract data from the whole file
:param int n_datums: Nombre d'items donnée à lire dans le fichier de données brutes avant l'arrêt du script. -1 = Aller jusqu'à la fin du fichier.
:param float test_percentage: Rapport attendu du nombre de données à mettre en généralisation divisé par le nombre de données à mettre en apprentissage. (\*100 = pourcentage de données en test)
:return: Les bases de données train et test (sous forme de classe DataSet)
"""
train = DataSet(format_data_path, "train")
test = DataSet(format_data_path, "test")
data = []
datum = []
feature_list = []
line_count = 0
total_line_count = 0
for feature in raw_data_file:
line_count += 1
if feature[0] == ' ':
# New data vector
feature_list = feature.split()
if feature_list[-1] == ']': feature_list.pop() # remove ending "]" for the last vector of the signal
datum.append([ float(x) for x in feature_list[:(20*n_components)] ])
if len(datum) >= n_vectors:
# Append the datum
data.append(datum)
# Shift the datum
datum = datum[shift:] if shift > 0 else []
if len(data)%20000 == 0: print "extract data >> ", len(data), " datums extracted for", line_count, "lines read"
else:
# New signal
new_str_label = feature.split('#')[0]
if new_str_label != DataSet.str_label:
if data:
# There is data to split in train/test
DataSet.split_train_test(data, test_percentage, train, test)
# Append to files
train.flush_buffer()
test.flush_buffer()
data = []
print "SPLIT : ", "train =", len(train), " - test =", len(test)
print "Line count for this label : ", line_count
print "TOTAL : ", len(train)+len(test), " datums extracted for", total_line_count + line_count, "lines read"
if n_datums > 0 and len(train) + len(test) >= n_datums: break
# Update current label
DataSet.update_label(new_str_label)
print "New LABEL : ", DataSet.str_label, "int : ", DataSet.int_label
total_line_count += line_count
line_count = 0
datum = []
print "extract data >> GRAND TOTAL : ", (len(train) + len(test)), " datums extracted for", total_line_count + line_count, "lines read"
return train, test