Я пытаюсь построить мультиклассовый классификатор логистической регрессии, используя python без библиотеки SKlearn .
Моя цель - написать классификатор для классификации категории приложения (например, здравоохранение, социальные сети и т. Д.) По значениям tf-idf в тестовых данных.
То, что я получил сейчас, - это датафрейм, в котором данные и метки сопоставляются по имени приложения, как показано на рисунке.
![enter image description here](https://i.stack.imgur.com/tGkbS.jpg)
На рисунке первый массив 'data' - это значения tf-idf из обучающих данных, а второй массив 'меток' соответствует метке приложения.
Что я теперь знаю, так это то, что я могу использовать логистическую регрессию для изучения весов и смещений для каждой метки, а затем использовать эти значения для прогнозирования метки приложения в тестовых данных. И теперь я могу использовать сигмоидную функцию p = 1.0 / (1.0 + np.exp (-z)), где z - это b + w1x1 + w2x2 + ... + wnxn (b - это смещение, w - это веса, а x - это значение tf-idf в этом случае). Я просто пытаюсь получить вес и уклон с первого пункта. Код выглядит следующим образом:
# the first training item
X = train_data[0, 0:13625]#13625 features
z = 0.0
for j in range(len(X)):
z += W[j] * X[j]
z += b
p = 1.0 / (1.0 + np.exp(-z)) # sigmoid function
y = train_data[1, i] # I don't know if it is right to use the second item's feature as a target.
# update all weights after each train item
for j in range(0, 13625): # gradient ascent log likelihood
W[j] += lr * X[j] * (y - p) # t - o gives an "add"
b += lr * (y - p) # update bias
Я не знаю, правильно ли обучать веса и смещения таким образом, у кого-нибудь есть идея о том, как я могу получить веса и смещения для каждого ярлыка, чтобы классифицировать приложение?