BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA BÁO CÁO MÔN HỌC PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG HỆ HỖ TRỢ DỰ ĐOÁN KHẢ NĂNG GỌI VỐN THÀNH CÔNG Giảng viên hướng dẫn: TS... Lời nói đầuCrowd
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA
BÁO CÁO MÔN HỌC
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
HỆ HỖ TRỢ DỰ ĐOÁN KHẢ NĂNG GỌI VỐN
THÀNH CÔNG
Giảng viên hướng dẫn:
TS LÊ CHÍ NGỌC
Sinh viên thực hiện:
ĐỒNG THỊ THÙY LINH
20162387 Toán Tin - K61
Hà Nội - 2020
Trang 2Mục lục
1.1 Khảo sát hiện trạng 3
1.2 Thiết kế mô hình dự đoán 4
1.3 Dữ liệu 4
Chương II Phân tích thiết kế hệ thống 6 2.1 Mô hình hóa nghiệp vụ 6
2.2 Sơ đồ phân cấp chức năng 6
2.3 Biểu đồ luồng dữ liệu mức ngữ cảnh 7
2.4 Biểu đồ luồng dữ liệu mức đỉnh 8
Chương III Thiết kế giao diện hệ thống 9 3.1 Ngôn ngữ viết chương trình 9
3.2 Giao diện website 11
Trang 3Lời nói đầu
Crowd funding (gọi vốn cộng đồng) là hình thức kêu gọi sự giúp đỡ của cộng đồng để giúp chủ một dự án hay người nghĩ ra một ý tưởng hoàn thành những dự án hay sản phẩm của họ khi họ có ý tưởng nhưng lại không có tiền để thực hiện dự án của mình
Hình thức gọi vốn này đem lại rất nhiều lợi ích cho Start-up vì họ
có thể kêu gọi phục vụ cho việc ra mắt sản phẩm và đưa sản phẩm có cơ hội tiếp xúc trực tiếp với cộng đồng và những khách hàng tiềm năng
Mỗi người tham gia đều phải trả lời cho câu hỏi có nên thực hiện dự
án hay không (có đủ vốn cho dự án không?) hoặc nếu vẫn muốn thực hiện thì cần thay đổi một số yếu tố nào để gọi vốn thành công cho dự án? Do
đó các đội nghiên cứu đã nghiên cứu ra một phần mềm dự đoán khả năng gọi vốn thành công và đưa ra các giải pháp cho người làm dự án
Trong bài báo cáo gồm 3 chương:
Chương 1: Điều tra khảo sát
Chương 2: Phân tích thiết kế hệ thống
Chương 3: Thiết kế giao diện hệ thống
Em xin chân thành cảm ơn thầy Lê Chí Ngọc đã hướng dẫn em trong suốt thời gian môn học
Sinh viên thực hiện Đồng Thị Thùy Linh
Trang 4Chương I Điều tra khảo sát
1.1 Khảo sát hiện trạng
Trong những năm gần đây, phạm vi tài trợ cho các dự án cá nhân
và công ty nhỏ đã mở rộng đáng kể Ngoài tiết kiệm, vay ngân hàng, tài trợ từ bạn bè và gia đình cùng một số lựa chọn truyền thống khác, gây quỹ cộng đồng đã trở thành một lựa chọn phổ biến Kickstarter là một trong những nền tảng gây quỹ cộng đồng nổi tiếng, hoạt động theo quy chế người kêu gọi phải đạt được đủ vốn trở lên, nếu không chủ dự án sẽ không nhận được gì kể cả khi số vốn gần đủ Với những cá nhân và công
ty nhỏ, việc tìm tới các nhà đầu tư để huy động nguồn vốn ban đầu lớn (vài chục cho tới vài trăm triệu VND) là không dễ, đòi hỏi phải chuẩn bị tốt và chứng minh được mình với nhà đầu tư, vì vậy nhiều người đã tìm đến mô hình gọi vốn cộng đồng như Kickstarter
Câu hỏi đặt ra cho người làm dự án là có nên thực hiện dự án hay không dựa vào việc có thể gọi được vốn? Nếu vẫn thực hiện thì cần thay đổi gì để gọi vốn thành công? Rất nhiều yếu tố góp phần vào sự thành công hay thất bại khi gọi vốn của một dự án (số vốn, hạn gọi, thời gian bắt đầu gọi, mô tả dự án, quốc gia, ), Kickstarter thống kê lại những số liệu đó từ tất cả các dự án đã kết thúc để xây dựng một mô hình dự đoán liệu một dự án sẽ gọi vốn thành công hay không Thông qua dữ liệu người làm dự án mới đưa vào, ta cần xây dựng một hệ thống phân tích dữ liệu rồi đưa ra dự báo có thể gọi đủ vốn không, giúp những người làm dự án
Trang 5đánh giá liệu Kickstarter có phải là một lựa chọn tài trợ tốt, và cơ hội thành công của họ là gì? Ngoài ra hệ thống còn đưa ra một số gợi ý cho người làm dự án, ví dụ như cần thay đổi thời gian chạy dự án, thay đổi mục tiêu vốn, thời gian khởi chạy dự án,
1.2 Thiết kế mô hình dự đoán
Mô hình hồi quy logistic là mô hình mối quan hệ giữa tập hợp các biến Xi đầu vào là các biến có dạng như sau:
Biến dạng nhị phân
Biến phân loại
Biến liên tục
và một biến đầu ra Y thông thường là biến có dạng nhị phân
Giả định:
P (Y = 1|X) = e
β 0 +β 1 X 1 +β 2 X 2 +···+β n X n
1 + eβ 0 +β 1 X 1 +β 2 X 2 +···+β n X n
tương đương với:
ln
P (Y |X)
1 − P (Y |X)
= β0 + β1X1 + β2X2 + · · · + βnXn
đây là hàm chuyển logit
Với P là tỉ lệ Y = 1,1−PP được ước lượng theo công thức:
P
1 − P = e
β 0 +β 1 X 1 +β 2 X 2 +···+β n X n
1.3 Dữ liệu
Web Robots: Bộ dữ liệu chứa dữ liệu về tất cả các dự án được lưu trữ trên Kickstarter từ lúc ra mắt của vào tháng 4 năm 2009 đến tháng 2 năm 2020
Trang 6 Gồm 57 file dữ liệu
38 trường
211076 bản ghi
Các phương pháp tiền xử lý dữ liệu:
Xóa cột nhiều null và cột không hữu ích
Chuyển ngày từ unix sang định dạng datetime
Thêm một số đặc trưng được tính toán từ các cột
Xóa các bản ghi trùng lặp (có 22289 bản ghi trùng lặp trên tổng 211076 bản ghi)
One-hot coding dữ liệu định tính
Chuẩn hóa dữ liệu z-score: z = xưus
(z - giá trị mới của x, u - giá trị trung bình, s - độ lệch chuẩn)
Sau khi tiền xử lý, ta thu được bộ dữ liệu gồm các trường có ý nghĩa như sau:
backers_count - số người đã đóng góp quỹ cho dự án
blurb - mô tả ngắn về dự án
category - chứa danh mục và tiểu danh mục của dự án
country - quốc gia của người tạo dự án
created_at - ngày và thời gian dự án được tạo trên Kickstarter
deadline - ngày và thời gian dự án sẽ kết thúc gọi vốn
goal - mục tiêu tài trợ
launch_at - ngày và thời gian dự án được khởi động để tài trợ
name - tên của dự án
state - trạng thái của dự án
Chia bộ dữ liệu ra làm tập train và tập test với tỉ lệ 7:3
Trang 7Chương II Phân tích thiết kế hệ
thống
2.1 Mô hình hóa nghiệp vụ
Hình 2.1 Thiết kế mô hình
2.2 Sơ đồ phân cấp chức năng
Hệ thống bao gồm một số chức năng chính:
Chức năng hệ thống: đăng nhập, đăng xuất, đăng ký
Các chức năng liên quan đến dữ liệu: Hiển thị bộ dữ liệu, hiển thị dữ liệu dự đoán, hiển thị biểu đồ phân tích dữ liệu
Chức năng dự đoán: Dự đoán và đưa ra gợi ý
Trang 8Hình 2.2 Sơ đồ phân cấp chức năng
2.3 Biểu đồ luồng dữ liệu mức ngữ cảnh
Hình 2.3 Biểu đồ luồng dữ liệu mức ngữ cảnh
Trang 92.4 Biểu đồ luồng dữ liệu mức đỉnh
Hình 2.4 Biểu đồ luồng dữ liệu mức đỉnh
Trang 10Chương III Thiết kế giao diện hệ thống
3.1 Ngôn ngữ viết chương trình
Python là ngôn ngữ lập trình hướng đối tượng, cấp cao, mạnh mẽ, được tạo ra bởi Guido van Rossum Python hoàn toàn tạo kiểu động
và sử dụng cơ chế cấp phát bộ nhớ tự động Python có cấu trúc dữ liệu cấp cao mạnh mẽ và cách tiếp cận đơn giản nhưng hiệu quả đối với lập trình hướng đối tượng Cấu trúc của nó còn cho phép người sử dụng viết mã lệnh với số lần gõ phím tối thiểu
HTML (viết tắt của Hypertext Markup Language hay ngôn ngữ đánh dấu siêu văn bản) là ngôn ngữ đánh dấu được dùng để tạo các trang siêu văn bản được sử dụng trên mạng internet (hay trang web) Gọi là ngôn ngữ đánh dấu là vì HTML sử dụng các thẻ để định nghĩa (hay đánh dấu) các thành phần khác nhau trên trang web Nội dung của một trang web được tạo ra sử dụng các thẻ HTML khác nhau như thẻ
<html>, thẻ <body>
Cascading Style Sheets, viết tắt là CSS, là một ngôn ngữ định kiểu được sử dụng để mô tả việc trình bày một tài liệu được viết bằng HTML or XML (bao gồm các ngôn ngữ khác nhau như XML, SVG or XHTML) CSS mô tả cách các phần tử được hiển thị trên màn hình, trên giấy, trong lời nói, hoặc trên các phương tiện khác
JavaScript (viết tắt là "js") là một ngôn ngữ lập trình mang đầy đủ
Trang 11tính năng của một ngôn ngữ lập trình động mà khi nó được áp dụng vào một tài liệu HTML, nó có thể đem lại khả năng tương tác động trên các trang web Cha đẻ của ngôn ngữ này là Brendan Eich, đồng sáng lập dự án Mozilla, quỹ Mozilla, và tập đoàn Mozilla
Bootstrap là một framework bao gồm các HTML, CSS và JavaScript template dùng để phát triển website chuẩn responsive Bootstrap cho phép quá trình thiết kế website diễn ra nhanh chóng và dễ dàng hơn dựa trên những thành tố cơ bản sẵn có như typography, forms, buttons, tables, grids, navigation, image carousels
Flask là một web frameworks, nó thuộc loại micro-framework được xây dựng bằng ngôn ngữ lập trình Python Flask cho phép xây dựng các ứng dụng web từ đơn giản tới phức tạp Nó có thể xây dựng các api nhỏ, ứng dụng web chẳng hạn như các trang web, blog, trang wiki hoặc một website dựa theo thời gian hay thậm chí là một trang web thương mại Flask cung cấp các công cụ, các thư viện và các công nghệ
hỗ trợ làm những công việc trên.Điều này có nghĩa Flask là một môi trường độc lập, ít sử dụng các thư viện khác bên ngoài Do vậy, Flask
có ưu điểm là nhẹ, có rất ít lỗi do ít bị phụ thuộc cũng như dễ dàng phát hiện và xử lý các lỗi bảo mật
Trang 123.2 Giao diện website
Hình 3.1 Giao diện đăng nhập
Hình 3.2 Giao diện bắt đầu
Trang 13Hình 3.3 Giao diện bảng dữ liệu
Hình 3.4 Giao diện biểu đồ
Trang 14Hình 3.5 Giao diện dự đoán
Hình 3.6 Giao diện kết quả
Trang 15Hình 3.7 Giao diện đưa ra nhận xét và lời khuyên
Trang 16Kết luận
Trong bài báo cáo này em đã
Trình bày hệ hỗ trợ dự đoán khả năng gọi vốn thành công dựa trên
mô hình hồi quy Logistic
Trình bày quy trình phân tích thiết kế hệ thống hỗ trợ dự đoán khả năng gọi vốn thành công
Trình bày giao diện website trực quan và dễ sử dụng
Em xin chân thành cảm ơn thầy Lê Chí Ngọc đã hướng dẫn em tận tình trong suốt thời gian môn học
Sinh viên thực hiện Đồng Thị Thùy Linh