编写一个程序,采用 scikit-learn 中的 LogisticRegression 逻辑回归模型对 iris 数据集进行多分类,且数据可视化
时间: 2024-02-20 15:58:31 浏览: 145
基于逻辑回归模型对 iris 数据进行二分类和多分类-sklearn实现.zip
5星 · 资源好评率100%
好的,我可以为您提供一个 Python 代码示例,使用 LogisticRegression 对 iris 数据集进行多分类并进行可视化。
首先,我们需要导入所需的库:
```python
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
```
然后,我们加载 iris 数据集并将其拆分为训练集和测试集:
```python
iris = load_iris()
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2, random_state=42)
```
接下来,我们可以使用 LogisticRegression 模型进行拟合和预测:
```python
clf = LogisticRegression(multi_class='multinomial', solver='lbfgs')
clf.fit(X_train, y_train)
y_pred = clf.predict(X_test)
```
最后,我们可以计算模型的准确度并将数据可视化:
```python
print("Accuracy:", accuracy_score(y_test, y_pred))
# 绘制散点图
plt.scatter(X_test[:, 0], X_test[:, 1], c=y_pred)
plt.xlabel('Sepal length')
plt.ylabel('Sepal width')
plt.title('Logistic Regression')
plt.show()
```
运行完整代码后,您将获得一个散点图,其中每个点的颜色表示该点所属的 iris 类别。
完整代码如下:
```python
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# 加载 iris 数据集并将其拆分为训练集和测试集
iris = load_iris()
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2, random_state=42)
# 使用 LogisticRegression 进行拟合和预测
clf = LogisticRegression(multi_class='multinomial', solver='lbfgs')
clf.fit(X_train, y_train)
y_pred = clf.predict(X_test)
# 计算模型的准确度并将数据可视化
print("Accuracy:", accuracy_score(y_test, y_pred))
# 绘制散点图
plt.scatter(X_test[:, 0], X_test[:, 1], c=y_pred)
plt.xlabel('Sepal length')
plt.ylabel('Sepal width')
plt.title('Logistic Regression')
plt.show()
```
希望这个示例能够帮助您。如果您有任何疑问,请随时问我。
阅读全文