Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 90 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
90
Dung lượng
2,68 MB
Nội dung
BỘ KẾ HOẠCH VÀ ĐẦU TƯ HỌC VIỆN CHÍNH SÁCH VÀ PHÁT TRIỂN KHOA KINH TẾ SỐ -o0o - KHÓA LUẬN TỐT NGHIỆP ĐỀ TÀI: ỨNG DỤNG NGƠN NGỮ PYTHON VÀO DỰ ĐỐN KHÁCH HÀNG RỜI BỎ DỊCH VỤ NGÂN HÀNG Giáo viên hướng dẫn :TS.Đàm Thanh Tú Sinh viên thực :Lê Quang Đức Mã sinh viên :7103101310 Khoa :Kinh Tế Số Lớp chuyên ngành :Phân tích liệu lớn Kinh tế Kinh doanh HÀ NỘI- 2023 LỜI CẢM ƠN Lời em xin chân thành cảm ơn Thầy, Cô khoa Kinh Tế Số giảng dạy, truyền đạt cho em kiến thức quý báu tạo điều kiện thuận lợi cho em suốt trình học tập trường thời gian thực khóa luận tốt nghiệp Đặc biệt, em muốn gửi lời cảm ơn tới Tiến Sĩ Đàm Thanh Tú giảng viên trực tiếp hướng dẫn tận tình bảo giúp em khắc phục khó khăn, thiếu sót để hoàn thành phần luận án tốt nghiệp từ tìm hiểu lý thuyết thực hành sử dụng cơng cụ, ngơn ngữ lập trình Xin cảm ơn bạn bè, người thân đồng hành suốt thời gian qua cho chỗ dựa vững để đạt kết ngày hơm Với hiểu biết tìm tịi thân bảo hướng dẫn tận tình giảng viên em cố gắng hồn thành khóa luận cách tốt khơng thể tránh thiếu sót Kính mong nhận đóng góp ý kiến từ thầy để em nâng cao bổ sung thêm kiến thức cho thân, hồn thiện khóa luận với kết tốt hoản chỉnh Em xin chân thành cảm ơn! Hà Nội, ngày 27 tháng năm 2023 Sinh viên thực Lê Quang Đức MỤC LỤC MỤC LỤC DANH MỤC BẢNG MỞ ĐẦU CHƯƠNG 1: KHÁI QUÁT VỀ LÝ THUYẾT CHUNG 10 1.1 Giới thiệu ngôn ngữ Python 10 1.1.1 Lịch sử hình thành 10 1.1.2 Tại nên học lập trình python 11 1.2 Cài đặt môi trường làm việc : PyCharm, Jupyter Notebook, VsCode,… 11 1.3 Cài đặt Python 16 1.4 Tạo file viết mã VSCODE 19 1.5 Cài đặt gói thư viện 22 1.5.1 Cài đặt pip 22 1.5.2 Một số gói thư viện thơng dụng 23 1.7 Cấu trúc liệu gì, kiểu cấu trúc liệu Python 27 1.8 Cấu trúc điều khiển Python 29 1.8.1 Lệnh IF 29 1.8.2 Lệnh FOR 30 1.8.3 Lệnh While 31 1.9 Sử dụng hàm Python 32 1.9.1 Hàm (Function) 32 1.9.2 Thông số Hàm ( Function Parameters) 33 1.9.3 Câu lệnh return Python 34 1.9.4 DocStrings Python 36 1.9.5 Ví dụ hàm DocStrings Python 36 1.10 Đọc file CSV python 37 1.10.1 Tệp CSV ? 37 1.10.2 Các hàm module CSV Python 38 1.10.3 Cách đọc tệp CSV 39 1.10.4 Cách viết tệp CSV 40 1.11 Sử dụng thư viện pandas Python 40 1.11.2 Tại lại dùng thư viện pandas? 41 1.11.3 Đọc file csv sử dụng thư viện pandas 42 1.11.4 Thao tác với dataframe pandas 43 1.12 Vẽ biểu đồ python 47 1.12.1 Matplotlib 47 1.12.2 Khái niệm chung 47 1.12.3 Ví dụ tạo biểu đồ đơn giản 48 CHƯƠNG 2: BÀI TOÁN ỨNG DỤNG DỰ ĐOÁN KHÁCH HÀNG RỜI BỎ DỊCH VỤ 50 2.1.Khái nhiệm 50 2.2.Chính xác Churn Prediction ? 50 2.3.Tại nên sử dụng Churn Prediction ? 50 2.4 Ngăn chặn khách hàng trước họ rời ? 51 2.5 Bài toán 52 CHƯƠNG 3: BÀI TOÁN DỰ ĐOÁN KHÁCH HÀNG RỜI BỎ DỊCH VỤ NGÂN HÀNG 59 3.1 Diễn giải liệu 59 3.2 Xử lý Outliers 76 3.3.Correlation 80 3.4 Xây dựng mơ hình 81 3.4.1 Logistic Regression 81 3.4.2 Decision Tree 83 3.4.3 RandomForest 84 3.4.4 Lựa chọn mơ hình 84 KẾT LUẬN 89 DANH MỤC TÀI LIỆU THAM KHẢO 90 DANH MỤC BẢNG Hình 1.2- 1.Tải VSCode cho hệ điều hành phù hợp 12 Hình 1.2- Cài đặt VSCode 13 Hình 1.2- Chọn cài Tùy chọn Cài đặt 14 Hình 1.2- Lựa chọn Install để cài đặt VSCode 15 Hình 1.2- Hồn tất việc cài VSCode 16 Hình 1.3- Tải Python phiên 17 Hình 1.3- Install Python 18 Hình 1.3- Install Python thành công 19 Hình 1.4- Tìm kiếm Python VSCode để cài đặt 20 Hình 1.4- Tạo file 21 Hình 1.4- Các dòng code VSCode 22 Hình 1.5- Minh họa cài đặt pip 23 Hình 1.5- Ví dụ cài đặt thư viện matplotlib 23 Hình 1.6- Comment python 26 Hình 1.7- So sánh list tuple 29 Hình 1.8- Ví dụ lệnh if toán 30 Hình 1.8- Ví dụ lệnh for 31 Hình 1.8- Ví dụ lệnh while 32 Hình 1.9- Ví dụ hàm 33 Hình 1.9- Ví dụ hàm Function parameters 34 Hình 1.9- lệnh return 35 Hình 1.9- ví dụ lệnh return 35 Hình 1.9- ví dụ hàm DocString 37 Hình 1.10- ví dụ cách đọc tệp CSV 39 Hình 1.10- kết ví dụ đọc tệp CSV 39 Hình 1.10- Cách viêt tệp CSV 40 Hình 1.10- kết tệp CSV 40 Hình 1.11- Đọc file CSV sử dụng pandas 42 Hình 1.11- Ví dụ 43 Hình 1.11- 44 Hình 1.11- kết theo cột 45 Hình 1.11- kết theo nhiều cột 45 Hình 1.11- Lấy ghi theo số 46 Hình 1.11- Kết numpy arrays trả 47 Hình 1.12- ví dụ tạo biểu đồ 49 MỞ ĐẦU Trong sống đại ngày nay, kinh tế ngày phát triển ngành công nghệ thông tin trợ thủ đắc lực cho hầu hết ngành nghề Sự góp mặt chương trình ứng dụng mang lại nhiều lợi ích thiết thực làm cho cách thức vận hành hoạt động liên ngành khác trở lên linh hoạt mang lại hiệu cao Đặc biệt, thời đại công nghệ 4.0 gần thiếu khái niệm liên quan đến công nghệ thông tin, từ phương tiện truyền thơng, xã hội, văn hóa, giải trí, khoa học kỹ thuật lĩnh vực kinh doanh, quản lý, y tế, giáo dục v.v Đâu đâu cần phần mềm sản phẩm công nghệ thông tin đễ hỗ trợ giúp thúc đẩy phát triển vững mạnh Ví dụ lĩnh vực kinh doanh bn bán hàng hóa theo cách truyền thống tồn nhiều nhược điểm thống kê chi tiết chưa xác, quy trình tốn chưa chặt chẽ nhanh chóng, nhờ có phần mềm quản lý, toán điện tử mà nhà quản lý theo dõi kết thực xác hệ thống Để tạo sản phẩm phần mềm hữu ích, với phát triển nhiều ngơn ngữ lập trình đáp ứng cho cơng nghiệp 4.0 Python tên đáng ý Hiện ngôn ngữ Python xếp hạng Top 10 ngơn ngữ lập trình phổ biến giới sử dụng Python ngơn ngữ có hình thái sáng sủa, cấu trúc rõ ràng, thuận tiện cho người bắt đầu học lập trình Cấu trúc Python 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 Python ngơn ngữ lập trình đơn giản lại hiệu Bên cạnh đó, Python ngơn ngữ có tính hướng đối tượng cao, sử dụng nhiều cho toán xử lý với liệu lớn Với ngơn ngữ lập trình python ngơn ngữ lập trình đa với nhiều ưu điểm vượt trội, đứng vị trí số top ngơn ngữ lập trình Chính ưu điểm nên em chọn đề tài tìm hiểu ngơn ngữ lập trình Python viết chương trình thực nghiệm dự đoán khách hàng rời bỏ dịch vụ làm đề tài tốt nghiệp CHƯƠNG 1: KHÁI QUÁT VỀ LÝ THUYẾT CHUNG 1.1 Giới thiệu ngôn ngữ Python 1.1.1 Lịch sử hình thành Python hình thành vào cuối năm 1980 bắt đầu thực vào tháng 12/1989 Guido van Rossum CWI Hà Lan người kế thừa ngơn ngữ ABC (tự lấy cảm hứng từ SETL) có khả xử lý ngoại lệ giao tiếp với hệ điều hành Amoeba Van Rossum tác giả Python, vai trị trung tâm ơng tiếp tục việc định hướng phát triển Python phản ánh tiêu đề mà cộng đồng Python dành cho ông “Độc tài nhân từ cho sống” (benevolent dictator for life)(BDFL) Python phát hành vào ngày 16/10/2000, với nhiều tính bao gồm dọn rác đầy đủ hỗ trợ Unicode Với phiên này, trình phát triển thay đổi trở thành minh bạch cộng đồng ủng hộ Python (còn gọi Python 3000 Py3k), phát hành lớn, khơng tương thích ngược, phát hành vào ngày 03/12/2008 sau thời gian dài thử nghiệm Nhiều số tính điều chỉnh để tương thích ngược với Python Các tính triết lý phát triển Python ngơn ngữ lập trình đa hình: lập trình hướng đối tượng hướng cấu trúc hỗ trợ đầy đủ, có số tính ngơn ngữ hỗ trợ lập trình theo chức lập trình hướng khía cạnh (Aspect-oriented programming) Nhiều mơ hình khác hỗ trợ việc sử dụng phần mở rộng, bao gồm thiết kế theo hợp đồng (design by contract) lập trình luận lý Các trang Mozilla, Reddit, Instagram PBS viết Python Ngơn ngữ lập trình Python dùng vào mục đích: Đức lại có số lượng cao khách hàng Pháp mức sử dụng sản phẩm sản phẩm (dù khách hàng Pháp nhiều gấp đôi khách hàng Đức) Hoặc ta biểu diễn tỉ lệ khách hàng rời bỏ mức sản phẩm sau: Vì tất 60 người sử dụng sản phẩm rời bỏ dịch vụ nên đương nhiên ratio mức 100% chiếm cao nhất, mức sản phẩm xong đến mức sản phẩm cuối mức sản phẩm với 83%, 28%, 8% 3.2 Xử lý Outliers Tạo boxplot: Trên boxplot biến numeric Trong có biến tồn outliers data ‘CreditScore’, ‘Age’, ‘NumOfProducts’ Tạo hàm để tìm outliers : Tiếp theo vẽ boxplot tìm giới hạn trên/dưới để chuẩn bị xử lý outliers scipy.stats: Xong sau ta bắt đầu xử lý outliers với scipy.stats: • Credit score Sau đưa tìm giới hạn %outlier biến ta đưa vào hàm để xử lý với scipy.stats: • Age Tương tự xử lý biến ‘CreditScore’ ta làm lại với biến ‘Age’ thu được: • Number of products Và data sau cleaned 3.3.Correlation Chúng ta xem số tương quan tệp liệu dựa theo biến phụ thuộc ‘Exited’ ‘Age’ biến có số tương quan cao ‘NumOfProducts’ biến có số tương quan thấp 3.4 Xây dựng mô hình 3.4.1 Logistic Regression Đầu tiên ta import thư viện cần sử dụng cho việc xây dựng mơ hình: Tiếp theo sử dụng StandardScaler để xử lý chênh lệch đơn vị giữ biến phụ thuộc biến độc lập: Sau sử dụng ‘get_dummies’ cho hai biến ‘Gender’ ‘Geography’ Chia tập liệu thành tập train test với ‘drop’ hai biến ‘HasCrCard’ ‘Balance’ Do mục phân tích biên riêng ta kết luận hai biến không ảnh hưởng tới việc rời bỏ khách hàng: Sau chia tệp liệu xong ta train vào mô hình Accuracy 3.4.2 Decision Tree Accuracy score: score : 3.4.3 RandomForest Accuracy: 3.4.4 Lựa chọn mơ hình Vì Accuracy (Chỉ số đánh giá tổng quát) RandomForest 0.829, cao mơ hình nên chọn mơ hình RandomForest cho toán Precision = 0.85 → Trong tất dự đoán khách hàng rời bỏ dịch vụ đưa mơ hình dưa đốn xác 85% Recall = 0.95 → Trong trường hợp khách hàng lại mơ hình dự đốn tới 95% lượng người F1-score = 0.90 → Vì Precision Recall mơ hình tương đối cao kéo theo số F1-score cao, ta đánh giá mơ hình đáng tin cậy Tuy nhiên nhìn chung cịn tới 15% lượng khách hàng thực rời bỏ dịch vụ bị mơ hình RandomForest bỏ qua, chứa khách hàng thực tiềm năng, mang lại lợi nhuận có uy tín cao Có thể ví dụ biến ‘NumOfProducts’ có 60/60 khách hàng từ sử dụng dịch vụ ( nhiều nhất) rời bỏ 3.5 Một số giải pháp cho ngân hàng Như biết tỉ lệ khách hàng rời bỏ qua mơ hình, cần phải làm để ngăn chặn việc tỉ lệ rời bỏ tăng cao Sau vài giải pháp mà ngân hàng nên học hỏi để giảm tỉ lệ khách hàng rời bỏ sử dụng dịch vụ thơng qua dựa vào kết luận toán 3.5.1 Xây dựng chiến lược Doanh nghiệp xây dựng đội ngũ cho dự án để tạo kế hoạch chiến lược kinh doanh, chiến lược cần coi hoạt động mang tính dài hạn hội để tranh thủ lợi nhuận Với việc ngân hàng có tới 60/60 tỉ lệ khách hàng rời bỏ sử dụng dịch vụ (nhiều nhất) cho cho thấy khả tiếp nhận phản hồi từ khách hàng tiếp tục nâng cấp doanh nghiệp thực có vấn đề cần sửa đổi Vì doanh nghiệp cần phải có công cụ hỗ trợ trực tuyến (online support) tư vấn qua tảng xã hội Facebook, Zalo,… không trực tuyến (offline) gửi thư điện tử để trợ giúp khách hàng cách tối đa hiệu Từ thắc mắc phản hồi khách hàng, doanh nghiệp rút học kinh nghiệm cách nhanh chóng từ khách hàng hay làm để khách hàng tốn khoản vay cách an tồn nhất,… Tất điều giúp ngân hàng nâng cấp chất lượng dịch vụ cách tiếp cận dịch vụ cung cấp cho khách hàng, để ngày hoàn thiện 3.5.2 Thêm dịch vụ nhằm giữ chân khách hàng Với việc độ tuổi 45 65 tuổi có tỉ lệ khách hàng rời bỏ cao nhất, ngân hàng nên tư vấn quảng bá thêm dịch vụ liên kết thêm với công ty bảo hiểm nhằm tỉ lệ rời bỏ dịch vụ khách hàng Ví dụ khoảng thời gian có nhiều độ tuổi rời bỏ rơi vào 20 năm, gói dịch vụ gợi ý hồn tồn gói bảo hiểm với thời gian tương đương khoảng 20 năm Tuy nhiên việc đóng khoản bảo hiểm làm tăng việc trì tài khoản thường đến hạn khách hàng chuyển tiền vào tài khoản để đóng bảo hiểm Dẫu biết việc khơng ảnh hương đến khả rời bỏ làm xấu liệu ngân hàng Ngoài với việc rời bỏ dịch vụ bên có kích hoạt thành viên thấp hẳn (khoảng nửa) so với bên khơng có kích hoạt thành viên, ta nên tăng cường xây dựng nguồn lực phục vụ cho việc tư vấn thuyết phục khách hàng đăng kí trở thành member doanh nghiệp, khơng tư vấn trực tiếp mà mạng Cần xây dựng kế hoạch nguồn lực phục vụ cho kinh doanh mạng như: đội ngũ quản trị mạng, đội ngũ bán hàng tiếp thị mạng, nhà cung ứng, quan hệ đối tác (một nhân tố đánh giá quan trọng chiến lược kinh doanh mạng đánh giá thành tố (partnering) chiến lược Marketing mix Những doanh nghiệp cục bộ, không tiếp cận không tận dụng cách tối đa với dịch vụ điện tử thứ vũ khí cạnh tranh chắn tồn lâu 3.5.3 Nâng cao nhận thức trau dồi trình độ tin học ngoại ngữ đội ngũ quản trị nhân viên doanh nghiệp Với việc ngân hàng có chi nhánh nước khác Pháp, Đức Tây Ba Nha, ngân hàng phải thường xuyên đào tạo cho nhân viên tham dự khoá học tin học ngoại ngữ Việc đào tạo hình thức cấp kinh phí cho nhân viên học tổ chức buổi học công ty Ban giám đốc công ty cần nhận thức cách toàn diện đầy đủ lợi ích việc mà khách hàng cảm thấy gắn kết với doanh nghiệp để phát huy lợi ích để tận dụng khai thác, đồng thời hạn chế giảm thiểu tác động tiêu cực mà mang lại Sau phải truyền lại cho tồn thể nhân viên cơng ty hiểu thấm nhuần yêu cầu tất yếu để nâng cao sức cạnh tranh doanh nghiệp, giúp doanh nghiệp trụ vững vươn lên thời gian tới, Hàng năm mở khóa thi tuyển cán ngân hàng với chất lượng thi tuyển cao, cơng để có thêm lớp cán trẻ, động, có hiểu biết sâu sắc ngành ngân hàng Bên cạnh đó, tuyển chọn cán qua hình thức tài trợ cho trường đại học, trung tâm đào tạo… để tìm kiếm sinh viên tài từ ngồi giảng đường đại học, đào tạo cho họ trở thành cán giỏi ngân hàng tương lai Có làm khách hàng hài lịng thêm nhân viên chi nhánh mà tin tưởng ký kết hợp đồng Đồng thời, từ hoạt động này, cán ngân hàng có đánh giá thân 3.5.5 Ngồi cịn số định hướng phát triển chung hướng tới chi nhánh - Tiếp tục củng cố, nâng cao lực hoạt động ngân hàng thơng qua nâng cao lực tài chính, cơng nghệ quản trị rủi ro; - Không ngừng thay đổi tư quản trị theo hướng áp dụng chuẩn mựctiên tiến, đại giới hoạt động ngân hàng; - Tập trung phát huy lợi thế, khắc phục tồn tại/hạn chế, tận dụng tốiđa hội thị trường, nhằm hoàn thành thắng lợi mục tiêu kinh doanh; - Đẩy mạnh thu hút nguồn tiền gửi dân cư doanh nghiệp lớn; - Tăng trưởng dịch vụ ngân hàng; - Duy trì, đảm bảo an tồn, hiệu hoạt động tín dụng; - Bố trí nguồn nhân lực có khả trách nhiệm thực công tác thu nợ; - Củng cố mạng lưới hoạt động, tiếp tục đào tạo đào tạo lại cán nhằm đáp ứng yêu cầu phát triển hoạt động ngân hàng KẾT LUẬN Sau thời gian tham khảo tìm tịi bảo thầy hướng dẫn khóa luận tốt nghiệp Tìm hiểu ngơn ngữ lập trình python, viết mơ hình dự đốn khách hàng rời bỏ dịch vụ khoảng thời gian định dành cho việc thực đề tài, nên số vấn đề chưa hồn chỉnh Tuy nhiên, khóa luận đạt số kết Những kết đạt đồ án: - Tìm hiểu ngơn ngữ python - Tìm hiểu mơi trường lập trình VSCode - Tìm hiểu toán dự đoán khách hàng rời bỏ dịch vụ - Làm mơ hình thử nghiệm dự đốn khách hàng rời bỏ dịch vụ ngân hàng Tuy nhiên q trình thực cịn số điều cần bổ sung như: - Chưa thao tác thành thục lập trình python - Chưa hiểu sâu toán dự đoán khách hàng rời bỏ dịch vụ - Mơ hình chưa tối ưu hóa Trong thời gian tiếp theo, em cố gắng để ngày hoàn thiện, trau dồi kĩ lập trình trở nên tốt hơn, tìm hiểu phương pháp học máy đại thuật toán để thử nghiệm với mơ phương pháp cho kết tốt Em xin chân thành cảm ơn ! DANH MỤC TÀI LIỆU THAM KHẢO SHRUTI_IYYER (2019), Churn Modelling, kaggle:https://www.kaggle.com/ Soham Naik (2022), Churn Prediction- Commercial use of Data Science https://www.analyticsvidhya.com/ Websitehcm (2021), Regression logistic, https://websitehcm.com/ Đăng tải 2019, Cây Quyết Định (Decision Tree), https://trituenhantao.io/ Đăng tải 2022, How to read a confusion matrix, https://www.projectpro.io/ Minh Vũ (2022), Tìm hiểu Confusion matrix Machine Learning?, https://viblo.asia/ TS Nguyễn Văn Hậu (2018), Python bản, NXB Đại học Quốc gia Hà Nội, Hà Nội Đăng tải 04/01/2023, A Complete Guide to Reducing Churn in the Telecom Industry,https://www.vizolution.com/