Как использовать два разных фрейма данных для обучения и тестирования - PullRequest
0 голосов
/ 04 августа 2020

Я реализую TF-IDF для корпуса (файл .csv), который содержит 10 000 точек данных. Я хочу использовать другой фрейм данных, содержащий 3000 точек данных, для тестирования моего классификатора, но я не знаю, как использовать два отдельных файла, один как поезд, а другой как тест. Для одного файла я использовал этот код:

from sklearn.model_selection import train_test_split
xTrain, xTest, yTrain, yTest = train_test_split(x, y, test_size = 0.3, random_state = 42)

Но в данном случае у меня два фрейма данных.

1 Ответ

0 голосов
/ 06 августа 2020

Вам необходимо загрузить оба файла и для каждого файла и сохранить текстовые данные (xTrain, xTest) и метки (yTrain, yTest) по отдельности.

Поскольку вы работаете с файлами .csv, вы можете загружать это примерно так:

import pandas as pd
from sklearn.feature_extraction.text import TfidfVectorizer

# Load .csv files
csvfilename_train = 'TrainData.csv'
csvfilename_test = 'TestData.csv'

# Read .csv files as pandas dataframes
df_train = pd.read_csv(csvfilename_train)
df_test = pd.read_csv(csvfilename_test)

# Initialize TfidfVectorizer to create your TF-IDF matrix
vectorizer = TfidfVectorizer()

# Extract text data from dataframes
train_corpus  = df_train['text_column'].values
test_corpus  = df_test['text_column'].values

# Extract labels from dataframes
yTrain= df_train['label_column'].values
yTest= df_test['label_column'].values

# Fit TF-IDF vectorizer to train data and transform train_corpus 
xTrain = vectorizer.fit_transform(train_corpus)

# Transform test_corpus to matrix
xTest = vectorizer.transform(test_corpus)

Итак, теперь у вас есть xTrain, xTest, yTrain, yTest.

И, пожалуйста, в следующий раз попробуйте добавить минимальный пример в качестве рабочего кода, чтобы вашу проблему можно воспроизвести и проанализировать.

...