Hướng dẫn Python cho Dữ liệu lớn
Nó đã xảy ra một vài năm trước. Sau hơn 5 năm làm việc tại SAS, tôi quyết định bước ra khỏi vùng an toàn của mình. Là một nhà khoa học dữ liệu, việc tìm kiếm các công cụ hữu ích khác của tôi đã BẬT. May mắn thay, tôi không mất nhiều thời gian để quyết định – Python là món khai vị của tôi Show
Tôi luôn có thiên hướng viết mã. Đây là thời gian để làm những gì tôi thực sự yêu thích. Mã số. Hóa ra, mã hóa thực sự khá dễ dàng Tôi đã học những kiến thức cơ bản về Python trong vòng một tuần. Và, kể từ đó, tôi không chỉ khám phá ngôn ngữ này một cách chuyên sâu mà còn giúp nhiều người khác học ngôn ngữ này. Python ban đầu là một ngôn ngữ có mục đích chung. Tuy nhiên, qua nhiều năm, với sự hỗ trợ mạnh mẽ của cộng đồng, ngôn ngữ này đã có thư viện chuyên dụng để phân tích dữ liệu và lập mô hình dự đoán Do thiếu tài nguyên về python cho khoa học dữ liệu, tôi quyết định tạo hướng dẫn này để giúp nhiều người khác học python nhanh hơn. Trong hướng dẫn này, chúng tôi sẽ lấy thông tin có kích thước vừa phải về cách sử dụng Python để Phân tích dữ liệu, nhai nó cho đến khi chúng tôi cảm thấy thoải mái và thực hành nó theo ý mình Hướng dẫn hoàn chỉnh về python từ đầu trong khoa học dữ liệu Bạn có phải là người mới bắt đầu tìm kiếm một nơi để bắt đầu hành trình của mình trong khoa học dữ liệu và học máy không? Bạn cũng có thể xem khóa học 'Giới thiệu về Khoa học dữ liệu' - phần giới thiệu toàn diện về thế giới khoa học dữ liệu. Nó bao gồm các mô-đun về Python, Thống kê và Mô hình dự đoán cùng với nhiều dự án thực tế để bạn bắt tay vào làm Mục lục
Bắt đầu nào 1. Khái niệm cơ bản về Python để phân tích dữ liệuTại sao học Python để phân tích dữ liệu?Python đã thu hút rất nhiều sự quan tâm gần đây như là một lựa chọn ngôn ngữ để phân tích dữ liệu. Tôi đã có kiến thức cơ bản về Python một thời gian trước. Dưới đây là một số lý do có lợi cho việc học Python
Không cần phải nói, nó vẫn còn một vài nhược điểm
Trăn 2. 7 v/s 3. 4Đây là một trong những chủ đề được tranh luận nhiều nhất trong Python. Bạn sẽ luôn đi qua những con đường với nó, đặc biệt nếu bạn là người mới bắt đầu. Không có lựa chọn đúng/sai ở đây. Nó hoàn toàn phụ thuộc vào tình hình và nhu cầu sử dụng của bạn. Tôi sẽ cố gắng cung cấp cho bạn một số gợi ý để giúp bạn đưa ra lựa chọn sáng suốt Tại sao Python 2. 7?
Tại sao Python 3. 4?
Không có người chiến thắng rõ ràng nhưng tôi cho rằng điểm mấu chốt là bạn nên tập trung vào việc học Python như một ngôn ngữ. Chuyển đổi giữa các phiên bản chỉ là vấn đề thời gian. Hãy theo dõi một bài viết chuyên dụng về Python 2. x so với 3. x trong thời gian tới Làm cách nào để cài đặt Python?Có 2 cách tiếp cận để cài đặt Python
Phương pháp thứ hai cung cấp cài đặt không rắc rối và do đó tôi sẽ giới thiệu phương pháp đó cho người mới bắt đầu. Sự bắt chước của phương pháp này là bạn phải đợi toàn bộ gói được nâng cấp, ngay cả khi bạn quan tâm đến phiên bản mới nhất của một thư viện. Nó không thành vấn đề cho đến khi và trừ khi, cho đến khi và trừ khi, bạn đang thực hiện nghiên cứu thống kê tiên tiến Lựa chọn môi trường phát triển Khi bạn đã cài đặt Python, có nhiều tùy chọn khác nhau để chọn môi trường. Dưới đây là 3 tùy chọn phổ biến nhất
Mặc dù môi trường phù hợp tùy thuộc vào nhu cầu của bạn, nhưng cá nhân tôi thích iPython Notebooks hơn rất nhiều. Nó cung cấp rất nhiều tính năng tốt để ghi lại tài liệu trong khi tự viết mã và bạn có thể chọn chạy mã theo khối (thay vì thực thi từng dòng một) Chúng tôi sẽ sử dụng môi trường iPython cho hướng dẫn đầy đủ này Làm nóng lên. Chạy chương trình Python đầu tiên của bạnBạn có thể sử dụng Python như một máy tính đơn giản để bắt đầu Vài điều cần lưu ý
Trước khi đi sâu vào giải quyết vấn đề, hãy lùi lại một bước và hiểu những điều cơ bản về Python. Như chúng ta biết rằng cấu trúc dữ liệu, phép lặp và cấu trúc có điều kiện tạo thành mấu chốt của bất kỳ ngôn ngữ nào. Trong Python, chúng bao gồm danh sách, chuỗi, bộ dữ liệu, từ điển, vòng lặp for, vòng lặp while, if-else, v.v. Chúng ta hãy xem xét một số trong số này 2. Thư viện Python và Cấu trúc dữ liệuCấu trúc dữ liệu PythonSau đây là một số cấu trúc dữ liệu, được sử dụng trong Python. Bạn nên làm quen với chúng để sử dụng chúng cho phù hợp
Đây là một ví dụ nhanh để xác định một danh sách và sau đó truy cập nó
Vì Tuples là bất biến và không thể thay đổi, nên chúng xử lý nhanh hơn so với danh sách. Do đó, nếu danh sách của bạn không có khả năng thay đổi, bạn nên sử dụng bộ dữ liệu, thay vì danh sách
Phép lặp Python và cấu trúc có điều kiệnGiống như hầu hết các ngôn ngữ, Python cũng có vòng lặp FOR, đây là phương pháp lặp được sử dụng rộng rãi nhất. Nó có một cú pháp đơn giản for i in [Python Iterable]: expression(i) Ở đây “Python Iterable” có thể là một danh sách, bộ dữ liệu hoặc các cấu trúc dữ liệu nâng cao khác mà chúng ta sẽ khám phá trong các phần sau. Hãy cùng xem một ví dụ đơn giản, xác định giai thừa của một số fact=1 for i in range(1,N+1): fact *= i Đến với các câu lệnh có điều kiện, chúng được sử dụng để thực thi các đoạn mã dựa trên một điều kiện. Cấu trúc được sử dụng phổ biến nhất là if-else, với cú pháp sau if [condition]: __execution if true__ else: __execution if false__ Chẳng hạn, nếu chúng ta muốn in số N là chẵn hay lẻ if N%2 == 0: print ('Even') else: print ('Odd') Bây giờ bạn đã quen thuộc với các nguyên tắc cơ bản của Python, hãy tiến thêm một bước nữa. Điều gì sẽ xảy ra nếu bạn phải thực hiện các nhiệm vụ sau
Nếu bạn cố gắng viết mã từ đầu, đó sẽ là một cơn ác mộng và bạn sẽ không ở lại Python quá 2 ngày. Nhưng đừng lo lắng về điều đó. Rất may, có nhiều thư viện được xác định trước mà chúng tôi có thể nhập trực tiếp vào mã của mình và giúp cuộc sống của chúng tôi trở nên dễ dàng Ví dụ, xét ví dụ giai thừa mà chúng ta vừa thấy. Chúng ta có thể làm điều đó trong một bước duy nhất như math.factorial(N) Ngoài khóa học, chúng tôi cần nhập thư viện toán học cho điều đó. Hãy khám phá các thư viện khác nhau tiếp theo Thư viện PythonHãy đi trước một bước trong hành trình học Python của chúng ta bằng cách làm quen với một số thư viện hữu ích. Bước đầu tiên rõ ràng là học cách nhập chúng vào môi trường của chúng ta. Có một số cách để làm như vậy trong Python from math import *[/stextbox] Theo cách đầu tiên, chúng tôi đã xác định bí danh m cho thư viện toán học. Bây giờ chúng ta có thể sử dụng các chức năng khác nhau từ thư viện toán học (e. g. giai thừa) bằng cách tham chiếu nó bằng bí danh m. yếu tố() Theo cách thứ hai, bạn đã nhập toàn bộ không gian tên trong toán i. e. bạn có thể trực tiếp sử dụng giai thừa () mà không cần tham khảo toán học [stextbox id = “phần”] Mẹo. Google khuyên bạn nên sử dụng kiểu nhập thư viện đầu tiên, vì bạn sẽ biết nguồn gốc của các chức năng. [/stextbox]Sau đây là danh sách các thư viện, bạn sẽ cần cho bất kỳ tính toán khoa học và phân tích dữ liệu nào
Thư viện bổ sung, bạn có thể cần
Bây giờ chúng ta đã quen thuộc với các nguyên tắc cơ bản của Python và các thư viện bổ sung, hãy đi sâu vào giải quyết vấn đề thông qua Python. Vâng, ý tôi là làm một mô hình dự đoán. Trong quá trình này, chúng tôi sử dụng một số thư viện mạnh mẽ và cũng bắt gặp cấp cấu trúc dữ liệu tiếp theo. Chúng tôi sẽ hướng dẫn bạn qua 3 giai đoạn chính
3. Phân tích thăm dò trong Python bằng PandasĐể khám phá thêm dữ liệu của chúng tôi, hãy để tôi giới thiệu với bạn một loài động vật khác (như thể Python là không đủ. ) – Gấu trúc Pandas là một trong những thư viện phân tích dữ liệu hữu ích nhất trong Python (Tôi biết những cái tên này nghe có vẻ kỳ lạ, nhưng hãy khoan đã. ). Họ là công cụ giúp tăng cường sử dụng Python trong cộng đồng khoa học dữ liệu. Bây giờ, chúng tôi sẽ sử dụng Pandas để đọc tập dữ liệu từ cuộc thi Analytics Vidhya, thực hiện phân tích khám phá và xây dựng thuật toán phân loại cơ bản đầu tiên của chúng tôi để giải quyết vấn đề này Trước khi tải dữ liệu, hãy hiểu 2 cấu trúc dữ liệu chính trong Pandas – Series và DataFrames Giới thiệu về Sê-ri và DataframesSê-ri có thể hiểu là mảng 1 chiều được gán nhãn/chỉ mục. Bạn có thể truy cập các thành phần riêng lẻ của chuỗi này thông qua các nhãn này Một khung dữ liệu tương tự như sổ làm việc Excel - bạn có các tên cột đề cập đến các cột và bạn có các hàng, có thể được truy cập bằng cách sử dụng số hàng. Sự khác biệt cơ bản là tên cột và số hàng được gọi là chỉ mục cột và hàng, trong trường hợp khung dữ liệu Sê-ri và khung dữ liệu tạo thành mô hình dữ liệu cốt lõi cho Pandas trong Python. Các bộ dữ liệu trước tiên được đọc vào các khung dữ liệu này và sau đó là các hoạt động khác nhau (e. g. nhóm theo, tập hợp vv. ) có thể được áp dụng rất dễ dàng cho các cột của nó Hơn. 10 phút đến gấu trúc Tập dữ liệu thực hành – Bài toán dự đoán khoản vayBạn có thể tải xuống bộ dữ liệu từ đây. Dưới đây là mô tả của các biến [stextbox id = “grey”]VARIABLE DESCRIPTIONS: Variable Description Loan_ID Unique Loan ID Gender Male/ Female Married Applicant married (Y/N) Dependents Number of dependents Education Applicant Education (Graduate/ Under Graduate) Self_Employed Self employed (Y/N) ApplicantIncome Applicant income CoapplicantIncome Coapplicant income LoanAmount Loan amount in thousands Loan_Amount_Term Term of loan in months Credit_History credit history meets guidelines Property_Area Urban/ Semi Urban/ Rural Loan_Status Loan approved (Y/N) [/stextbox] Hãy bắt đầu với việc khám pháĐể bắt đầu, hãy khởi động giao diện iPython ở chế độ Pylab nội tuyến bằng cách gõ lệnh sau trên dấu nhắc lệnh terminal/windows của bạn ________số 8Thao tác này sẽ mở sổ ghi chép iPython trong môi trường pylab, trong đó có một vài thư viện hữu ích đã được nhập. Ngoài ra, bạn sẽ có thể vẽ biểu đồ nội tuyến dữ liệu của mình, điều này làm cho đây trở thành một môi trường thực sự tốt để phân tích dữ liệu tương tác. Bạn có thể kiểm tra xem môi trường đã được tải chính xác chưa bằng cách nhập lệnh sau (và nhận kết quả như trong hình bên dưới) [stextbox id = "grey"]plot(arange(5))[/stextbox] Tôi hiện đang làm việc trên Linux và đã lưu trữ tập dữ liệu ở vị trí sau /home/kunal/Downloads/Loan_Prediction/train. csv Nhập thư viện và tập dữ liệuSau đây là các thư viện chúng tôi sẽ sử dụng trong hướng dẫn này Xin lưu ý rằng bạn không cần nhập matplotlib và numpy vì môi trường Pylab. Tôi vẫn giữ chúng trong mã, trong trường hợp bạn sử dụng mã trong một môi trường khác Sau khi nhập thư viện, bạn đọc tập dữ liệu bằng hàm read_csv(). Đây là cách mã trông như thế nào cho đến giai đoạn này fact=1 for i in range(1,N+1): fact *= i0 Khám phá dữ liệu nhanhKhi bạn đã đọc tập dữ liệu, bạn có thể xem một vài hàng trên cùng bằng cách sử dụng hàm head() fact=1 for i in range(1,N+1): fact *= i1 Điều này sẽ in 10 hàng. Ngoài ra, bạn cũng có thể xem nhiều hàng hơn bằng cách in tập dữ liệu Tiếp theo, bạn có thể xem tóm tắt các trường số bằng cách sử dụng hàm description() fact=1 for i in range(1,N+1): fact *= i2 hàm description() sẽ cung cấp số lượng, giá trị trung bình, độ lệch chuẩn (std), tối thiểu, tứ phân vị và tối đa trong đầu ra của nó (Đọc bài viết này để làm mới số liệu thống kê cơ bản nhằm hiểu phân bố dân số) Dưới đây là một vài suy luận, bạn có thể rút ra bằng cách nhìn vào đầu ra của hàm description()
Xin lưu ý rằng chúng ta có thể biết được độ lệch có thể có trong dữ liệu bằng cách so sánh giá trị trung bình với giá trị trung bình, tôi. e. con số 50% Đối với các giá trị không phải là số (e. g. Thuộc tính_Khu vực, Tín dụng_Lịch sử, v.v. ), chúng ta có thể xem phân phối tần suất để hiểu liệu chúng có ý nghĩa hay không. Bảng tần số có thể được in bằng lệnh sau fact=1 for i in range(1,N+1): fact *= i3 Tương tự, chúng ta có thể xem xét các giá trị duy nhất của cổng lịch sử tín dụng. Lưu ý rằng df name[‘column_name’] là một kỹ thuật lập chỉ mục cơ bản để truy cập vào một cột cụ thể của khung dữ liệu. Nó cũng có thể là một danh sách các cột. Để biết thêm thông tin, hãy tham khảo tài nguyên “10 Minutes to Pandas” được chia sẻ ở trên phân tích phân phốiBây giờ chúng ta đã quen thuộc với các đặc điểm dữ liệu cơ bản, chúng ta hãy nghiên cứu phân phối của các biến khác nhau. Hãy để chúng tôi bắt đầu với các biến số - cụ thể là ApplicantIncome và LoanAmount Hãy bắt đầu bằng cách vẽ biểu đồ của ApplicantIncome bằng cách sử dụng các lệnh sau fact=1 for i in range(1,N+1): fact *= i4 Ở đây chúng tôi quan sát thấy rằng có một vài giá trị cực đoan. Đây cũng là lý do tại sao cần 50 thùng để mô tả rõ ràng sự phân bổ Tiếp theo, chúng tôi xem xét các biểu đồ hộp để hiểu các bản phân phối. Biểu đồ hộp cho giá vé có thể được vẽ bởi fact=1 for i in range(1,N+1): fact *= i5 Điều này xác nhận sự hiện diện của rất nhiều ngoại lệ/giá trị cực đoan. Điều này có thể là do sự chênh lệch thu nhập trong xã hội. Một phần của điều này có thể do thực tế là chúng tôi đang xem xét những người có trình độ học vấn khác nhau. Hãy để chúng tôi tách biệt chúng theo Giáo dục fact=1 for i in range(1,N+1): fact *= i6 Chúng ta có thể thấy rằng không có sự khác biệt đáng kể giữa thu nhập trung bình của sinh viên tốt nghiệp và không tốt nghiệp. Nhưng có một số lượng lớn sinh viên tốt nghiệp có thu nhập rất cao, dường như là ngoại lệ Bây giờ, hãy xem biểu đồ và boxplot của LoanAmount bằng lệnh sau fact=1 for i in range(1,N+1): fact *= i7____18 Một lần nữa, có một số giá trị cực đoan. Rõ ràng, cả Thu nhập của người nộp đơn và Khoản vay đều yêu cầu một số lượng dữ liệu trộn lẫn. LoanAmount có các giá trị bị thiếu và cũng như các giá trị cực đoan, trong khi ApplicantIncome có một vài giá trị cực đoan, đòi hỏi sự hiểu biết sâu sắc hơn. Chúng tôi sẽ đưa vấn đề này vào các phần tiếp theo Phân tích biến phân loạiBây giờ chúng ta đã hiểu phân phối cho ApplicantIncome và LoanIncome, hãy để chúng ta hiểu chi tiết hơn về các biến phân loại. Chúng tôi sẽ sử dụng bảng tổng hợp kiểu Excel và lập bảng chéo. Chẳng hạn, chúng ta hãy xem xét cơ hội nhận khoản vay dựa trên lịch sử tín dụng. Điều này có thể đạt được trong MS Excel bằng cách sử dụng bảng tổng hợp như Ghi chú. ở đây trạng thái cho vay đã được mã hóa thành 1 cho Có và 0 cho Không. Vì vậy, giá trị trung bình đại diện cho xác suất nhận được khoản vay Bây giờ chúng ta sẽ xem xét các bước cần thiết để tạo thông tin chi tiết tương tự bằng Python. Vui lòng tham khảo bài viết này để nắm rõ các kỹ thuật thao tác dữ liệu khác nhau trong Pandas fact=1 for i in range(1,N+1): fact *= i9 Bây giờ chúng ta có thể quan sát thấy rằng chúng ta có một pivot_table tương tự như MS Excel. Điều này có thể được vẽ dưới dạng biểu đồ thanh bằng thư viện “matplotlib” với mã sau if [condition]: __execution if true__ else: __execution if false__0 Điều này cho thấy cơ hội nhận được khoản vay gấp tám lần nếu người nộp đơn có lịch sử tín dụng hợp lệ. Bạn có thể vẽ đồ thị tương tự theo Married, Self-Employed, Property_Area, v.v. Ngoài ra, hai biểu đồ này cũng có thể được hiển thị bằng cách kết hợp chúng trong biểu đồ xếp chồng if [condition]: __execution if true__ else: __execution if false__1 Bạn cũng có thể thêm giới tính vào danh sách kết hợp (tương tự như bảng tổng hợp trong Excel) Nếu bạn chưa nhận ra, thì chúng tôi vừa tạo hai thuật toán phân loại cơ bản ở đây, một thuật toán dựa trên lịch sử tín dụng, còn thuật toán kia dựa trên 2 biến phân loại (bao gồm cả giới tính). Bạn có thể nhanh chóng viết mã này để tạo lần gửi đầu tiên của mình trên AV Datahacks Chúng ta vừa thấy cách chúng ta có thể thực hiện phân tích khám phá bằng Python bằng Pandas. Tôi hy vọng tình yêu của bạn dành cho gấu trúc (con vật) sẽ tăng lên ngay bây giờ - với số lượng trợ giúp, thư viện có thể cung cấp cho bạn các bộ dữ liệu phân tích Tiếp theo, hãy cùng khám phá thêm các biến ApplicantIncome và LoanStatus, thực hiện trộn dữ liệu và tạo tập dữ liệu để áp dụng các kỹ thuật lập mô hình khác nhau. Tôi thực sự khuyên bạn nên lấy một tập dữ liệu và bài toán khác, đồng thời xem qua một ví dụ độc lập trước khi đọc thêm 4. Dữ liệu Munging trong Python. Sử dụng gấu trúcĐối với những người đã theo dõi, đây là đôi giày bạn phải mang để bắt đầu chạy Trộn dữ liệu – tóm tắt nhu cầuTrong khi khám phá dữ liệu, chúng tôi đã tìm thấy một số vấn đề trong tập dữ liệu, vấn đề này cần được giải quyết trước khi dữ liệu sẵn sàng cho một mô hình tốt. Bài tập này thường được gọi là "Mung dữ liệu". Đây là những vấn đề, chúng tôi đã nhận thức được
Ngoài những vấn đề này với các trường số, chúng ta cũng nên xem xét các trường không phải là số. e. Giới tính, Tài sản_Khu vực, Đã kết hôn, Học vấn và Người phụ thuộc để xem chúng có chứa bất kỳ thông tin hữu ích nào không Nếu bạn chưa quen với Pandas, tôi khuyên bạn nên đọc bài viết này trước khi tiếp tục. Nó trình bày chi tiết một số kỹ thuật thao tác dữ liệu hữu ích Kiểm tra các giá trị còn thiếu trong tập dữ liệuChúng ta hãy xem xét các giá trị bị thiếu trong tất cả các biến vì hầu hết các mô hình không hoạt động với dữ liệu bị thiếu và ngay cả khi chúng có, việc gán chúng thường xuyên hơn là không. Vì vậy, hãy để chúng tôi kiểm tra số lượng null / NaN trong tập dữ liệu if [condition]: __execution if true__ else: __execution if false__2 Lệnh này sẽ cho chúng ta biết số lượng giá trị bị thiếu trong mỗi cột là isnull() trả về 1, nếu giá trị là null Mặc dù các giá trị bị thiếu không nhiều về số lượng, nhưng nhiều biến có chúng và mỗi một trong số chúng nên được ước tính và thêm vào dữ liệu. Nhận một cái nhìn chi tiết về các kỹ thuật quy nạp khác nhau thông qua bài viết này Ghi chú. Hãy nhớ rằng các giá trị bị thiếu có thể không phải lúc nào cũng là NaN. Chẳng hạn, nếu Loan_Amount_Term bằng 0, điều đó có hợp lý hay bạn sẽ cho rằng điều đó bị thiếu? . Vì vậy, chúng ta nên kiểm tra các giá trị không thực tế Làm cách nào để điền các giá trị còn thiếu vào LoanAmount?Có nhiều cách để lấp đầy các giá trị còn thiếu của số tiền cho vay – cách đơn giản nhất là thay thế bằng giá trị trung bình, có thể thực hiện bằng mã sau if [condition]: __execution if true__ else: __execution if false__3 Một thái cực khác có thể là xây dựng một mô hình học tập có giám sát để dự đoán số tiền cho vay dựa trên các biến số khác, sau đó sử dụng độ tuổi cùng với các biến số khác để dự đoán khả năng sống sót Vì, mục đích bây giờ là đưa ra các bước trong quá trình trộn dữ liệu, nên tôi sẽ thực hiện một phương pháp nằm ở đâu đó giữa 2 thái cực này. Một giả thuyết quan trọng là liệu một người có học thức hay tự làm chủ có thể kết hợp để đưa ra ước tính chính xác về số tiền cho vay hay không Đầu tiên, hãy nhìn vào boxplot để xem xu hướng có tồn tại không Vì vậy, chúng tôi thấy một số thay đổi trong số tiền trung bình của khoản vay cho mỗi nhóm và điều này có thể được sử dụng để quy các giá trị. Nhưng trước tiên, chúng ta phải đảm bảo rằng mỗi biến Self_Employed và Education không được thiếu giá trị Như chúng tôi đã nói trước đó, Self_Employed có một số giá trị bị thiếu. Hãy nhìn vào bảng tần số Vì ~86% giá trị là “Không”, nên có thể coi các giá trị còn thiếu là “Không” một cách an toàn vì có khả năng thành công cao. Điều này có thể được thực hiện bằng cách sử dụng đoạn mã sau if [condition]: __execution if true__ else: __execution if false__4 Bây giờ, chúng tôi sẽ tạo một bảng Pivot, cung cấp cho chúng tôi các giá trị trung bình cho tất cả các nhóm giá trị duy nhất của các tính năng Self_Employed và Education. Tiếp theo, chúng tôi xác định một hàm trả về các giá trị của các ô này và áp dụng nó để điền vào các giá trị còn thiếu của số tiền cho vay if [condition]: __execution if true__ else: __execution if false__5 Điều này sẽ cung cấp cho bạn một cách tốt để quy các giá trị còn thiếu của số tiền cho vay GHI CHÚ. Phương pháp này sẽ chỉ hoạt động nếu bạn chưa điền các giá trị còn thiếu vào biến Số_Khoản vay bằng cách sử dụng phương pháp trước đó, tôi. e. sử dụng ý nghĩa Làm cách nào để xử lý các giá trị cực đoan trong phân phối Số tiền cho vay và Thu nhập của người đăng ký?Trước tiên hãy phân tích LoanAmount. Vì các giá trị cực đoan là thực tế có thể, tôi. e. một số người có thể đăng ký các khoản vay giá trị cao do nhu cầu cụ thể. Vì vậy, thay vì coi chúng là ngoại lệ, hãy thử chuyển đổi nhật ký để vô hiệu hóa hiệu ứng của chúng if [condition]: __execution if true__ else: __execution if false__6 Nhìn vào biểu đồ một lần nữa Giờ đây, phân phối trông gần với bình thường hơn nhiều và ảnh hưởng của các giá trị cực trị đã giảm đi đáng kể Đến với thu nhập của người nộp đơn. Một trực giác có thể là một số ứng viên có thu nhập thấp hơn nhưng được hỗ trợ mạnh mẽ Những người cùng nộp đơn. Vì vậy, có thể là một ý tưởng hay nếu kết hợp cả hai thu nhập dưới dạng tổng thu nhập và thực hiện chuyển đổi nhật ký của cùng một if [condition]: __execution if true__ else: __execution if false__7 Bây giờ chúng tôi thấy rằng phân phối tốt hơn nhiều so với trước đây. Tôi sẽ để bạn tự quy định các giá trị còn thiếu cho Giới tính, Đã kết hôn, Người phụ thuộc, Khoản vay_Số tiền_Kỳ hạn, Tín dụng_Lịch sử. Ngoài ra, tôi khuyến khích bạn suy nghĩ về thông tin bổ sung có thể có được từ dữ liệu. Ví dụ: tạo một cột cho Khoản vay/Tổng thu nhập có thể có ý nghĩa vì nó đưa ra ý tưởng về mức độ phù hợp của người nộp đơn để trả lại khoản vay của mình Tiếp theo, chúng ta sẽ xem xét việc tạo ra các mô hình dự đoán 5. Xây dựng một mô hình dự đoán trong PythonSau khi, chúng tôi đã làm cho dữ liệu trở nên hữu ích cho việc lập mô hình, bây giờ hãy xem mã python để tạo mô hình dự đoán trên tập dữ liệu của chúng tôi. Scikit-Learn (sklearn) là thư viện được sử dụng phổ biến nhất trong Python cho mục đích này và chúng ta sẽ lần theo dấu vết. Tôi khuyến khích bạn xem lại sklearn qua bài viết này Vì sklearn yêu cầu tất cả các đầu vào phải là số, nên chúng ta nên chuyển đổi tất cả các biến phân loại thành số bằng cách mã hóa các danh mục. Trước đó, chúng tôi sẽ điền vào tất cả các giá trị còn thiếu trong tập dữ liệu. Điều này có thể được thực hiện bằng cách sử dụng đoạn mã sau if [condition]: __execution if true__ else: __execution if false__8 if [condition]: __execution if true__ else: __execution if false__9 Tiếp theo, chúng tôi sẽ nhập các mô-đun cần thiết. Sau đó, chúng tôi sẽ xác định một chức năng phân loại chung, lấy một mô hình làm đầu vào và xác định điểm số Độ chính xác và Xác thực chéo. Vì đây là bài viết giới thiệu nên tôi sẽ không đi sâu vào chi tiết về mã hóa. Vui lòng tham khảo bài viết này để biết chi tiết các thuật toán với mã R và Python. Ngoài ra, bạn nên xem lại quy trình xác thực chéo thông qua bài viết này vì đây là thước đo hiệu suất năng lượng rất quan trọng if N%2 == 0: print ('Even') else: print ('Odd')0 Hồi quy logisticHãy tạo mô hình Hồi quy logistic đầu tiên của chúng ta. Có một cách là đưa tất cả các biến vào mô hình nhưng điều này có thể dẫn đến việc khớp quá mức (đừng lo lắng nếu bạn chưa biết về thuật ngữ này). Nói một cách đơn giản, việc lấy tất cả các biến có thể dẫn đến việc mô hình hiểu các mối quan hệ phức tạp cụ thể đối với dữ liệu và sẽ không khái quát hóa tốt. Đọc thêm về hồi quy logistic Chúng ta có thể dễ dàng đưa ra một số giả thuyết trực quan để thiết lập quả bóng lăn. Cơ hội nhận được khoản vay sẽ cao hơn đối với
Vì vậy, hãy tạo mô hình đầu tiên của chúng ta với ‘Credit_History’ if N%2 == 0: print ('Even') else: print ('Odd')1 Sự chính xác. 80. Điểm xác thực chéo 945%. 80. 946% if N%2 == 0: print ('Even') else: print ('Odd')2 Sự chính xác. 80. Điểm xác thực chéo 945%. 80. 946% Nói chung, chúng tôi hy vọng độ chính xác sẽ tăng lên khi thêm các biến. Nhưng đây là một trường hợp khó khăn hơn. Điểm chính xác và xác thực chéo không bị ảnh hưởng bởi các biến ít quan trọng hơn. Credit_History đang thống trị chế độ. Bây giờ chúng ta có hai lựa chọn
cây quyết địnhCây quyết định là một phương pháp khác để tạo mô hình dự đoán. Nó được biết là cung cấp độ chính xác cao hơn mô hình hồi quy logistic. Đọc thêm về Cây quyết định if N%2 == 0: print ('Even') else: print ('Odd')3 Sự chính xác. 81. Điểm xác thực chéo 930%. 76. 656% Ở đây, mô hình dựa trên các biến phân loại không thể có tác động vì Lịch sử tín dụng đang chi phối chúng. Hãy thử một vài biến số if N%2 == 0: print ('Even') else: print ('Odd')4 Sự chính xác. 92. Điểm xác thực chéo 345%. 71. 009% Ở đây, chúng tôi quan sát thấy rằng mặc dù độ chính xác tăng lên khi thêm các biến, nhưng lỗi xác thực chéo đã giảm xuống. Đây là kết quả của mô hình khớp dữ liệu quá mức. Hãy thử một thuật toán thậm chí phức tạp hơn và xem liệu nó có hữu ích không rừng ngẫu nhiênRừng ngẫu nhiên là một thuật toán khác để giải quyết vấn đề phân loại. Đọc thêm về Random Forest Một lợi thế với Random Forest là chúng ta có thể làm cho nó hoạt động với tất cả các tính năng và nó trả về một ma trận tầm quan trọng của tính năng có thể được sử dụng để chọn các tính năng if N%2 == 0: print ('Even') else: print ('Odd')5 Sự chính xác. 100. Điểm xác thực chéo 000%. 78. 179% Ở đây chúng tôi thấy rằng độ chính xác là 100% cho tập huấn luyện. Đây là trường hợp cuối cùng của overfitting và có thể được giải quyết theo hai cách
Hãy thử cả hai. Trước tiên, chúng tôi thấy ma trận tầm quan trọng của tính năng mà từ đó chúng tôi sẽ lấy các tính năng quan trọng nhất if N%2 == 0: print ('Even') else: print ('Odd')6 Hãy sử dụng 5 biến hàng đầu để tạo mô hình. Ngoài ra, chúng tôi sẽ sửa đổi các tham số của mô hình rừng ngẫu nhiên một chút if N%2 == 0: print ('Even') else: print ('Odd')7 Sự chính xác. 82. Điểm xác thực chéo 899%. 81. 461% Lưu ý rằng mặc dù độ chính xác giảm nhưng điểm xác thực chéo đang được cải thiện cho thấy mô hình đang tổng quát hóa tốt. Hãy nhớ rằng các mô hình rừng ngẫu nhiên không thể lặp lại chính xác. Các lần chạy khác nhau sẽ dẫn đến các thay đổi nhỏ do ngẫu nhiên hóa. Nhưng đầu ra nên ở trong sân bóng Bạn sẽ nhận thấy rằng ngay cả sau khi điều chỉnh một số tham số cơ bản trên rừng ngẫu nhiên, chúng tôi đã đạt được độ chính xác xác thực chéo chỉ tốt hơn một chút so với mô hình hồi quy logistic ban đầu. Bài tập này mang lại cho chúng ta một số kiến thức rất thú vị và độc đáo
Bạn có thể truy cập tập dữ liệu và báo cáo vấn đề được sử dụng trong bài đăng này tại liên kết này. Thử thách dự đoán khoản vay dự ánBây giờ, đã đến lúc lao vào và thực sự chơi với một số bộ dữ liệu thực khác. Vậy bạn đã sẵn sàng đón nhận thử thách chưa? Ghi chú kết thúcTôi hy vọng hướng dẫn này sẽ giúp bạn tối đa hóa hiệu quả khi bắt đầu với khoa học dữ liệu trong Python. Tôi chắc chắn rằng điều này không chỉ cung cấp cho bạn ý tưởng về các phương pháp phân tích dữ liệu cơ bản mà còn cho bạn thấy cách triển khai một số kỹ thuật tinh vi hơn hiện có Bạn cũng nên xem khóa học Python miễn phí của chúng tôi và sau đó chuyển sang tìm hiểu cách áp dụng nó cho Khoa học dữ liệu Python thực sự là một công cụ tuyệt vời và đang trở thành ngôn ngữ ngày càng phổ biến trong giới khoa học dữ liệu. Lý do là nó dễ học, tích hợp tốt với các cơ sở dữ liệu và công cụ khác như Spark và Hadoop. Chủ yếu, nó có cường độ tính toán lớn và có các thư viện phân tích dữ liệu mạnh mẽ Vì vậy, hãy học Python để thực hiện toàn bộ vòng đời của bất kỳ dự án khoa học dữ liệu nào. Nó bao gồm đọc, phân tích, hình dung và cuối cùng là đưa ra dự đoán Nếu bạn gặp bất kỳ khó khăn nào trong khi thực hành Python hoặc bạn có bất kỳ suy nghĩ/gợi ý/phản hồi nào về bài đăng, vui lòng gửi chúng qua phần bình luận bên dưới Python được sử dụng như thế nào trong dữ liệu lớn?Python cung cấp một số lượng lớn thư viện để hoạt động trên Dữ liệu lớn . Bạn cũng có thể làm việc - về mặt phát triển mã - sử dụng Python cho Dữ liệu lớn nhanh hơn nhiều so với bất kỳ ngôn ngữ lập trình nào khác. Hai khía cạnh này đang cho phép các nhà phát triển trên toàn thế giới sử dụng Python làm ngôn ngữ được lựa chọn cho các dự án Dữ liệu lớn.
Python có đủ cho dữ liệu lớn không?Python đang thống trị thế giới lập trình và rất đáng học vào năm 2022 để nắm vững các tác động của Dữ liệu lớn . Theo báo cáo của TIOBE Index cho tháng 7 năm 2022, Python xếp ở vị trí cao nhất với 13. đánh giá 44%.
Cần bao nhiêu Python cho dữ liệu lớn?Đối với khoa học dữ liệu, ước tính là khoảng từ 3 tháng đến một năm trong khi thực hành nhất quán
Thư viện Python nào được sử dụng cho dữ liệu lớn?TensorFlow
. Bên cạnh đó, có một số yếu tố cần xem xét khi chọn TensorFlow và chắc chắn điều này có thể hữu ích cho bạn. Nó loại bỏ 60% khả năng xảy ra lỗi |