Пожалуйста, объясните наборы данных для разбора KDD Cup, используя следующий код - PullRequest
0 голосов
/ 23 апреля 2020

Я следовал этому коду в Github https://github.com/PacktPublishing/Hands-on-Machine-Learning-for-Cyber-Security/blob/master/Chapter06/kmeans.py.

Хотя здесь используется блокнот Юпитера, мне пришлось использовать Pycharm. Пока я просматривал код, я не мог понять этот блок кода

input_path_of_file = "/datasets/kddcup.data"
data_raw = sc.textFile(input_path_of_file, 12)


def parseVector(line):
    columns = line.split(',')
    thelabel = columns[-1]
    featurevector = columns[:-1]
    featurevector = [element for i, element in enumerate(featurevector) if i not in [1, 2, 3]]
    featurevector = np.array(featurevector, dtype=np.float)
    return (thelabel, featurevector)

labelsAndData = raw_data.map(parseVector).cache()
thedata = labelsAndData.map(lambda row: row[1]).cache()
n = thedata.count()

из того, что я могу понять, что после извлечения данных чашки KDD из файла, который сначала выглядит как

0, tcp, http, SF, 215,45076,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, 0,1,1,0,00,0,00,0,00,0,00,1,00,0,00,0,00,0,0,0,00,0,00,0,00,0,00,0,00,0,00,0,00,0,00, в норме.

и затем переходит к parseVector (), чтобы «очистить» данные (если мои предположения верны)

Однако, что меня действительно смущает, так это то, как данные выглядят в def parseVector ().

Пожалуйста, научите этого беспомощного идиота понять, что делает этот фрагмент кода и как должен выглядеть вывод. Большое спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...