用逻辑回归手写体识别显示图片
时间: 2023-06-15 18:07:00 浏览: 93
首先,我们需要准备手写数字的数据集。一个常用的数据集是 MNIST 数据集,它包含了 60000 张训练图片和 10000 张测试图片。我们可以使用 Python 中的 Scikit-learn 库来加载 MNIST 数据集:
```python
from sklearn.datasets import fetch_openml
mnist = fetch_openml('mnist_784', version=1, cache=True)
```
接下来,我们需要对数据进行预处理,将像素值转换到 [0, 1] 的范围内,并将数据集分为训练集和测试集:
```python
import numpy as np
X = mnist['data'] / 255.0
y = mnist['target'].astype(np.int)
X_train, X_test = X[:60000], X[60000:]
y_train, y_test = y[:60000], y[60000:]
```
然后,我们可以使用逻辑回归模型来训练数据:
```python
from sklearn.linear_model import LogisticRegression
lr = LogisticRegression(solver='lbfgs', max_iter=1000, random_state=42)
lr.fit(X_train, y_train)
```
训练完成后,我们可以使用测试集来评估模型的准确率:
```python
from sklearn.metrics import accuracy_score
y_pred = lr.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print('Accuracy: {:.2f}%'.format(accuracy * 100))
```
最后,我们可以使用 Matplotlib 库来显示手写数字图片,并使用训练好的模型来预测数字:
```python
import matplotlib.pyplot as plt
# 显示第一张测试图片
plt.imshow(X_test[0].reshape(28, 28), cmap='binary')
plt.axis('off')
plt.show()
# 预测第一张测试图片的数字
y_pred = lr.predict([X_test[0]])
print('Predicted digit: {}'.format(y_pred[0]))
```
这样,我们就完成了使用逻辑回归模型来识别手写数字的任务。
阅读全文