Есть ли способ перебрать мои особенности поезда? - PullRequest
0 голосов
/ 28 марта 2020

Как загрузить данные формы:

X_train : (4864,6989)
X_test : (2085, 6989)
y_train : (4864, 270)
y_test : (2005, 270)

в память? У меня 16 ГБ ОЗУ.

Что я пробовал:

  1. Загрузка данных кусками

    extracted_df = pd.read_csv("ExtractedData.csv", chunksize=6953)

  2. Использование виртуальной памяти (подкачки) путем входа в системные настройки

  3. Еще большее уменьшение размера чанка.

  4. Не слишком уверен, как использовать пакетный генератор.

Мои данные содержат 98 тыс. строк и 2 столбца. Даже после порции я не могу поместить данные в память. Как я могу перебрать X_train и y_train, чтобы сделать его еще меньше? Скажи 100 строк за итерацию? Возможно что-то вроде:

X_train, X_test, y_train, y_test = train_test_split(train_data, train_labels, shuffle=True, test_size=0.3,random_state=42)
for iterator in X_train.shape[0]:
     estimator.fit(iterator, y_train)

ОБНОВЛЕНИЕ:

def pos_tag(docs):
    nlp = spacy.load('en_core_web_sm')
    tagged_sentences = []
    for item in docs:
        combined = []
        tagged = nlp(item)
        for token in tagged:
            combined.append('_'.join([token.lemma_, token.pos_]))
        combined_string = ' '.join(combined)
        tagged_sentences.append(combined_string)
    return tagged_sentences


def encode_data(docs):
    tokenizer = text.Tokenizer(num_words=75000)
    tokenizer.fit_on_texts(docs)
    tokenized = tokenizer.texts_to_sequences(docs)
    docs = sequence.pad_sequences(tokenized)
    return docs

print("Tagging...")
    docs = pos_tag(docs)
    print("Creating features")
    nn_list = []
    vb_list = []
    for sentence in docs:
        nns = 0
        vbs = 0
        elements = sentence.split('_')
        for item in elements:
            if item == 'NOUN':
                nns += 1
            if item == 'VERB':
                vbs += 1
        nn_list.append(nns)
        vb_list.append(vbs)
    nn_list = np.array(nn_list).reshape(-1, 1)
    vb_list = np.array(vb_list).reshape(-1, 1)

    print("Encoding data...")
    docs_encoded = encode_data(docs)
    docs_encoded = np.array(docs_encoded)
    docs_encoded = np.append(docs_encoded, nn_list, axis=1)
    docs_encoded = np.append(docs_encoded, vb_list, axis=1)
    labels = np.array(labels)
    train_data = docs_encoded.astype(int)
    encoder = LabelEncoder()
    encoder.fit(labels)
    encoded_labels = encoder.transform(labels)
    train_labels = np_utils.to_categorical(encoded_labels)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...