day07-k_means算法自实现
01-数据转化
import pandas as pd
import numpy as np
# 将非数值型类别型数据转化为数值型
# 哑变量转化---将数据转化为哑变量矩阵
# 加载数据
data = pd.read_excel('./meal_order_detail.xlsx')
# print('data:\n',data)
# print('data的列索引:\n',data.columns)
# print('data :\n', data.loc[:, "dishes_name"])
print('data :\n', data.loc[:, "amounts"])
print('data 中amounts列的最大值:', data.loc[:, "amounts"].max())
print('data 中amounts列的最小值:', data.loc[:, "amounts"].min())
print('*' * 100)
#
# # 将detail 中的 dishes_name 进行哑变量转化
# res = pd.get_dummies(
# data=data.loc[:, 'dishes_name'], # 数据
# prefix='菜品', # 前缀
# prefix_sep=':' # 连接符
# )
# print('哑变量之后的结果:\n', res)
# 将连续型数据离散成类别数据 ---数据离散化
# 将连续的数据进行划分区间
# 将 detail 中 amounts单价列进行离散化
# 1、默认进行分组
# 2、自定义等宽分组
# # (1)确定分组个数
# group_num = 5
# # (2)确定极差
# # 确定最大值
# max_amounts = data.loc[:, "amounts"].max()
# # 确定最小值
# min_amounts = data.loc[:, "amounts"].min()
# # 确定极差
# ptp = max_amounts - min_amounts
# # (3)确定步长
# step = int(np.ceil(ptp / group_num))
# # (4)确定bins
# bins = np.arange(min_amounts, max_amounts + step, step)
# print('自定义等宽分组:', bins)
# 3、自定义等频分组 --利用分位数进行分组
# (1)确定分组个数
group_num = 5
# (2)确定bins
bins = data.loc[:, 'amounts'].quantile(q=np.arange(0, 1 + 1 / group_num, 1 / group_num))
# [0,0.2,0.4,0.6,0.8,1.0]
print('bins:', bins)
data.loc[:, 'amounts'] = pd.cut(
x=data.loc
day07-means算法(上)
最新推荐文章于 2023-09-18 22:16:09 发布