Наивный байесовский для классификации столбцов - PullRequest
0 голосов
/ 23 мая 2018

Hello StackExchange Community,

У меня есть уникальный случай использования для наивного Байеса, где я пытаюсь обучить свою модель идентифицировать имена выходных столбцов на основе предыдущих данных имен входных столбцов.

По сути, мои данные выглядят так:

 1. Output Column  |   Input Columns  
 2. Col1        |       ABC DEF GHI 
 3. Col2        |       JKL MNO QPR
 4. Col3        |       STU VWX

Это исторические данные, которые указывают, что

мы получили данные в столбце с именем «ABC», и мы отобразили данные в «Col1«мы получили данные в столбце с именем« DEF », и мы отобразили данные в« Col1 », мы получили данные в столбце с именем« JKL », и мы отобразили данные в« Col2 »и т. д. ...

Я перестроил свои данные, как показано ниже, и обучил свою модель, используя текстовую классификацию Наивного Байеса (аналогично классификатору спама в электронной почте).

1. Output Column   |   Input Columns
 2. Col1           |         ABC
 3. Col2           |         JKL
 4. Col3           |         STU
 5. Col1           |         DEF
 6. Col2           |         MNO
 7. Col3           |         STU

и т. Д. *

Дляпредсказания, я буду предоставлять входные столбцы для обученной модели и спрашивать, к какому классу выходных столбцов должен входить вход, наряду с оценкой вероятности.

Как вы думаете, мой подход к решению этой проблемы правильный?Имея около 100 строк данных, я получаю точные прогнозы, но с низкой вероятностью (~ 40%).

Любая обратная связь будет оценена здесь, так как эта модель ML может помочь нам в автоматизации задач.

Код:

vectorizer = CountVectorizer()
counts = vectorizer.fit_transform(training_data['Input Column'].values)
classifier = MultinomialNB()
targets = training_data['Output Column'].values

classifier.fit(counts, targets)

for index, row in test_data.iterrows():
    panel=row['SourcePanel']
    panel=[panel]
    example_counts = vectorizer.transform(panel)
    predictions = classifier.predict(example_counts)
    probability = classifier.predict_proba(example_counts)
    df=pd.DataFrame(classifier.predict_proba(example_counts), columns=classifier.classes_)
    print("The source panel attribute ", panel, " maps to Target entity Attribute", df[predictions], "probability")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...