import pandas as pd import numpy as np from scipy.optimize import minimize

读取Excel文件

data = pd.read_excel(r'D:\pythonProject3\会员信息\附件二:会员信息数据.xlsx')

提取所需的列数据

q1 = data['任务标价'] q2 = data['预订任务限额'] r = np.sqrt((data['商品GPS纬度'] - data['会员GPS纬度'])**2 + (data['商品GPS经度'] - data['会员GPS经度'])**2) y = data['任务执行情况']

将数据分为三类,分别进行计算

for cluster_id in [0, 1, 2]: cluster_data = data[data['聚类结果'] == cluster_id] q1_cluster = cluster_data['任务标价'] q2_cluster = cluster_data['预订任务限额'] r_cluster = np.sqrt((cluster_data['商品GPS纬度'] - cluster_data['会员GPS纬度'])**2 + (cluster_data['商品GPS经度'] - cluster_data['会员GPS经度'])**2) y_cluster = cluster_data['任务执行情况']

# 定义目标函数
def objective(x):
    k, m, n = x
    return np.sum((q2_cluster**m) * k * q1_cluster / (r_cluster**n) * y_cluster)

# 定义约束条件
def constraint(x):
    k, m, n = x
    return [k, m, n]

# 设置初始猜测值
x0 = [1, 1, 1]

# 优化求解最小引力子
res = minimize(objective, x0, constraints={'type': 'eq', 'fun': constraint})

# 输出结果
print(f'聚类结果 {cluster_id} 最小引力子:', res.fun)
print(f'聚类结果 {cluster_id} 常量k:', res.x[0])
print(f'聚类结果 {cluster_id} 常量m:', res.x[1])
print(f'聚类结果 {cluster_id} 常量n:', res.x[2])

总结结果

这里可以添加对所有聚类结果的总结,例如:

1. 输出所有聚类结果中最小引力子的最大值

2. 分析不同聚类结果下常量k、m、n的变化规律

3. 对分析结果进行解释,并提出改进建议

会员信息数据分析:基于引力模型的常量优化

原文地址: https://www.cveoy.top/t/topic/fAcP 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录