python写代码,150个鸢尾花(iris)样本聚为3类,并与实际分类进行比较。
时间: 2024-09-26 18:08:46 浏览: 62
在Python中,我们可以使用sklearn库中的Iris数据集来进行这个示例。Iris数据集是一个经典的数据分析任务,通常用于机器学习入门,因为它包含三个类别共150个样本。以下是使用scikit-learn完成这个任务的一个简单步骤:
```python
# 导入所需库
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import classification_report
# 加载Iris数据
iris = load_iris()
X = iris.data # 特征
y = iris.target # 类别标签
# 数据预处理:标准化特征
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=42)
# 使用KNN分类器,假设k=3(因为有3类)
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train, y_train)
# 预测并评估模型
y_pred = knn.predict(X_test)
print("Classification Report:")
print(classification_report(y_test, y_pred))
# 比较预测结果与实际分类
# 这里会显示出每个类别的精确度、召回率和F1分数等指标,可以直观地看到模型性能
```
在这个例子中,我们首先加载数据,然后将数据划分为训练集和测试集。接着,使用K近邻算法对训练数据进行训练,然后在测试集上做预测。最后,通过`classification_report`函数得到详细的分类对比。
阅读全文