correlation_analysis_sup.py 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. # -*- coding: utf-8 -*-
  2. import numpy as np
  3. # import pandas as pd
  4. from sklearn.linear_model import LinearRegression
  5. import matplotlib.pyplot as plt
  6. import dataset
  7. import pymysql
  8. pymysql.install_as_MySQLdb()
  9. db = dataset.connect('postgresql://postgres:eyJhbGciOiJI@172.105.241.163:5432/postgres')
  10. cursor = db.query("select * from public.seo where cust='驊揚'")
  11. kw_lst = []
  12. for c in cursor:
  13. kw_lst.append(c['kw'])
  14. unique_kw = {key:0 for key in set(kw_lst)}
  15. cursor = db.query("select * from public.nda_log where client ='驊揚'")
  16. for c in cursor:
  17. if c['kw'] in unique_kw:
  18. unique_kw[c['kw']] += 1
  19. print('典籍數量',unique_kw)
  20. kw_count = dict(sorted(unique_kw.items(), key=lambda item: item[1], reverse=True))
  21. # kw_count={'驊揚作品集': 13472, '極簡宅': 9369, '王亭今': 5774, "驊揚室內裝修設計 2024 A Design Award": 4850, '弧形設計元素 驊揚': 4756, '日式簡約風 驊揚': 2052, '高雄室內裝修': 1987, '書房櫃體設計 驊揚': 1412, 'IG 驊揚室內裝修設計': 1002, '作品集 驊揚': 953, 'IG 驊揚室內裝修': 950, '作品集 驊揚室內裝修設計': 948, '作品集 驊揚室內裝修': 942, '作品 驊揚': 928, '作品 驊揚室內裝修': 922, 'IG 驊揚': 897, '驊揚作品': 858, '日式簡約新宅': 840, '驊揚室內設計 作品': 833, 'OPAL 英國倫敦傑出房地產大獎': 704, '鄉村風 驊揚': 699, '作品 驊揚室內裝修設計': 699, '六角花磚 驊揚': 660, '日式清新無印宅': 641, '驊揚 登記字號': 506, '日雜風裝潢': 457, '弧形拱門設計 驊揚': 350, '天花樑柱設計 驊揚': 314, '立面設計 驊揚': 305, '多光線設計 驊揚': 287, '高雄新成屋 驊揚': 287, '高雄設計公司': 228, '桌面收納 驊揚': 210, '精準空間利用 驊揚': 207, '收納空間 驊揚': 205, '驊揚': 153, '驊揚ptt': 128, '驊揚 ptt': 99, '多功能空間設計 驊揚': 71, '高雄室內設計公司': 63, '高雄 室內設計': 37, '驊揚室內裝修設計作品集': 37, '透天別墅設計': 34, '廚房設計 驊揚': 32, '日雜裝潢': 14, '高雄裝潢推薦': 12, '玄關設計 驊揚': 12, '驊揚室內裝修設計': 11, '日系裝潢': 7, '日式風裝潢': 6, '施工時間 驊揚室內設計': 6, '無印風裝潢': 4, '高雄裝潢': 4, '日式無印風': 3, '電器櫃設計 驊揚': 3, '高雄室內設計日式': 2, '折拉門設計': 2, '自然生活格調': 2, '臥室空間放大': 2, '日式無印風 驊揚': 2, '電視牆設計': 2, '人文美學': 2, '樑柱弱化設計': 2, '裝潢案例': 2, '書房設計': 2, '陳列展示區': 2, '簡約質感壁燈': 2, '高雄系統家具設計': 2, '堅山景仰': 2, '璟都心': 2, '無印良品質感': 2, '室內裝潢': 2, '多功能空間入口設計': 2, '拉抽收納': 2, '空間規劃 驊揚': 2, '鐵件結構裝飾': 2, '預售屋客變 驊揚': 2, '北歐風設計': 2, '驊揚室內裝修設計評論': 2, '洞洞板收納': 2, '樂土材質': 2, '室內裝修 驊揚': 2, '北歐風裝潢': 2, '低彩度色彩': 2, '銳揚天鵝堡': 2, '驊揚室內裝修設計 作品': 1, '小坪數空間 驊揚': 1, '高雄室內設計推薦': 1, '莫蘭迪色': 1, '評論 驊揚室內設計': 1, '森青道': 1, '系統板材': 1, '穿堂煞風水': 1, '和室空間': 1, '木百葉簾': 1, '日系風格': 1, '案場': 1, '現代風裝潢': 1, '明裎禾雅': 1, '三代同堂 驊揚室內裝修設計': 1, '落地窗設計': 1, '驊揚室內裝修設計 評論': 1, '多功能空間設計': 1, '餐空間設計 驊揚': 1, '極簡風案例': 1, '自然光 驊揚': 1, '室內設計案例': 1, '术風景': 1, '窗前風水設計': 1, 'MUSE Design Award銀獎': 1, '隱私環境': 1, '儲藏空間': 1, '北歐風格居家': 1, '無印宅': 1, '天花樑柱設計': 1, '美式宅': 1, '高雄室內設計公司推薦': 1, '一字型': 1, '弧形拱門設計': 1, '簡約風格 驊揚': 1, '日式無印宅': 1, '北歐風格裝潢': 1, '多功能櫃體設計': 1, '幸福點滴': 1, '高雄室內設計推薦dcard': 1, '104 驊揚': 1, '溫潤視覺設計 驊揚': 1, '高雄森青道': 1, '高雄室內設計師': 1, '寵物友善設計 驊揚': 1, '輕盈視覺效果': 1, '書房櫃體設計': 1, '高雄裝潢推薦ptt': 1, '樂土': 1, '廊道設計': 1, '玄關收納': 1, '裝修溝通': 1, '高雄裝潢心得': 1, '極簡風': 1, '家居設計': 1, '104驊揚室內裝修設計': 1, '獨立寵物房': 1, '架高地坪設計': 1, '床邊收納 驊揚': 1, '貓跳台設計': 1, '玻璃天花': 1, '高雄裝潢 ptt': 1, '工班品質 驊揚室內設計': 1, '104 驊揚室內裝修設計': 1, '高雄勤見築': 1, '日系無印': 1, '私領域設計 驊揚': 1, '日式裝潢': 1, '104 驊揚室內裝修': 1, '日系風格 驊揚': 1, '私領域設計': 1, '收納需求': 1, '高雄室內設計推薦ptt': 1, '高雄室內設計mobile01': 1, '日系簡約': 1, '北歐風': 1, '餐廚空間': 1, '餐空間設計': 1, '驊揚 統一編號': 1, '家居設計 驊揚': 1, '通透玻璃拉門': 1, '精準空間利用': 1, '驊揚室內裝修設計 王亭今': 1, '裝修需求 驊揚室內設計': 1, '開放式公領域': 1, '日式風格': 1, '光線設計 驊揚': 1, ' 驊揚室內裝修設計 評論': 1, '收納空間': 1, '洞洞板收納牆': 1, '立面設計': 1, '玻璃拉門': 1, '驊揚室內設計': 1, '系統板材設計': 1, '廊道設計 驊揚': 1, '色彩搭配': 1, '鄉村風設計': 1, '驊揚室內設計作品': 1, '自然採光': 1, '高雄輕裝潢dcard': 1, '貓跳台設計 驊揚': 1, '充沛自然光': 1, '寵物友善設計': 1, '美式古典造型門片': 1, '封閉式櫃體規劃 驊揚': 1, '獨立儲藏室': 1, '驊揚室內設計 評論': 1, '驊揚室內裝修設計團隊': 1, '日式風裝潢 ': 1, '王亭今 驊揚室內裝修設計': 1, '高雄裝潢案例': 1}
  22. print(kw_count)
  23. rank_first = {key:0 for key in kw_count}
  24. rank_last = {key:0 for key in kw_count}
  25. for i in rank_last.keys():
  26. cursor = db.query(f"select * from public.nda_log where kw='{i}' order by dt desc limit 1")
  27. for c in cursor:
  28. rank_last[c['kw']] = c['ranking']
  29. for i in rank_first.keys():
  30. cursor = db.query(f"select * from public.nda_log where kw='{i}' order by dt limit 1")
  31. for c in cursor:
  32. rank_first[c['kw']] = c['ranking']
  33. print('result,',rank_first)
  34. print('result,',rank_last)
  35. db.close()
  36. diff = {key:int(rank_first[key])-int(rank_last[key]) for key in rank_first}
  37. rank_diff = list(diff.values())
  38. print(diff)
  39. # X表示點擊數量 Y代表排名
  40. X = np.array(unique_kw).reshape(-1, 1)
  41. Y = np.array(diff)
  42. # 创建线性回归模型
  43. model = LinearRegression()
  44. # # 拟合模型
  45. model.fit(X, Y)
  46. #
  47. # # 获取回归系数
  48. slope = model.coef_[0]
  49. #
  50. print(f'迴歸係數: {slope}')
  51. #
  52. if slope > 0:
  53. print("正向關係")
  54. elif slope < 0:
  55. print("負向關係")
  56. else:
  57. print("沒有線性關係")
  58. # 圖表
  59. plt.scatter(X, Y, color='blue') # 繪製數據點
  60. plt.plot(X, model.predict(X), color='red') # 繪製回關線
  61. plt.xlabel('X')
  62. plt.ylabel('Y')
  63. plt.title('線性回歸')
  64. plt.show()