python - 3类回归分析中的错误
问题描述
我正在尝试应用一个与所有逻辑回归:
我正在使用一对一的方法(class1 vs class2+ class3、c2 vs c1+c3、c3 vs c1+c2)来计算三个案例的权重w1、w2、w3:
for n1 in range(0,50000):
s1 = np.dot(dt, w1)
p1 = (1 / (1 + np.exp(-s1)))
gr1 = (np.dot(dt.T, p1-c1))
gr1 /= N
w1 -= 0.01 * gr1
if n1 % 10000 == 0 and n1!=0:
loss1 = np.sum( np.log(1 + np.exp(s1))-p1*s1 )
print('loss1',loss1)
dt 是我的特征,
w1,w2,w3 被初始化为 w1=np.zeros((5,1)),
c1=np.vstack((np.ones(40),np.zeros(40),np.zeros(40)))
c2=np.vstack((np.zeros(40),np.ones(40),np.zeros(40)))
c3=np.vstack((np.zeros(40),np.zeros(40),np.ones(40)))
解决方案
所以。iris 数据集在所有集合中并不是完美的线性可分的。因此,当我们使用逻辑回归之类的线性分类器时,无法线性分离的部分的损失往往是不可预测的。你可以放一个很小的学习仇恨和一个耐心的方法来避免过度拟合。将您的数据标准化在 0 和 1 之间也会有所帮助。
推荐阅读
- react-native - 如何使用 React Native 安排本地通知
- reactjs - 从对象渲染组件而不是无休止的比较
- php - (PHP) 从数据库呈现不同的数据类型
- javascript - 如何避免 useSelector hook 引起的组件更新
- php - WSL windows laravel SQLSTATE[HY000] [2002]
- javascript - 如何将 React Context API 与 useReducer 一起使用以遵循与 Redux 类似的风格
- python - 为什么有些 python 在命令提示符下工作时不能在 python 阅读器或 IDLE 上工作?
- c++ - void 循环可以独立运行吗?
- python - For 循环追加到列表(奇怪的可能可以解释的行为)
- sql - BigQuery 从多个数据集中选择、加入并避免名称冲突