赞
踩
- import numpy as np
- from sklearn.linear_model import LogisticRegression
- from sklearn import datasets
- from sklearn.model_selection import train_test_split
-
- X,y = datasets.load_iris(return_X_y = True)
- X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.2,random_state = 1024)#随机数种子
-
- #ovr建模
- from sklearn.metrics import accuracy_score
-
- model = LogisticRegression(multi_class = 'ovr')
- model.fit(X_train,y_train)
-
- y_pred = model.predict(X_test)
-
- print('逻辑回归实现方式准确率',model.score(X_test,y_test))
-
- accuracy_score(y_test,y_pred)#计算模型正确预测的样本数占总样本数的比例。
-
- (y_pred == y_test).mean() #这部分代码会逐元素比较 y_pred 和 y_test 数组(或 Series)。如果 y_pred 中的元素与 y_test 中的对应元素相等,则结果为 True(在布尔上下文中相当于 1),否则为 False(相当于 0)。
-
- #进行概率预测
- np.set_printoptions(suppress=True)#不用科学计数
- proba_ = model.predict_proba(X_test)
- #几列,几维
- proba_[:10]
-
- #概率的手动计算
- #OVR依然是sigmoid
- def sigmoid(z):
- return 1/(1+np.exp(-z))
-
- b_ = model.intercept_#截距
- w_ = model.coef_ #方程系数,三行表示三个分类器,四列表示每个方程,4个系数(4个属性,索引对应4个系数)
-
- y_self_pred = X_test.dot(w_.T)+b_
-
- p = sigmoid(y_self_pred)
- p = p/p.sum(axis = 1).reshape(-1,1)#归一化,和就是1
- print('手动计算的概率:\n',p[:5])
- print('算法计算的概率:\n',proba_[:5])
-
- #softmax
- def softmax(x):
- return np.exp(x)/np.exp(z).sum()
- z = [3,1,-3]
- softmax(z).round(2)
-
- X,y = datasets.load_iris(return_X_y=True)
- X_train,X_test,y_train,y_test = train_test_split(X,y,random_state = 1024)
-
- #模型选择
- model = LogisticRegression(multi_class='multinomial')#多分类,表示softmax进行概率划分
- model.fit(X_train,y_train)
- print('算法预测的概率:',model.score(X_test,y_test))
- print('算法预测测试数据的概率:\n',model.predict_proba(X_test)[:5])
-
- #概率手动计算
- w_ = model.coef_
- b_ = model.intercept_
- def softmax(z):
- return np.exp(z)/np.exp(z).sum(axis = 1).reshape(-1,1)
- z = X_test.dot(w_.T)+b_
- softmax(z)[:5]
OvR(One vs Rest)算法是一种解决多分类问题的方法,它将多分类问题转化为多个二分类问题。具体来说,如果有N个类别,OvR算法会为每个类别训练一个二分类器,将该类别作为正例,其余所有类别作为负例。在预测时,所有二分类器都会对测试样本进行预测,然后选择预测为正例的概率最高的类别作为最终预测结果。如果多个分类器预测为正类,则选择置信度最大的类别作为最终分类结果。这种方法的优点是实现简单,计算量相对较小,但是可能会在类别不平衡的情况下导致性能下降
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。