在UCI数据集中随机选择一个数据集,然后绘制柱状图,编写曼哈顿距离和余弦相似度,给出此实验代码和结果
时间: 2024-10-14 11:08:43 浏览: 34
在Python中,我们可以使用pandas库来加载UCI数据集,matplotlib库来绘制柱状图,而sklearn库则可以计算曼哈顿距离和余弦相似度。这里以UCI的鸢尾花(Iris)数据集为例,这是一个经典的分类数据集。
首先,假设你已经安装了必要的库:
```python
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.metrics.pairwise import manhattan_distance, cosine_similarity
```
加载数据集并创建数据框:
```python
data = load_iris()
df = pd.DataFrame(data.data, columns=data.feature_names)
```
选择一列数据来绘制柱状图,比如花瓣长度(Petal Length):
```python
plt.figure(figsize=(10, 6))
column_to_plot = 'Petal Length (cm)'
df[column_to_plot].hist(bins=10)
plt.title(f'Histogram of {column_to_plot}')
plt.xlabel(column_to_plot)
plt.ylabel('Frequency')
plt.show()
```
计算两行之间的曼哈顿距离(示例中的行1和行2):
```python
row1, row2 = df.iloc[[0, 1]].values
manhattan_dist = manhattan_distance(row1.reshape(1, -1), row2.reshape(1, -1))
print(f"Manhattan distance between rows: {manhattan_dist[0]}")
```
计算余弦相似度(同样示例中的行1和行2):
```python
cosine_sim = cosine_similarity([row1], [row2])
print(f"Cosine similarity between rows: {cosine_sim[0][0]}")
```
注意:由于余弦相似度的结果范围是[-1, 1],正值表示相似,负值表示相反,值越接近1表示越相似。
阅读全文