使用python实现以下功能1. 将 Iris 数据集总样本随机打乱,并按照 8:2 分为训练集与测试集。 3. 选取测试集的一个样本,计算该样本到训练集所有样本的欧几里得距离,并将 距离结果保存。
时间: 2024-05-09 15:16:52 浏览: 99
好的,以下是用Python实现将Iris数据集随机打乱并分成训练集和测试集的代码:
```python
import random
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
iris = load_iris()
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2)
train_data = list(zip(X_train, y_train))
test_data = list(zip(X_test, y_test))
# 将测试集中的一个样本与训练集中所有样本计算欧几里得距离
def euclidean_distance(x1, x2):
return sum([(a - b) ** 2 for a, b in zip(x1, x2)]) ** 0.5
test_sample = random.choice(test_data)
distances = []
for train_sample in train_data:
distance = euclidean_distance(train_sample[0], test_sample[0])
distances.append((distance, train_sample[1]))
# 将距离结果按距离从小到大排序并输出
distances.sort()
print(distances)
```
阅读全文