遗传算法
This commit is contained in:
@@ -11,9 +11,16 @@ sql_file = "query_top35_products.sql"
|
||||
|
||||
# 指定对比列表
|
||||
specified_list = [
|
||||
'61','68','65','66','59','71','77','7','38','95','58','90','56','57','97','98',
|
||||
'27','8','11','9','21','96','99','100','44','45','46','47','48','49','50','51',
|
||||
'52','53','54','55'
|
||||
'32', '33', '34', '35', '36', '37',
|
||||
'38', '39', '41', '42', '43',
|
||||
'46', '47', '48', '49',
|
||||
'51', '52', '53', '54', '55',
|
||||
'56', '57', '58',
|
||||
'59', '60', '61', '62', '63', '64', '65', '66',
|
||||
'68', '70', '71', '73', '74', '78', '79',
|
||||
'90', '91', '92', '93', '94',
|
||||
'95', '96', '97', '99', '100', '101',
|
||||
'102', '103', '104', '105', '106', '107', '108', '109'
|
||||
]
|
||||
specified_set = set(specified_list)
|
||||
|
||||
@@ -35,8 +42,8 @@ print(f"[信息] 查询完成,获取到 {len(df)} 条记录。")
|
||||
all_results = []
|
||||
|
||||
for ga_id, group in df.groupby("ga_id"):
|
||||
vulnerable35_product = group['id_product'].astype(str).tolist()
|
||||
vulnerable_set = set(vulnerable35_product)
|
||||
vulnerable_product = group['id_product'].astype(str).tolist()
|
||||
vulnerable_set = set(vulnerable_product)
|
||||
|
||||
matching = vulnerable_set & specified_set
|
||||
extra = vulnerable_set - specified_set
|
||||
@@ -44,7 +51,7 @@ for ga_id, group in df.groupby("ga_id"):
|
||||
|
||||
all_results.append({
|
||||
"ga_id": ga_id,
|
||||
"vulnerable35": ",".join(vulnerable35_product),
|
||||
"vulnerable": ",".join(vulnerable_product),
|
||||
"matching_count": len(matching),
|
||||
"matching_products": ",".join(matching),
|
||||
"extra_count": len(extra),
|
||||
@@ -57,5 +64,5 @@ for ga_id, group in df.groupby("ga_id"):
|
||||
# 输出 CSV
|
||||
# ===============================
|
||||
df_results = pd.DataFrame(all_results)
|
||||
df_results.to_csv("vulnerable20_match_results_new1122.csv", index=False, encoding='utf-8-sig')
|
||||
df_results.to_csv("vulnerable63_match_results_new260111.csv", index=False, encoding='utf-8-sig')
|
||||
print("[完成] 已生成 vulnerable35_match_results.csv")
|
||||
|
||||
@@ -22,7 +22,7 @@ product_count AS (
|
||||
),
|
||||
|
||||
ranked_products AS (
|
||||
-- 按每个 ga_id 的产品出现次数排序,并取前35
|
||||
-- 按每个 ga_id 的产品出现次数排序,并取前 x
|
||||
SELECT *,
|
||||
ROW_NUMBER() OVER (PARTITION BY ga_id ORDER BY cnt DESC) AS rn
|
||||
FROM product_count
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
ga_id,vulnerable35,matching_count,matching_products,extra_count,extra_products,missing_count,missing_products
|
||||
1,"95,99,90,91,51,53,93,52,54,55,92,50,94,9,48,45,47,46,49,44",16,"55,49,52,95,51,53,93,90,47,54,48,99,91,94,46,92",4,"9,45,44,50",41,"109,65,66,56,34,100,74,32,42,37,35,61,64,38,68,107,73,108,57,97,59,36,103,58,60,63,96,101,71,39,62,104,105,106,70,78,79,102,33,41,43"
|
||||
|
@@ -0,0 +1,2 @@
|
||||
ga_id,vulnerable,matching_count,matching_products,extra_count,extra_products,missing_count,missing_products
|
||||
1,"95,99,90,91,51,53,93,52,54,55,92,50,94,9,48,45,47,46,49,44",16,"49,51,46,92,95,99,53,94,52,91,48,93,55,54,90,47",4,"50,44,45,9",41,"109,105,108,103,63,73,42,96,70,74,43,61,66,32,79,58,60,104,97,64,57,33,102,59,106,100,68,35,101,34,107,39,56,36,62,41,65,37,38,78,71"
|
||||
|
Reference in New Issue
Block a user