OpenHarmony开发者论坛

标题: 特征值编码实例 [打印本页]

作者: 俺也不知道叫啥名字好听    时间: 2024-12-29 20:46
标题: 特征值编码实例
[md]# **特征值编码**

## 简介

**        **特征值编码是数据预处理中的一种重要技术。在机器学习和数据挖掘领域,数据通常包含各种类型的特征,而很多算法要求这些特征以数值形式表示。特征值编码就是将非数值型的特征转换为数值型特征的过程。

## 功能实现

#### 1.国籍编码

```
details.head()
```

|   | Player             | Nation  | Pos   | Age  |
| --- | -------------------- | --------- | ------- | ------ |
| 0 | André Onana       | cm CMR  | GK    | 27.0 |
| 1 | Diogo Dalot        | pt POR  | DF    | 24.0 |
| 2 | Bruno Fernandes    | pt POR  | MF,FW | 28.0 |
| 3 | Alejandro Garnacho | ar ARG  | FW    | 19.0 |
| 4 | Marcus Rashford    | eng ENG | FW    | 25.0 |


```
# 初始化一个label表,存放后续特征值

label = pd.DataFrame()
```

```
*# 对 Nation(国籍) 进行特征值化,采取标签编码*

label_encoder = **LabelEncoder**()

label['Nation_Label'] = label_encoder.**fit_transform**(details['Nation'])

label.**head**()
```



|   | Nation\_Label |
| --- | --------------- |
| 0 | 3             |
| 1 | 11            |
| 2 | 11            |
| 3 | 0             |
| 4 | 5             |


**这样每个国籍都会有一个Nation\_Label对应,例如3--cm CMR(喀麦隆) , 11-- pt POR(葡萄牙), 0-- ar ARG, 5--eng ENG……**

---

#### 2.位置编码

```
# 获取 Pos(位置) 的所有可能取值

unique = details['Pos'].unique()

unique
```

```
array(['GK', 'DF', 'MF,FW', 'FW', 'MF,DF', 'MF', 'FW,MF'], dtype=object)
```

```
# 新建一个 list 存放所有 Pos(位置) 取值

# GK = Goalkeeper(守门员)

# DF = Defender(后卫球员)

# MF = Midfielder(中场球员)

# FW = Forward(前锋球员)

positions = ['GK', 'DF', 'MF', 'FW']
```

---

```
# 初始化哑变量矩阵

zero_matrix = np.zeros((len(details['Pos']), len(positions)))

dummies = pd.DataFrame(zero_matrix, columns = positions)

dummies.head()
```

|   | GK  | DF  | MF  | FW  |
| --- | ----- | ----- | ----- | ----- |
| 0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 1 | 0.0 | 0.0 | 0.0 | 0.0 |
| 2 | 0.0 | 0.0 | 0.0 | 0.0 |
| 3 | 0.0 | 0.0 | 0.0 | 0.0 |
| 4 | 0.0 | 0.0 | 0.0 | 0.0 |


---

**完成编码**
[/md]




欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/) Powered by Discuz! X3.5