【DAY8】
字典的简单介绍
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
上一篇: 广东省发布:按适宜生境绿化类型的 |
下一篇: 洛阳市街头绿地夏季微气候优化策略 |
推荐分享

- 1君子兰什么品种最名贵 十大名 4012
- 2世界上最名贵的10种兰花图片 3364
- 3花圈挽联怎么写? 3286
- 4迷信说家里不能放假花 家里摆 1878
- 5香山红叶什么时候红 1493
- 6花的意思,花的解释,花的拼音 1210
- 7教师节送什么花最合适 1167
- 8勿忘我花图片 1103
- 9橄榄枝的象征意义 1093
- 10洛阳的市花 1039