深度学习之分类器
文章目录
1. 数据集说明
1.1 MNIST 数据集 (手写数字数据集)
- MNIST来自美国国家标准与技术研究院,训练集由250个不同的人手写的数字,其中50%高中生,50%来自人口普查局的工作人员。
- MNIST数据集中的每一张图像都是灰度图像,由28×28个像素点构成,每个像素点用一个灰度值来代替。
- 在MNIST中,有N=60000个训练样本,每个图像有D=28×28×1=784 维度,K=10. 也就是输入x为一个[1×784]的行向量,输出y为10维的分值行向量,参数是一个 [784×10] 的矩阵。
1.2 iris 数据集 (鸢尾花数据集)
Iris 鸢尾花数据集是一个经典数据集,在统计学习和机器学习领域都经常被用作示例。数据集内包含 3 类共 150 条记录,每类各 50 个数据,每条记录都有 4 项特征:花萼长度、花萼宽度、花瓣长度、花瓣宽度,可以通过这4个特征预测鸢尾花卉属于(iris-setosa, iris-versicolour, iris-virginica)中的哪一品种。
见网址
2. 使用LogisticRegression 和 SVM 对这两种数据集进行分类并比较
- softmax回归其实是逻辑回归的一种变形,逻辑回归模型输出的是两种类别的概率,softmax回归输出的K种类别的概率
from sklearn import datasets, linear_model
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.model_selection import cross_val_score
from sklearn.metrics import confusion_matrix
from sklearn.linear_model import LogisticRegression
from sklearn.svm import LinearSVC
##输出数据集名称
print("当前训练数据集:iris")
data=datasets.load_iris()
x,y = data.data[:,2:],data.target
#数据集划分(训练集:验证集=7:3)
train_x,test_x,train_y,test_y = train_test_split(x,y,test_size=0.3,random_state=5)
print("训练集:",len(train_x))
print("验证集:",len(test_x))
#创建SoftMax分类器模型
model = LogisticRegression(C=1.0, multi_class='multinomial')
#训练分类器
model.fit(train_x,train_y)
#使用分类器进行预测
y_pred = model.predict(test_x)
print("Softmax分类器模型评估结果:"