---
# System prepended metadata

title: 'Data Mining 2023 Project 3 Grading Policy '
tags: [' TA', Admin]

---

---
tags: Admin, TA
---
# Data Mining 2023 Project 3 Grading Policy

Project 3: Link Analysis
實作三種演算法：PageRank, HITS, SimRank
可以開放使用packages，唯演算法部分需要自行實作，
例如**可以使用networkx套件，但不可以呼叫套件中的 [pagerank 函數](
https://networkx.org/documentation/stable/reference/algorithms/generated/networkx.algorithms.link_analysis.pagerank_alg.pagerank.html)或是其他兩個演算法的函數**。如果對於所使用的套件函數有疑慮，可以先來信詢問。

TA Email: nckudm@gmail.com (IKM Lab)

---
- Dataset: 

請下載 moodle 上這個檔案，將會看到Graph 1-6與IBM檔案，即這次作業所使用的資料（皆為directed）。
```
    [2023] Project3 Dataset檔案
```

ibm 檔案解讀方式：
ibm 檔案格式如下，請將 (1, 307) 看成一個 directed edge, (1, 443) 為另一個 directed edge...。以此類推。

```
 1          1        307
 1          1        443
```
輸出時請先按照 node 編號順序 sort 輸出，假設sort完後 node 編號由小到大為 [1,3,23,40,307, ...]，則輸出的 array 其對應的 index 0 為node 1的數值、index 1 為 node 3 的數值、index 2 為node 23 的數值...。matrix[1,2] 為 node 3 對 node 23的數值...。以此類推。

- PageRank, HITS, SimRank 評分標準：
    - Enforceability [10pts] 
        - damping_factor = 0.1
        - decay_factor = 0.7
        - iteration = 30
        - 在使用以上參數時，Graph 1~6 和 IBM 檔都須可以執行。
        - <font color="red">由於runtime問題，SimRank 不用執行 Graph 6與IBM檔。</font>
        - PageRank 演算法的公式請以老師投影片p.37實作，以上damping factor即為該頁公式中你應代入的d。
    - 初始值：
        - HITS 中 hub 與 authority 初始為1。
        - PageRank 中 pagerank 初始為$1/N$。
    - Correctness of answer [10pts]
       請將檔案寫成如下的檔案結構並且一併放入繳交資料夾內。
       ```
        /results
        ├── graph_1 
        │   ├── graph_1_HITS_authority.txt
        │   ├── graph_1_HITS_hub.txt
        │   ├── graph_1_PageRank.txt
        │   └── graph_1_SimRank.txt 
        ├── graph_2
        │   ├── graph_2_HITS_authority.txt
        │   ├── graph_2_HITS_hub.txt
        │   ├── graph_2_PageRank.txt
        │   └── graph_2_SimRank.txt
        ├── graph_3
        │   ├── graph_3_HITS_authority.txt
        │   ├── graph_3_HITS_hub.txt
        │   ├── graph_3_PageRank.txt
        │   └── graph_3_SimRank.txt
        ├── graph_4
        │   ├── graph_4_HITS_authority.txt
        │   ├── graph_4_HITS_hub.txt
        │   ├── graph_4_PageRank.txt
        │   └── graph_4_SimRank.txt
        ├── graph_5
        │   ├── graph_5_HITS_authority.txt
        │   ├── graph_5_HITS_hub.txt
        │   ├── graph_5_PageRank.txt
        │   └── graph_5_SimRank.txt
        ├── graph_6
        │   ├── graph_6_HITS_authority.txt
        │   ├── graph_6_HITS_hub.txt
        │   └── graph_6_PageRank.txt
        └── ibm-5000
            ├── ibm-5000_HITS_authority.txt
            ├── ibm-5000_HITS_hub.txt
            └── ibm-5000_PageRank.txt
       ```
    - 三個演算法共 20 * 3 = 60pts
    - 輸出檔案要求請見2022年的<font color="red">**補充注意事項**</font>(已放上moodle) 
    - 輸出的array shape 為 (1, N)，輸出的 matrix shape 為 (N,N)
($N$: 該圖 Node 數量) 。
    - <font color="red">輸出precision：小數點後第三位（`np.savetxt(...,fmt ='%.3f',...`）。</font>


- Report 評分標準：
    - Find a way [10pts]
    Find a way (e.g., add/delete some links) to increase hub, authority, and PageRank of Node 1 in first 3 graphs respectively
        需要附上圖 (至少說明Graph 1~3) 
        需要貼上調整後 hub, authority, pagerank 的數值。
    - Algorithm description [10pts]
        解釋每個演算法步驟流程，只貼 code 不說明則不給分。
    - Result analysis and discussion [10pts]
        說明每個圖 (至少說明Graph 1~3) 的結果並討論。
        針對不同 damping factor 和 decay factor 進行討論。
    - Effectiveness analysis [10pts]
        須列出三個演算法在每張圖上的執行時間，並討論其原因。
    
- Submission
    - **Deadline: 12/19(Tues) 9:00** 
    - Late submission within 1 week will get a 10% discount, and 2 weeks (1/5, 23:59) will get a 20% discount. 
    - Submissions later than that will not be graded and you get a 0 as a result.
    - Language：python3
可以直接寫成notebook（.ipynb）的形式，或著寫成python class再import至notebook中執行，並**保留正確執行留下的cell outputs**，該notebook請取名 `output.ipynb`。
    - 請包成`zip檔`，檔案名稱 {student_id}_DM_Project3（eg. P76111111_DM_Project3.zip），解壓縮後要呈現以下的結構。
    - src檔案夾內放你的原始程式碼與 `output.ipynb`。我們會看code但不會執行，除非你的程式碼長得和別人非常相似（抄襲疑慮） or 你的程式碼看起來不可能跑出正確結果，對於前者將會給0分，對於後者將會請你至實驗室使用繳交的程式碼demo。
```
P76111111_DMProject3
├── results # 上面提到的
│   ├── graph_1
│   ├── graph_2
│   ├── graph_3
│   ├── graph_4
│   ├── graph_5
│   ├── graph_6
│   └── ibm-5000
└── src   # your source code directory, need to include the notebook with outputs 
└── report.pdf 
```
