Как передать функции модели Keras?

Я пытаюсь получить практический опыт работы с ML и научиться обучать модели, способной предсказывать пол по имени.

Я векторизую имена (использовал три разных способа сделать это) и передаю их в качестве входных данных для модели, но, как бы я ни играл с ними, я могу только добиться того, чтобы модель была настолько точной (макс. Около 70%).

На данный момент, с 32K именами в моем корпусе, я в значительной степени истощил свои источники дополнительных имен (и, в конце концов, если я буду продолжать гоняться за дополнительными именами, мой словарь в какой-то момент станет достаточно большим, чтобы в любом случае не нуждаться в AI),

Поэтому я подумал, что смогу "помочь" своей сети, дав ей подсказки об именах, чтобы повысить уровень точности.

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

Например эти:

<QuerySet [{'gender': 'Female', 'ends_with_a': 8089}, {'gender': 'Male', 'ends_with_a': 677}]>,
<QuerySet [{'gender': 'Female', 'ends_with_na': 1710}, {'gender': 'Male', 'ends_with_na': 93}]>

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

Чего я не понимаю, так это как передать эти функции в модель без того, чтобы модель запрашивала эти функции, когда я прошу ее предсказать класс для меня.

После того, как я подготовил свои данные, это фрейм панд:

        gender  gender_count    name    vectorized   indexised  nlp_vectorized
20908   1       5               jasmely [0, ..]      [9, ...]   [0.44732133, 0.5620067 ...]

Я использую векторизованные входы в модель для обучения:

X = names_frame["vectorized"].values
X = np.array([np.array(l) for l in X])
Y = names_frame["gender"].values
model = Sequential()
model.add(Dense(16, input_dim=26, activation='sigmoid'))
model.add(Dense(8, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(X, Y, epochs=40, batch_size=500, validation_split=.2, callbacks=[PlotLossesKeras()], verbose=False)

Я могу добавить функции в мой dataframe с данными, но как я могу кормить его к модели?

0 ответов

Другие вопросы по тегам