人工智能-机器学习之多分类分析(项目实战二-鸢尾花的多分类分析)
Softmax回归听名字,依然好像是做回归任务的算法,但其实它是去做多分类任务的算法。
-
篮球比赛胜负是二分类,足球比赛胜平负就是多分类
-
识别手写数字0和1是二分类,识别手写数字0-9就是多分类
Softmax回归算法是一种用于多分类问题的机器学习算法。它可以帮助我们预测一个样本属于哪一类,比如预测一张照片中的动物是狗、猫还是鸟。
一、加载整个数据集
from sklearn import datasets from sklearn.linear_model import LogisticRegression from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score #加载鸢尾花数据集 iris = datasets.load_iris() x=iris.data y=iris.target print("多元的参数集是:") print(x) print("结果集是:") print(y)
二、将数据集拆分为训练集和测试集,测试集占20%,训练集占80%
x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.2)
三、创建一个逻辑回归的对象
#创建一个逻辑回归的对象,这里的逻辑回归会根据我们的数据决定是用二分类还是用多分类 lr=LogisticRegression()
四、使用训练集训练模型
lr.fit(x_train,y_train)
五、使用测试集进行结果的预测
y_pred=lr.predict(x_test)
六、打印模型的准确率
print("准确率:%.2f" %accuracy_score(y_test,y_pred))
多元的参数集是:
[[5.1 3.5 1.4 0.2][4.9 3. 1.4 0.2][4.7 3.2 1.3 0.2][4.6 3.1 1.5 0.2][5.8 2.7 5.1 1.9][6.8 3.2 5.9 2.3][6.7 3.3 5.7 2.5][6.7 3. 5.2 2.3][6.3 2.5 5. 1.9][6.5 3. 5.2 2. ][6.2 3.4 5.4 2.3][5.9 3. 5.1 1.8]]
结果集是:
[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 22 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 22 2]
准确率:0.97
注意:
1、mluti_class的参数,如果是ovr是进行二分类转换,如果是multinomial是进行softmax回归做多分类,由于目前我们的y值是单标签,要么是0,要么是1,要么是2,因此可以默认进行多分类。
# lr=LogisticRegression(multi_class='ovr') #多分类转换成了多个二分类
# lr=LogisticRegression(multi_class='multinomial') #Softmax回归做多分类
2、最大迭代次数:max_iter=1000,默认是执行100次收敛,调整参数100次。
如果不添加这个参数,可能会报如下错误:收敛的警告,迭代100次之后还没有达到完全的收敛,如果将参数改为1000,则精度会有所提升。