---
# System prepended metadata

title: "![downloads](https://img.shields.io/github/downloads/atom/atom/total.svg)\n![build](https://img.shields.io/appveyor/ci/:user/:repo.svg)\n![chat](https://img.shields.io/discord/:serverId.svg)\nI-Caller:"
tags: [Documentation, Templates]

---

![downloads](https://img.shields.io/github/downloads/atom/atom/total.svg)
![build](https://img.shields.io/appveyor/ci/:user/:repo.svg)
![chat](https://img.shields.io/discord/:serverId.svg)
I-Caller: 
===
## Table of Contents
[TOC]
## Mục tiêu:
1. Từ dữ liệu các SĐT đã được report, sử dụng ML để detect SĐT Spam đúng
2. Từ dữ liệu các SĐT đã được report là spam, các SĐT chưa bị report spam, sử dụng ML để detect SĐT Spam và NotSpam

## Phương pháp lấy dữ liệu
2 loại dữ liệu cho 2 bài toán:
1.     Nonreprot-to-Spam: Dữ liệu 3 và 1 tháng trước kể từ ngày lấy cho mỗi SĐT:
2.     Report-to-Spam Dữ liệu 3 và 1 tháng trước kể từ ngày được report cho mỗi SĐT:


## Dữ liệu

Phân tích sự khác nhau giữa SĐT Spam và NotSpam:
1. Số lượng cuộc gọi
2. Thời lượng cuộc gọi
3. Thời gian thực hiện cuộc gọi
4. Số lượng cuộc gọi cùng nhà mạng
5. Số lượng người đã gọi của mỗi SĐT
6. Đặc điểm 6 loại report
7. Đặc điểm các cụm SĐT

I-Caller: Nonreport-to-Spam
===
## Dữ liệu 
Dữ liệu 3 và 1 tháng trước kể từ ngày lấy cho mỗi SĐT:
* Train:
* Test:
## Các phương pháp đã dùng
## Các phương pháp tốt nhất


I-Caller: Reported-to-Spam
===
## Dữ liệu
Dữ liệu 3 tháng trước kể từ ngày được report cho mỗi SĐT:
* Train: tháng 678 và 91011: 10106 Spam, 169 notspam
* Test: tháng 123/2022: 7012 Spam, 43 notspam
* feature:
![](https://i.imgur.com/ZAr5Tpj.png)

## Các phương pháp đã dùng
Xgboost:
* Accuracy_train: 0.9789120536784088
* Accuracy_test: 0.9742801230081074
* F1 score: 0.9867549668874173
* Recall: 0.9916087962962963
* Precision: 0.9819484240687679
## Các phương pháp tốt nhất

template
===
```gherkin=
Feature: Guess the word

  # The first example has two steps
  Scenario: Maker starts a game
    When the Maker starts a game
    Then the Maker waits for a Breaker to join

  # The second example has three steps
  Scenario: Breaker joins a game
    Given the Maker has started a game with the word "silky"
    When the Breaker joins the Maker's game
    Then the Breaker must guess a word with 5 characters
```
> I choose a lazy person to do a hard job. Because a lazy person will find an easy way to do it. [name=Bill Gates]


```gherkin=
Feature: Shopping Cart
  As a Shopper
  I want to put items in my shopping cart
  Because I want to manage items before I check out

  Scenario: User adds item to cart
    Given I'm a logged-in User
    When I go to the Item page
    And I click "Add item to cart"
    Then the quantity of items in my cart should go up
    And my subtotal should increment
    And the warehouse inventory should decrement
```

> Read more about Gherkin here: https://docs.cucumber.io/gherkin/reference/

User flows
---
```sequence
Alice->Bob: Hello Bob, how are you?
Note right of Bob: Bob thinks
Bob-->Alice: I am good thanks!
Note left of Alice: Alice responds
Alice->Bob: Where have you been?
```

> Read more about sequence-diagrams here: http://bramp.github.io/js-sequence-diagrams/

Project Timeline
---
```mermaid
gantt
    title A Gantt Diagram

    section Section
    A task           :a1, 2014-01-01, 30d
    Another task     :after a1  , 20d
    section Another
    Task in sec      :2014-01-12  , 12d
    anther task      : 24d
```

> Read more about mermaid here: http://mermaid-js.github.io/mermaid/

## Appendix and FAQ

:::info
**Find this document incomplete?** Leave a comment!
:::

###### tags: `Templates` `Documentation`
