对DatingTestSet文本文件分别进行最大最小标准化,和Z-socre标准化。 (2)计算标准化处理后数据集的第一行数据和每行数据的欧式距离。 (3)以数据的行数为横坐标,以(2)计算的距离为纵坐标,画出每行数据和第一条数据的距离散点图 。 用python实现上述问题
时间: 2024-11-22 19:34:46 浏览: 28
在Python中,我们可以使用numpy库来进行数据预处理和绘图操作。以下是针对 DatingTestSet 文件的处理步骤:
首先,我们需要加载数据并导入必要的库:
```python
import numpy as np
from sklearn.datasets import load_files
import pandas as pd
# 加载数据
dating_data = load_files('path/to/DatingTestSet') # 请替换为实际文件路径
data = pd.read_csv(dating_data.data_frame, header=None) # 假设csv格式
# 将数据视为数值型数据
data = data.astype(float)
```
**(1)最大最小标准化(Min-Max Scaling)**
```python
min_max_scaler = MinMaxScaler()
data_min_max = min_max_scaler.fit_transform(data)
```
**(2)Z-score标准化(Standardization)**
```python
z_scaler = StandardScaler()
data_zscore = z_scaler.fit_transform(data)
```
对于第一行数据,我们通常只对整个数据集进行标准化,然后取第一个元素作为标准化后的值:
```python
first_row_min_max = data_min_max[0]
first_row_zscore = data_zscore[0]
```
**(3)计算欧式距离**
为了计算每行数据到第一行数据的欧式距离,我们可以遍历每行,然后应用`euclidean_distance`函数:
```python
def euclidean_distance(row, first_row):
return np.sqrt(np.sum((row - first_row)**2))
# 初始化一个列表存储所有行的数据
distances_min_max = [euclidean_distance(row, first_row_min_max) for row in data_min_max[1:]]
distances_zscore = [euclidean_distance(row, first_row_zscore) for row in data_zscore[1:]]
# 计算距离数组
distance_array_min_max = np.array(distances_min_max)
distance_array_zscore = np.array(distances_zscore)
```
**(4)绘制散点图**
```python
import matplotlib.pyplot as plt
fig, axs = plt.subplots(1, 2, figsize=(12, 6))
axs[0].scatter(range(len(distance_array_min_max)), distance_array_min_max)
axs[0].set_xlabel('Row Index')
axs[0].set_ylabel('Euclidean Distance (Min-Max)')
axs[0].title.set_text('Min-Max Scaling')
axs[1].scatter(range(len(distance_array_zscore)), distance_array_zscore)
axs[1].set_xlabel('Row Index')
axs[1].set_ylabel('Euclidean Distance (Z-Score)')
axs[1].title.set_text('Z-Score Scaling')
plt.tight_layout()
plt.show()
```
这将显示两个散点图,一个是基于最大最小标准化,另一个是基于Z-score标准化的距离分布。
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![py](https://img-home.csdnimg.cn/images/20250102104920.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![.zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)