首页 分享 【DAY8】

【DAY8】

来源:花匠小妙招 时间:2025-05-01 05:16

字典的简单介绍

dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}

dict

dict['name'] # 访问字典中的值

可以去b站找个视频 或者 csdn找个帖子看下字典的简单介绍----锻炼下自学能力

但是目前我们只会用到映射这个用法,他需要传入的是字典,因为字典的键值对,键是唯一的,值可以重复。这很符合数据的特征是固定的,但是值可以变化这个特性。

所以后续想完成新的映射,直接修改字典的键值对即可。

标签编码

之前【DAY5】介绍了离散数据 如果是不存在顺序,则采用独热编码,函数为pd.get_dummies()

现在介绍对于存在顺序和大小关系的离散特征,做好标签编码,借助dataframe的map函数即可实现

import pandas as pd

data = pd.read_csv('data.csv')

data.head()

这里我们给Home Oweners标签编码,实际上这个特征也可以独热编码,取决于你的理解。

实际中,都试一下 ,谁训练出来的模型好选谁。

data["Home Ownership"].value_counts()

- 住房抵押贷款:3637   这个是有房贷,有房子

- 租房:3204     没房子

- 拥有自有住房:647    这个没贷款,有房子

- 有贷款:12   这个是有其他贷款,有房子,没房贷

- 名称:房屋所有权,数据类型:int64

按照贷款严重程度(抗风险能力),依次是:自有住房 < 租房 < 有其他贷款 < 住房抵押贷款

所以按照这个逻辑来进行编码

mapping = {

"Rent": 0,

"Own Home": 1,

"Have Mortgage ": 2,

"Home Mortgage": 3

}

data["Home Ownership"].head()

data["Home Ownership"] = data["Home Ownership"].map(mapping)

data["Home Ownership"].head()

data["Term"].value_counts()

对于字符串类型 我们也要映射成整数类型,这里不要理解为标签编码或者独热编码

二分类的问题不需要独热编码,比如性别这个特征,男女不需要变成2个特征,性别男 性别女 。因为他们二者自由度为1,如果是2个特征的话,性别男=1,那么性别女必定等于0.这样特征高度相关,没有价值。

此时这个特征的含义不是性别,而是:是否为男性,1是男性,0是非男。

三分类以上才涉及独热编码

mapping = {

"Short Term": 1,

"Long Term": 0

}

data["Term"] = data["Term"].map(mapping)

data["Term"].head()

实际上借助一个映射函数也可以实现上面2次编码

字典的键值对可以嵌套字典

import pandas as pd

data = pd.read_csv("data.csv")

mapping = {

"Term": {

"Short Term": 1,

"Long Term": 0

},

"Home Ownership": {

"Rent": 0,

"Own Home": 1,

"Have Mortgage ": 2,

"Home Mortgage": 3

}

}

mapping["Term"] # 访问嵌套字典中的值,此时他又是一个字典

data["Home Ownership"] = data["Home Ownership"].map(mapping["Home Ownership"])

data["Term"] = data["Term"].map(mapping["Term"])

data.head()

连续特征的处理:归一化和标准化

 归一化和标准化可以通过手写函数实现,也可以使用sklearn中的归一化和标准化函数。

def manual_normalize(data):

"""

此函数用于对输入的数据进行归一化处理

:param data: 输入的一维数据(如 Pandas 的 Series)

:return: 归一化后的数据

"""

min_val = data.min()

max_val = data.max()

normalized_data = (data - min_val) / (max_val - min_val)

return normalized_data

data['Annual Income'] = manual_normalize(data['Annual Income'])

data['Annual Income'].head()

from sklearn.preprocessing import StandardScaler, MinMaxScaler

data = pd.read_csv("data.csv")

min_max_scaler = MinMaxScaler()

data['Annual Income'] = min_max_scaler.fit_transform(data[['Annual Income']])

data['Annual Income'].head()

data = pd.read_csv("data.csv")

scaler = StandardScaler()

data['Annual Income'] = scaler.fit_transform(data[['Annual Income']])

data['Annual Income'].head()

 内容来自@浙大疏锦行python打卡训练营

@浙大疏锦行

相关知识

零基础花艺基础班
零基础花艺全能班创业课
零基础开花店中级速成班课程
2025年林芝桃花节时间
B.C花派全能花艺培训课程
0️⃣基础开花店?这份学习课程表请收好。✅课程内容: D
武汉花艺系统创业培训课程
【游戏插曲】《圣咏礼赞》(内含现可公开的BUG=.=)
武汉少儿亲子花艺学习课程
2020年约定川藏线金川梨花节造访林芝桃花节朝圣色达佛学院。

网址: 【DAY8】 https://www.huajiangbk.com/newsview1819454.html

所属分类:花卉
上一篇: 广东省发布:按适宜生境绿化类型的
下一篇: 洛阳市街头绿地夏季微气候优化策略

推荐分享