我正在尝试使用python 构建一个多类逻辑回归分类器,而不使用SKlearn库。
我的目标是编写一个分类器,用测试数据中的tf-idf值对应用程序的类别(例如,健康,社交等)进行分类。
我现在得到的是一个数据框,其中数据和标签由appname匹配,如图所示。
在图像中,第一个数组'data'是来自训练数据的tf-idf值,第二个数组'labels'对应于app的标签。
我现在所知道的是,我可以使用逻辑回归来学习每个标签的权重和偏差,然后使用这些值来预测应用程序在测试数据中的标签。我现在能做的是使用sigmoid函数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
我不知道以这种方式训练体重和偏见是否正确,任何人都知道如何为每个标签获得权重和偏见以便对应用进行分类?