python實現組合優化

1、多個變量組合與單一目標,實現組合優化:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import itertools
%matplotlib inline

#  生成結果字典,轉化爲DataFrame
result={
    "gender":[],
    "age":[],
    "job":[],
    "job_time":[],
    "size":[],
    "mean":[]
}
metricx="salsry"
data=pd.DataFrame(result)

# 指標之間組合交叉分析
def group_combine(data,dimension,metric):
    data_agg=data.groupby(data[list(dimension)])["metric"].agg([np.size,np.mean]).set_index()
    return data_agg.to_dict(orient="records")


# 將結果追加到dataframe中
def append_data(agg_dict):
    for line in agg_dict:
        for element in datframe_elements:
            result_dict[element].append(line[element]) if element in line else result_dict[element].append('')


for number in range(len(elements)):
    print number
    print list(combinations(elements, number+1))
    for combination in list(combinations(elements, number+1)): 
        print list(combination)
        print metric
        agg_dict = group_aggregation(data = df1, dimension = list(combination), metric = metric)
        append_data(agg_dict)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章