Простой способ обработать данные для обучения. - PullRequest
0 голосов
/ 19 ноября 2018

У меня есть набор данных, который меньше 1 миллиона строк и 40 столбцов.Все поля являются категориальными.Некоторые поля имеют значение true / false, а некоторые имеют десятки возможных значений.Эти 39 столбцов являются особенностями.1 столбец true / false является меткой.Чтобы использовать соответствующий жаргон: я хотел бы найти классификатор, который можно было бы обучить прогнозировать значение метки.Я хотел попробовать запустить файл на sklearn..но я не знаю, как преобразовать (обработать?) Мои данные в принятые классификаторами sklearn без помощи профессионального программиста. Есть ли простой выход?Спасибо

1 Ответ

0 голосов
/ 19 ноября 2018

Это пример классификатора для набора данных из 6 столбцов и n строк.

# Importing the libraries
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

# Importing the dataset
dataset = pd.read_csv('name_of_your_dataset.csv')
X = dataset.iloc[:, [2, 3, 4]].values 
# syntax : dataset.iloc[nrows, ncols].values
# ':' depicts all the rows in the dataset
# ncols takes 3rd, 4th and 5th column of the dataset into X
# Change that to your respective columns
y = dataset.iloc[:, 5].values

# Splitting the dataset into the Training set and Test set
from sklearn.cross_validation import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.25, random_state = 0)

# Feature Scaling
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)

# Fitting SVM to the Training set
# You can use any classifier to predict
# This is just a sample program
from sklearn.svm import SVC
classifier = SVC(kernel = 'linear', random_state = 0)
classifier.fit(X_train, y_train)

# Predicting the Test set results
y_pred = classifier.predict(X_test)

Выше приведен код для

Для кодирования категориальных данных необходимо создать dummy variables.

Имейте в виду, что dummy variables должно быть на 1 меньше, чем число categorical variables в столбце.В противном случае программа может привести к dummy variable trap

# Encoding categorical data
# Encoding the Independent Variable
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
labelencoder_X = LabelEncoder()
X[:, 0] = labelencoder_X.fit_transform(X[:, 0])
onehotencoder = OneHotEncoder(categorical_features = [0])
X = onehotencoder.fit_transform(X).toarray()

Это код для encoding категориальных функций 1 столбца. Поместите этот раздел кода непосредственно перед splitting of datasets

Вы можете сделать то же самое для других столбцов, изменив 0's на соответствующие столбцы или используя цикл for

...