Khoa học dữ liệu nhanh - Hướng dẫn nhanh

Khoa học dữ liệu linh hoạt là một cách tiếp cận sử dụng khoa học dữ liệu với phương pháp luận nhanh nhẹn để phát triển ứng dụng web. Nó tập trung vào đầu ra của quy trình khoa học dữ liệu phù hợp để tạo ra sự thay đổi cho một tổ chức. Khoa học dữ liệu bao gồm việc xây dựng các ứng dụng mô tả quá trình nghiên cứu với phân tích, trực quan hóa tương tác và cả học máy được ứng dụng.

Mục tiêu chính của khoa học dữ liệu nhanh là -

lập tài liệu và hướng dẫn phân tích dữ liệu giải thích để khám phá và đi theo con đường quan trọng dẫn đến một sản phẩm hấp dẫn.

Khoa học dữ liệu Agile được tổ chức với bộ nguyên tắc sau:

Lặp lại liên tục

Quá trình này bao gồm việc lặp đi lặp lại liên tục với việc tạo bảng, biểu đồ, báo cáo và dự đoán. Việc xây dựng các mô hình dự đoán sẽ yêu cầu nhiều lần lặp lại kỹ thuật tính năng với việc trích xuất và tạo ra thông tin chi tiết.

Đầu ra trung gian

Đây là danh sách theo dõi các kết quả đầu ra được tạo. Thậm chí, người ta nói rằng những thí nghiệm thất bại cũng có đầu ra. Theo dõi đầu ra của mỗi lần lặp sẽ giúp tạo ra đầu ra tốt hơn trong lần lặp tiếp theo.

Thử nghiệm nguyên mẫu

Thử nghiệm nguyên mẫu liên quan đến việc phân công nhiệm vụ và tạo đầu ra theo thử nghiệm. Trong một nhiệm vụ nhất định, chúng ta phải lặp lại để đạt được cái nhìn sâu sắc và những lần lặp này có thể được giải thích tốt nhất là thử nghiệm.

Tích hợp dữ liệu

Vòng đời phát triển phần mềm bao gồm các giai đoạn khác nhau với dữ liệu cần thiết cho -

  • customers

  • nhà phát triển và

  • việc kinh doanh

Việc tích hợp dữ liệu mở đường cho các triển vọng và đầu ra tốt hơn.

Giá trị dữ liệu kim tự tháp

Giá trị kim tự tháp ở trên mô tả các lớp cần thiết để phát triển “Khoa học dữ liệu Agile”. Nó bắt đầu với một bộ sưu tập các bản ghi dựa trên các yêu cầu và hồ sơ cá nhân về hệ thống ống nước. Các biểu đồ được tạo sau khi làm sạch và tổng hợp dữ liệu. Dữ liệu tổng hợp có thể được sử dụng để trực quan hóa dữ liệu. Báo cáo được tạo với cấu trúc, siêu dữ liệu và thẻ dữ liệu phù hợp. Lớp thứ hai của kim tự tháp từ trên xuống bao gồm phân tích dự đoán. Lớp dự đoán là nơi tạo ra nhiều giá trị hơn nhưng giúp tạo ra các dự đoán tốt tập trung vào kỹ thuật tính năng.

Lớp trên cùng liên quan đến các hành động trong đó giá trị của dữ liệu được định hướng một cách hiệu quả. Minh họa tốt nhất cho việc triển khai này là “Trí tuệ nhân tạo”.

Trong chương này, chúng ta sẽ tập trung vào các khái niệm về vòng đời phát triển phần mềm được gọi là “nhanh nhẹn”. Phương pháp luận phát triển phần mềm Agile giúp xây dựng phần mềm thông qua các phiên gia tăng trong các lần lặp lại ngắn từ 1 đến 4 tuần để sự phát triển phù hợp với các yêu cầu kinh doanh đang thay đổi.

Có 12 nguyên tắc mô tả chi tiết phương pháp Agile -

Sự hài lòng của khách hàng

Ưu tiên cao nhất dành cho khách hàng tập trung vào các yêu cầu thông qua việc phân phối sớm và liên tục các phần mềm có giá trị.

Đón đầu những thay đổi mới

Các thay đổi có thể chấp nhận được trong quá trình phát triển phần mềm. Các quy trình Agile được thiết kế để phù hợp với lợi thế cạnh tranh của khách hàng.

Chuyển

Việc giao một phần mềm đang hoạt động cho khách hàng trong khoảng thời gian từ một đến bốn tuần.

Hợp tác

Nhà phân tích kinh doanh, nhà phân tích chất lượng và nhà phát triển phải làm việc cùng nhau trong toàn bộ vòng đời của dự án.

Động lực

Các dự án nên được thiết kế với một nhóm các cá nhân có động lực. Nó cung cấp một môi trường để hỗ trợ các thành viên trong nhóm.

Cuộc trò chuyện cá nhân

Trò chuyện mặt đối mặt là phương pháp hiệu quả và hiệu quả nhất để gửi thông tin đến và trong nhóm phát triển.

Đo lường tiến độ

Đo lường tiến độ là chìa khóa giúp xác định tiến độ phát triển dự án và phần mềm.

Duy trì tốc độ liên tục

Quy trình Agile tập trung vào phát triển bền vững. Doanh nghiệp, nhà phát triển và người dùng sẽ có thể duy trì tốc độ liên tục với dự án.

Giám sát

Bắt buộc phải duy trì sự chú ý thường xuyên đến sự xuất sắc về kỹ thuật và thiết kế tốt để nâng cao chức năng nhanh nhẹn.

Sự đơn giản

Quy trình Agile giữ mọi thứ đơn giản và sử dụng các thuật ngữ đơn giản để đo lường công việc chưa hoàn thành.

Điều khoản tự tổ chức

Một nhóm nhanh nhẹn nên tự tổ chức và độc lập với kiến ​​trúc tốt nhất; các yêu cầu và thiết kế xuất hiện từ các nhóm tự tổ chức.

Xem lại công việc

Điều quan trọng là phải xem xét công việc theo định kỳ để nhóm có thể phản ánh công việc đang tiến triển như thế nào. Xem lại mô-đun một cách kịp thời sẽ cải thiện hiệu suất.

Dự phòng hàng ngày

Đứng lên hàng ngày đề cập đến cuộc họp trạng thái hàng ngày giữa các thành viên trong nhóm. Nó cung cấp các bản cập nhật liên quan đến phát triển phần mềm. Nó cũng đề cập đến việc giải quyết các trở ngại của quá trình phát triển dự án.

Đứng lên hàng ngày là một thực hành bắt buộc, bất kể một nhóm nhanh nhẹn được thành lập như thế nào bất kể vị trí văn phòng của họ.

Danh sách các tính năng của giá đỡ hàng ngày như sau:

  • Thời lượng của cuộc họp đứng hàng ngày nên khoảng 15 phút. Nó không nên kéo dài trong một thời gian dài hơn.

  • Dự phòng nên bao gồm các cuộc thảo luận về cập nhật trạng thái.

  • Những người tham gia cuộc họp này thường đứng với ý định kết thúc cuộc họp nhanh chóng.

Câu chuyện người dùng

Một câu chuyện thường là một yêu cầu, được xây dựng bằng một vài câu bằng ngôn ngữ đơn giản và nó phải được hoàn thành trong một lần lặp lại. Câu chuyện của người dùng nên bao gồm các đặc điểm sau:

  • Tất cả các mã liên quan phải có đăng ký liên quan.

  • Các trường hợp kiểm thử đơn vị cho lần lặp được chỉ định.

  • Tất cả các trường hợp kiểm thử chấp nhận phải được xác định.

  • Sự chấp nhận từ chủ sở hữu sản phẩm trong khi xác định câu chuyện.

Scrum là gì?

Scrum có thể được coi là một tập hợp con của phương pháp luận nhanh nhẹn. Đây là một quy trình nhẹ và bao gồm các tính năng sau:

  • Nó là một khung quy trình, bao gồm một tập hợp các thực hành cần được tuân thủ theo thứ tự nhất quán. Minh họa tốt nhất về Scrum là sau các lần lặp lại hoặc chạy nước rút.

  • Đây là một quy trình “nhẹ” nghĩa là quy trình được giữ ở mức nhỏ nhất có thể, để tối đa hóa sản lượng hiệu quả trong khoảng thời gian nhất định.

Quy trình Scrum được biết đến với quy trình khác biệt so với các phương pháp luận khác của phương pháp tiếp cận nhanh truyền thống. Nó được chia thành ba loại sau:

  • Roles

  • Artifacts

  • Hộp thời gian

Vai trò xác định các thành viên trong nhóm và vai trò của họ trong suốt quá trình. Nhóm Scrum bao gồm ba vai trò sau:

  • Đội sản xuất

  • Chủ sở hữu sản phẩm

  • Team

Các tạo tác Scrum cung cấp thông tin quan trọng mà mỗi thành viên nên biết. Thông tin bao gồm các chi tiết về sản phẩm, các hoạt động đã lên kế hoạch và các hoạt động đã hoàn thành. Các đồ tạo tác được xác định trong khung Scrum như sau:

  • Tồn đọng sản phẩm

  • Sprint backlog

  • Ghi xuống biểu đồ

  • Increment

Hộp thời gian là câu chuyện của người dùng được lập kế hoạch cho mỗi lần lặp lại. Những câu chuyện của người dùng này giúp mô tả các tính năng của sản phẩm tạo thành một phần của đồ tạo tác Scrum. Sản phẩm tồn đọng là một danh sách các câu chuyện của người dùng. Những câu chuyện của người dùng này được ưu tiên và chuyển tiếp đến các cuộc họp của người dùng để quyết định cái nào nên được tiếp tục.

Tại sao nên sử dụng Scrum Master?

Scrum Master tương tác với mọi thành viên trong nhóm. Bây giờ chúng ta hãy xem sự tương tác của Scrum Master với các nhóm và tài nguyên khác.

Chủ sở hữu sản phẩm

Scrum Master tương tác với chủ sở hữu sản phẩm theo những cách sau:

  • Tìm kiếm các kỹ thuật để đạt được hiệu quả tồn đọng sản phẩm của câu chuyện người dùng và quản lý chúng.

  • Giúp nhóm hiểu được nhu cầu của các mặt hàng tồn đọng sản phẩm rõ ràng và ngắn gọn.

  • Lập kế hoạch sản phẩm với môi trường cụ thể.

  • Đảm bảo rằng chủ sở hữu sản phẩm biết cách làm tăng giá trị của sản phẩm.

  • Tạo điều kiện cho các sự kiện Scrum khi được yêu cầu.

Nhóm Scrum

Scrum Master tương tác với nhóm theo một số cách:

  • Huấn luyện tổ chức trong việc áp dụng Scrum.

  • Lập kế hoạch triển khai Scrum cho tổ chức cụ thể.

  • Giúp nhân viên và các bên liên quan hiểu được yêu cầu và các giai đoạn phát triển sản phẩm.

  • Làm việc với các Scrum Master của các nhóm khác để tăng hiệu quả của việc áp dụng Scrum của nhóm được chỉ định.

Cơ quan

Scrum Master tương tác với tổ chức theo một số cách. Một số được đề cập dưới đây -

  • Huấn luyện và nhóm scrum tương tác với tự tổ chức và bao gồm một tính năng của chức năng chéo.

  • Huấn luyện tổ chức và nhóm trong các lĩnh vực mà Scrum chưa được áp dụng đầy đủ hoặc chưa được chấp nhận.

Lợi ích của Scrum

Scrum giúp khách hàng, thành viên trong nhóm và các bên liên quan cộng tác. Nó bao gồm cách tiếp cận hộp thời gian và phản hồi liên tục từ chủ sở hữu sản phẩm để đảm bảo rằng sản phẩm đang ở trong tình trạng hoạt động. Scrum cung cấp lợi ích cho các vai trò khác nhau của dự án.

khách hàng

Các lần chạy nước rút hoặc lặp đi lặp lại được coi là có thời lượng ngắn hơn và các câu chuyện của người dùng được thiết kế theo mức độ ưu tiên và được thực hiện khi lập kế hoạch chạy nước rút. Nó đảm bảo rằng mọi yêu cầu của khách hàng đều được thực hiện. Nếu không, các yêu cầu sẽ được ghi nhận và được lên kế hoạch và thực hiện cho sprint.

Cơ quan

Tổ chức với sự trợ giúp của Scrum và các bậc thầy Scrum có thể tập trung vào những nỗ lực cần thiết để phát triển các câu chuyện người dùng, do đó giảm quá tải công việc và tránh làm lại nếu có. Điều này cũng giúp duy trì hiệu quả gia tăng của nhóm phát triển và sự hài lòng của khách hàng. Cách tiếp cận này cũng giúp tăng tiềm năng của thị trường.

Giám đốc sản phẩm

Trách nhiệm chính của người quản lý sản phẩm là đảm bảo duy trì chất lượng sản phẩm. Với sự trợ giúp của Scrum Masters, việc tạo điều kiện thuận lợi cho công việc, thu thập phản hồi nhanh chóng và tiếp thu các thay đổi nếu có trở nên dễ dàng. Người quản lý sản phẩm cũng xác minh rằng sản phẩm được thiết kế có được điều chỉnh theo yêu cầu của khách hàng trong mỗi sprint.

Nhóm phát triển

Với tính chất đóng khung thời gian và giữ nước rút trong một khoảng thời gian nhỏ hơn, nhóm phát triển trở nên nhiệt tình khi thấy rằng công việc được phản ánh và giao đúng cách. Sản phẩm đang hoạt động tăng lên mỗi cấp độ sau mỗi lần lặp lại hay đúng hơn chúng ta có thể gọi chúng là “sprint”. Câu chuyện người dùng được thiết kế cho mọi sprint trở thành ưu tiên của khách hàng, tăng thêm giá trị cho lần lặp lại.

Phần kết luận

Scrum là một khuôn khổ hiệu quả mà trong đó bạn có thể phát triển phần mềm theo cách làm việc nhóm. Nó hoàn toàn được thiết kế trên nguyên tắc nhanh nhẹn. ScrumMaster ở đó để giúp đỡ và hợp tác nhóm Scrum theo mọi cách có thể. Anh ấy hoạt động như một huấn luyện viên cá nhân, người giúp bạn gắn bó với kế hoạch đã thiết kế và thực hiện tất cả các hoạt động theo kế hoạch. Quyền hạn của ScrumMaster không bao giờ được mở rộng ra ngoài quy trình. Anh ấy / cô ấy nên có khả năng quản lý mọi tình huống.

Trong chương này, chúng ta sẽ hiểu quy trình khoa học dữ liệu và các thuật ngữ cần thiết để hiểu quy trình.

“Khoa học dữ liệu là sự pha trộn giữa giao diện dữ liệu, phát triển thuật toán và công nghệ để giải quyết các vấn đề phức tạp về phân tích”.

Khoa học dữ liệu là một lĩnh vực liên ngành bao gồm các phương pháp, quy trình và hệ thống khoa học với các danh mục được bao gồm trong đó là Máy học, toán học và kiến ​​thức thống kê với nghiên cứu truyền thống. Nó cũng bao gồm sự kết hợp của các kỹ năng hack với kiến ​​thức chuyên môn sâu. Khoa học dữ liệu rút ra các nguyên tắc từ toán học, thống kê, khoa học thông tin và khoa học máy tính, khai thác dữ liệu và phân tích dự đoán.

Các vai trò khác nhau tạo thành một phần của nhóm khoa học dữ liệu được đề cập dưới đây:

Khách hàng

Khách hàng là những người sử dụng sản phẩm. Sự quan tâm của họ quyết định sự thành công của dự án và phản hồi của họ rất có giá trị trong khoa học dữ liệu.

Phát triển kinh doanh

Nhóm khoa học dữ liệu này thu hút khách hàng ban đầu, trực tiếp hoặc thông qua việc tạo các trang đích và quảng cáo. Nhóm phát triển kinh doanh mang lại giá trị của sản phẩm.

Giám đốc sản phẩm

Giám đốc sản phẩm coi trọng việc tạo ra sản phẩm tốt nhất, có giá trị trên thị trường.

Nhà thiết kế tương tác

Họ tập trung vào thiết kế các tương tác xung quanh mô hình dữ liệu để người dùng tìm thấy giá trị phù hợp.

Các nhà khoa học dữ liệu

Các nhà khoa học dữ liệu khám phá và biến đổi dữ liệu theo những cách mới để tạo và xuất bản các tính năng mới. Các nhà khoa học này cũng kết hợp dữ liệu từ nhiều nguồn khác nhau để tạo ra một giá trị mới. Chúng đóng một vai trò quan trọng trong việc tạo trực quan với các nhà nghiên cứu, kỹ sư và nhà phát triển web.

Các nhà nghiên cứu

Như tên chỉ định các nhà nghiên cứu tham gia vào các hoạt động nghiên cứu. Chúng giải quyết những vấn đề phức tạp, điều mà các nhà khoa học dữ liệu không thể làm được. Những vấn đề này liên quan đến sự tập trung cao độ và thời gian của mô-đun thống kê và học máy.

Thích ứng với thay đổi

Tất cả các thành viên trong nhóm khoa học dữ liệu được yêu cầu phải thích ứng với những thay đổi mới và làm việc trên cơ sở các yêu cầu. Một số thay đổi cần được thực hiện để áp dụng phương pháp linh hoạt với khoa học dữ liệu, được đề cập như sau:

  • Lựa chọn các nhà tổng quát hơn các chuyên gia

  • Ưu tiên của các đội nhỏ hơn các đội lớn.

  • Sử dụng các công cụ và nền tảng cấp cao.

  • Chia sẻ liên tục và lặp đi lặp lại các công việc trung gian.

Note

Trong nhóm khoa học dữ liệu Agile, một nhóm nhỏ các nhà tổng quát sử dụng các công cụ cấp cao có thể mở rộng và tinh chỉnh dữ liệu qua các lần lặp lại thành các trạng thái ngày càng cao hơn của giá trị.

Hãy xem xét các ví dụ sau liên quan đến công việc của các thành viên trong nhóm khoa học dữ liệu -

  • Các nhà thiết kế cung cấp CSS.

  • Các nhà phát triển web xây dựng toàn bộ ứng dụng, hiểu trải nghiệm người dùng và thiết kế giao diện.

  • Các nhà khoa học dữ liệu nên làm việc trên cả nghiên cứu và xây dựng các dịch vụ web bao gồm các ứng dụng web.

  • Các nhà nghiên cứu làm việc trong cơ sở mã, nơi hiển thị kết quả giải thích kết quả trung gian.

  • Các nhà quản lý sản phẩm cố gắng xác định và hiểu các sai sót trong tất cả các lĩnh vực liên quan.

Trong chương này, chúng ta sẽ tìm hiểu về các công cụ Agile khác nhau và cách cài đặt chúng. Ngăn xếp phát triển của phương pháp nhanh nhẹn bao gồm tập hợp các thành phần sau:

Sự kiện

Sự kiện là sự kiện xảy ra hoặc được ghi lại cùng với các tính năng và dấu thời gian của nó.

Một sự kiện có thể ở nhiều dạng như máy chủ, cảm biến, giao dịch tài chính hoặc hành động mà người dùng của chúng tôi thực hiện trong ứng dụng của chúng tôi. Trong hướng dẫn đầy đủ này, chúng tôi sẽ sử dụng các tệp JSON để tạo điều kiện trao đổi dữ liệu giữa các công cụ và ngôn ngữ khác nhau.

Người sưu tầm

Người thu thập là người tổng hợp sự kiện. Họ thu thập các sự kiện một cách có hệ thống để lưu trữ và tổng hợp dữ liệu cồng kềnh đang xếp hàng đợi chúng thực hiện bởi nhân viên thời gian thực.

Tài liệu phân tán

Các tài liệu này bao gồm nhiều nút (nhiều nút) lưu trữ tài liệu ở một định dạng cụ thể. Chúng tôi sẽ tập trung vào MongoDB trong hướng dẫn này.

Máy chủ ứng dụng web

Máy chủ ứng dụng web cho phép dữ liệu dưới dạng JSON thông qua máy khách thông qua trực quan hóa, với chi phí tối thiểu. Nó có nghĩa là máy chủ ứng dụng web giúp kiểm tra và triển khai các dự án được tạo bằng phương pháp linh hoạt.

Trình duyệt hiện đại

Nó cho phép trình duyệt hoặc ứng dụng hiện đại hiển thị dữ liệu như một công cụ tương tác cho người dùng của chúng tôi.

Thiết lập môi trường địa phương

Để quản lý tập dữ liệu, chúng tôi sẽ tập trung vào khuôn khổ Anaconda của python bao gồm các công cụ để quản lý excel, csv và nhiều tệp khác. Bảng điều khiển của Anaconda framework sau khi được cài đặt như hình dưới đây. Nó còn được gọi là “Anaconda Navigator” -

Bộ điều hướng bao gồm “Khung máy tính” là một hệ thống sổ ghi chép giúp quản lý các tập dữ liệu. Sau khi bạn khởi chạy khuôn khổ, nó sẽ được lưu trữ trong trình duyệt như được đề cập bên dưới -

Trong chương này, chúng ta sẽ tập trung vào sự khác biệt giữa dữ liệu có cấu trúc, bán cấu trúc và không có cấu trúc.

Dữ liệu có cấu trúc

Dữ liệu có cấu trúc liên quan đến dữ liệu được lưu trữ ở định dạng SQL trong bảng với các hàng và cột. Nó bao gồm một khóa quan hệ, được ánh xạ vào các trường được thiết kế trước. Dữ liệu có cấu trúc được sử dụng trên quy mô lớn hơn.

Dữ liệu có cấu trúc chỉ đại diện cho 5 đến 10 phần trăm của tất cả dữ liệu tin học.

Dữ liệu bán cấu trúc

Dữ liệu bán cấu trúc bao gồm dữ liệu không nằm trong cơ sở dữ liệu quan hệ. Chúng bao gồm một số thuộc tính của tổ chức giúp phân tích dễ dàng hơn. Nó bao gồm quá trình tương tự để lưu trữ chúng trong cơ sở dữ liệu quan hệ. Các ví dụ về cơ sở dữ liệu bán cấu trúc là tệp CSV, tài liệu XML và JSON. Cơ sở dữ liệu NoSQL được coi là có cấu trúc bán nguyệt.

Dữ liệu phi cấu trúc

Dữ liệu phi cấu trúc đại diện cho 80 phần trăm dữ liệu. Nó thường bao gồm văn bản và nội dung đa phương tiện. Các ví dụ tốt nhất về dữ liệu phi cấu trúc bao gồm tệp âm thanh, bản trình bày và trang web. Các ví dụ về dữ liệu phi cấu trúc do máy tạo ra là hình ảnh vệ tinh, dữ liệu khoa học, ảnh và video, dữ liệu radar và sóng siêu âm.

Cấu trúc kim tự tháp trên đặc biệt tập trung vào số lượng dữ liệu và tỷ lệ mà nó bị phân tán.

Dữ liệu chuẩn có cấu trúc xuất hiện dưới dạng loại giữa dữ liệu không có cấu trúc và bán cấu trúc. Trong hướng dẫn này, chúng tôi sẽ tập trung vào dữ liệu bán cấu trúc, có lợi cho phương pháp luận nhanh và nghiên cứu khoa học dữ liệu.

Dữ liệu bán cấu trúc không có mô hình dữ liệu chính thức nhưng có mô hình và cấu trúc rõ ràng, tự mô tả được phát triển bằng phân tích của nó.

Trọng tâm hoàn chỉnh của hướng dẫn này là tuân theo phương pháp nhanh với số bước ít hơn và với việc triển khai các công cụ hữu ích hơn. Để hiểu điều này, điều quan trọng là phải biết sự khác biệt giữa cơ sở dữ liệu SQL và NoSQL.

Hầu hết người dùng đều biết về cơ sở dữ liệu SQL và có kiến ​​thức tốt về MySQL, Oracle hoặc các cơ sở dữ liệu SQL khác. Trong vài năm qua, cơ sở dữ liệu NoSQL đang được áp dụng rộng rãi để giải quyết các vấn đề kinh doanh và yêu cầu khác nhau của dự án.

Bảng sau đây cho thấy sự khác biệt giữa cơ sở dữ liệu SQL và NoSQL:

SQL NoSQL
Cơ sở dữ liệu SQL chủ yếu được gọi là hệ quản trị cơ sở dữ liệu quan hệ (RDBMS). Cơ sở dữ liệu NoSQL còn được gọi là cơ sở dữ liệu định hướng tài liệu. Nó không quan hệ và phân tán.
Cơ sở dữ liệu dựa trên SQL bao gồm cấu trúc của bảng với các hàng và cột. Tập hợp các bảng và các cấu trúc lược đồ khác được gọi là cơ sở dữ liệu. Cơ sở dữ liệu NoSQL bao gồm các tài liệu dưới dạng cấu trúc chính và việc bao gồm các tài liệu được gọi là bộ sưu tập.
Cơ sở dữ liệu SQL bao gồm lược đồ được xác định trước. Cơ sở dữ liệu NoSQL có dữ liệu động và bao gồm dữ liệu phi cấu trúc.
Cơ sở dữ liệu SQL có thể mở rộng theo chiều dọc. Cơ sở dữ liệu NoSQL có thể mở rộng theo chiều ngang.
Cơ sở dữ liệu SQL rất phù hợp với môi trường truy vấn phức tạp. NoSQL không có giao diện tiêu chuẩn để phát triển truy vấn phức tạp.
Cơ sở dữ liệu SQL không khả thi để lưu trữ dữ liệu phân cấp. Cơ sở dữ liệu NoSQL phù hợp hơn để lưu trữ dữ liệu phân cấp.
Cơ sở dữ liệu SQL phù hợp nhất cho các giao dịch nặng trong các ứng dụng được chỉ định. Cơ sở dữ liệu NoSQL vẫn không được coi là có thể so sánh được khi tải cao cho các ứng dụng giao dịch phức tạp.
Cơ sở dữ liệu SQL cung cấp hỗ trợ tuyệt vời cho các nhà cung cấp của họ. Cơ sở dữ liệu NoSQL vẫn dựa vào sự hỗ trợ của cộng đồng. Chỉ có một số chuyên gia có sẵn để thiết lập và triển khai cho các triển khai NoSQL quy mô lớn.
Cơ sở dữ liệu SQL tập trung vào các thuộc tính ACID - Nguyên tử, Tính nhất quán, Cách ly và Độ bền. Cơ sở dữ liệu NoSQL tập trung vào các thuộc tính CAP - Tính nhất quán, Tính khả dụng và Dung sai phân vùng.
Cơ sở dữ liệu SQL có thể được phân loại là nguồn mở hoặc nguồn đóng dựa trên các nhà cung cấp đã chọn chúng. Cơ sở dữ liệu NoSQL được phân loại dựa trên loại lưu trữ. Cơ sở dữ liệu NoSQL là nguồn mở theo mặc định.

Tại sao NoSQL cho nhanh?

So sánh ở trên cho thấy cơ sở dữ liệu tài liệu NoSQL hoàn toàn hỗ trợ phát triển nhanh. Nó không có giản đồ và không hoàn toàn tập trung vào mô hình hóa dữ liệu. Thay vào đó, NoSQL định nghĩa các ứng dụng và dịch vụ và do đó các nhà phát triển có được ý tưởng tốt hơn về cách dữ liệu có thể được mô hình hóa. NoSQL định nghĩa mô hình dữ liệu là mô hình ứng dụng.

Cài đặt MongoDB

Trong suốt hướng dẫn này, chúng tôi sẽ tập trung nhiều hơn vào các ví dụ của MongoDB vì nó được coi là “lược đồ NoSQL” tốt nhất.

Đôi khi dữ liệu không có sẵn ở định dạng quan hệ và chúng ta cần giữ nó giao dịch với sự trợ giúp của cơ sở dữ liệu NoSQL.

Trong chương này, chúng ta sẽ tập trung vào luồng dữ liệu của NoSQL. Chúng ta cũng sẽ tìm hiểu cách hoạt động của nó với sự kết hợp của khoa học dữ liệu và linh hoạt.

Một trong những lý do chính để sử dụng NoSQL với agile là để tăng tốc độ với sự cạnh tranh của thị trường. Những lý do sau đây cho thấy NoSQL phù hợp nhất với phương pháp phần mềm linh hoạt như thế nào -

Ít rào cản hơn

Thay đổi mô hình, hiện đang trải qua giai đoạn giữa dòng có một số chi phí thực tế ngay cả trong trường hợp phát triển nhanh. Với NoSQL, người dùng làm việc với dữ liệu tổng hợp thay vì mất thời gian chuẩn hóa dữ liệu. Điểm chính là hoàn thành một việc gì đó và làm việc với mục tiêu làm cho dữ liệu hoàn hảo của mô hình.

Tăng khả năng mở rộng

Bất cứ khi nào một tổ chức tạo ra sản phẩm, tổ chức đó sẽ tập trung nhiều hơn vào khả năng mở rộng của nó. NoSQL luôn được biết đến với khả năng mở rộng nhưng nó hoạt động tốt hơn khi được thiết kế với khả năng mở rộng theo chiều ngang.

Khả năng tận dụng dữ liệu

NoSQL là một mô hình dữ liệu ít giản đồ cho phép người dùng dễ dàng sử dụng khối lượng dữ liệu, bao gồm một số tham số về độ biến thiên và vận tốc. Khi cân nhắc lựa chọn công nghệ, bạn nên luôn cân nhắc lựa chọn công nghệ, thứ thúc đẩy dữ liệu lên quy mô lớn hơn.

Luồng dữ liệu của NoSQL

Chúng ta hãy xem xét ví dụ sau, trong đó, chúng tôi đã chỉ ra cách một mô hình dữ liệu tập trung vào việc tạo lược đồ RDBMS.

Sau đây là các yêu cầu khác nhau của lược đồ:

  • Nhận dạng người dùng sẽ được liệt kê.

  • Mỗi người dùng nên có ít nhất một kỹ năng bắt buộc.

  • Chi tiết về trải nghiệm của mọi người dùng nên được duy trì đúng cách.

Bảng người dùng được chuẩn hóa với 3 bảng riêng biệt -

  • Users

  • Kỹ năng người dùng

  • Kinh nghiệm người dùng

Độ phức tạp tăng lên trong khi truy vấn cơ sở dữ liệu và mức tiêu thụ thời gian được ghi nhận với quá trình chuẩn hóa tăng lên, điều này không tốt cho phương pháp Agile. Lược đồ tương tự có thể được thiết kế với cơ sở dữ liệu NoSQL như được đề cập bên dưới:

NoSQL duy trì cấu trúc ở định dạng JSON, có cấu trúc nhẹ. Với JSON, các ứng dụng có thể lưu trữ các đối tượng với dữ liệu lồng nhau dưới dạng các tài liệu đơn lẻ.

Trong chương này, chúng ta sẽ tập trung vào cấu trúc JSON, cấu trúc tạo thành một phần của “phương pháp Agile”. MongoDB là một cấu trúc dữ liệu NoSQL được sử dụng rộng rãi và hoạt động dễ dàng để thu thập và hiển thị các bản ghi.

Bước 1

Bước này liên quan đến việc thiết lập kết nối với MongoDB để tạo bộ sưu tập và mô hình dữ liệu cụ thể. Tất cả những gì bạn cần thực hiện là lệnh “mongod” để bắt đầu kết nối và lệnh mongo để kết nối với thiết bị đầu cuối được chỉ định.

Bước 2

Tạo cơ sở dữ liệu mới để tạo bản ghi ở định dạng JSON. Hiện tại, chúng tôi đang tạo một cơ sở dữ liệu giả có tên là “mydb”.

>use mydb
switched to db mydb
>db
mydb
>show dbs
local 0.78125GB
test 0.23012GB
>db.user.insert({"name":"Agile Data Science"})
>show dbs
local 0.78125GB
mydb 0.23012GB
test 0.23012GB

Bước 3

Việc tạo bộ sưu tập là bắt buộc để có được danh sách các bản ghi. Tính năng này có lợi cho nghiên cứu khoa học dữ liệu và đầu ra.

>use test
switched to db test
>db.createCollection("mycollection")
{ "ok" : 1 }
>show collections
mycollection
system.indexes
>db.createCollection("mycol", { capped : true, autoIndexId : true, size :
 6142800, max : 10000 } )
{ "ok" : 1 }
>db.agiledatascience.insert({"name" : "demoname"})
>show collections
mycol
mycollection
system.indexes
demoname

Trực quan hóa dữ liệu đóng một vai trò rất quan trọng trong khoa học dữ liệu. Chúng ta có thể coi trực quan hóa dữ liệu là một phân hệ của khoa học dữ liệu. Khoa học dữ liệu bao gồm nhiều thứ hơn là xây dựng các mô hình dự đoán. Nó bao gồm giải thích về các mô hình và sử dụng chúng để hiểu dữ liệu và đưa ra quyết định. Trực quan hóa dữ liệu là một phần không thể thiếu để trình bày dữ liệu một cách thuyết phục nhất.

Theo quan điểm khoa học dữ liệu, trực quan hóa dữ liệu là một tính năng nổi bật cho thấy những thay đổi và xu hướng.

Hãy xem xét các nguyên tắc sau để trực quan hóa dữ liệu hiệu quả -

  • Định vị dữ liệu dọc theo thang đo chung.

  • Sử dụng thanh có hiệu quả hơn so với hình tròn và hình vuông.

  • Màu thích hợp nên được sử dụng cho các ô phân tán.

  • Sử dụng biểu đồ hình tròn để hiển thị tỷ lệ.

  • Hình ảnh hóa Sunburst hiệu quả hơn đối với các ô phân cấp.

Agile cần một ngôn ngữ kịch bản đơn giản để trực quan hóa dữ liệu và với sự hợp tác của khoa học dữ liệu “Python” là ngôn ngữ được đề xuất để trực quan hóa dữ liệu.

ví dụ 1

Ví dụ sau đây minh họa dữ liệu trực quan về GDP được tính toán trong các năm cụ thể. “Matplotlib” là thư viện tốt nhất để trực quan hóa dữ liệu bằng Python. Việc cài đặt thư viện này được hiển thị bên dưới:

Hãy xem xét đoạn mã sau để hiểu điều này -

import matplotlib.pyplot as plt
years = [1950, 1960, 1970, 1980, 1990, 2000, 2010]
gdp = [300.2, 543.3, 1075.9, 2862.5, 5979.6, 10289.7, 14958.3]

# create a line chart, years on x-axis, gdp on y-axis
plt.plot(years, gdp, color='green', marker='o', linestyle='solid')

# add a title plt.title("Nominal GDP")
# add a label to the y-axis
plt.ylabel("Billions of $")
plt.show()

Đầu ra

Đoạn mã trên tạo ra kết quả sau:

Có nhiều cách để tùy chỉnh biểu đồ với nhãn trục, kiểu đường và điểm đánh dấu. Hãy tập trung vào ví dụ tiếp theo thể hiện trực quan hóa dữ liệu tốt hơn. Những kết quả này có thể được sử dụng để tạo ra kết quả tốt hơn.

Ví dụ 2

import datetime
import random
import matplotlib.pyplot as plt

# make up some data
x = [datetime.datetime.now() + datetime.timedelta(hours=i) for i in range(12)]
y = [i+random.gauss(0,1) for i,_ in enumerate(x)]

# plot
plt.plot(x,y)

# beautify the x-labels
plt.gcf().autofmt_xdate()
plt.show()

Đầu ra

Đoạn mã trên tạo ra kết quả sau:

Làm giàu dữ liệu đề cập đến một loạt các quy trình được sử dụng để nâng cao, tinh chỉnh và cải thiện dữ liệu thô. Nó đề cập đến việc chuyển đổi dữ liệu hữu ích (dữ liệu thô thành thông tin hữu ích). Quá trình làm giàu dữ liệu tập trung vào việc làm cho dữ liệu trở thành tài sản dữ liệu có giá trị cho doanh nghiệp hoặc doanh nghiệp hiện đại.

Quá trình làm giàu dữ liệu phổ biến nhất bao gồm sửa lỗi chính tả hoặc lỗi đánh máy trong cơ sở dữ liệu thông qua việc sử dụng các thuật toán quyết định cụ thể. Các công cụ làm giàu dữ liệu thêm thông tin hữu ích vào các bảng dữ liệu đơn giản.

Hãy xem xét đoạn mã sau để sửa lỗi chính tả của các từ:

import re
from collections import Counter
def words(text): return re.findall(r'\w+', text.lower())
WORDS = Counter(words(open('big.txt').read()))

def P(word, N=sum(WORDS.values())):
   "Probabilities of words"
   return WORDS[word] / N
	
def correction(word):
   "Spelling correction of word"
   return max(candidates(word), key=P)
	
def candidates(word):
   "Generate possible spelling corrections for word."
   return (known([word]) or known(edits1(word)) or known(edits2(word)) or [word])
	
def known(words):
   "The subset of `words` that appear in the dictionary of WORDS."
   return set(w for w in words if w in WORDS)
	
def edits1(word):
   "All edits that are one edit away from `word`."
   letters = 'abcdefghijklmnopqrstuvwxyz'
   splits = [(word[:i], word[i:]) for i in range(len(word) + 1)]
   deletes = [L + R[1:] for L, R in splits if R]
   transposes = [L + R[1] + R[0] + R[2:] for L, R in splits if len(R)>1]
   replaces = [L + c + R[1:] for L, R in splits if R for c in letters]
   inserts = [L + c + R for L, R in splits for c in letters]
   return set(deletes + transposes + replaces + inserts)
	
def edits2(word):
   "All edits that are two edits away from `word`."
   return (e2 for e1 in edits1(word) for e2 in edits1(e1))
   print(correction('speling'))
   print(correction('korrectud'))

Trong chương trình này, chúng tôi sẽ đối sánh với “big.txt” bao gồm các từ đã sửa. Các từ phù hợp với các từ có trong tệp văn bản và in ra kết quả tương ứng.

Đầu ra

Đoạn mã trên sẽ tạo ra kết quả sau:

Trong chương này, chúng ta sẽ tìm hiểu về việc tạo báo cáo, đây là một mô-đun quan trọng của phương pháp nhanh. Các trang biểu đồ chạy nước rút nhanh được tạo bằng cách trực quan hóa thành các báo cáo đầy đủ. Với các báo cáo, biểu đồ trở nên tương tác, các trang tĩnh trở thành dữ liệu động và liên quan đến mạng. Các đặc điểm của giai đoạn báo cáo của tháp giá trị dữ liệu được trình bày dưới đây:

Chúng tôi sẽ căng thẳng hơn khi tạo tệp csv, tệp này có thể được sử dụng làm báo cáo để phân tích khoa học dữ liệu và rút ra kết luận. Mặc dù nhanh nhẹn tập trung vào ít tài liệu hơn, việc tạo báo cáo để đề cập đến tiến độ phát triển sản phẩm luôn được xem xét.

import csv
#----------------------------------------------------------------------
def csv_writer(data, path):
   """
      Write data to a CSV file path
   """
   with open(path, "wb") as csv_file:
   writer = csv.writer(csv_file, delimiter=',')
   for line in data:
   writer.writerow(line)
#----------------------------------------------------------------------
if __name__ == "__main__":
   data = ["first_name,last_name,city".split(","),
      "Tyrese,Hirthe,Strackeport".split(","),
      "Jules,Dicki,Lake Nickolasville".split(","),
      "Dedric,Medhurst,Stiedemannberg".split(",")
   ]
	
   path = "output.csv"
   csv_writer(data, path)

Đoạn mã trên sẽ giúp bạn tạo “tệp csv” như được hiển thị bên dưới -

Hãy để chúng tôi xem xét các lợi ích sau của báo cáo csv (các giá trị được phân tách bằng dấu phẩy) -

  • Nó thân thiện với con người và dễ dàng chỉnh sửa thủ công.
  • Nó rất đơn giản để thực hiện và phân tích cú pháp.
  • CSV có thể được xử lý trong tất cả các ứng dụng.
  • Nó nhỏ hơn và nhanh hơn để xử lý.
  • CSV tuân theo một định dạng chuẩn.
  • Nó cung cấp lược đồ đơn giản cho các nhà khoa học dữ liệu.

Trong chương này, chúng ta sẽ tìm hiểu về vai trò của các dự đoán trong khoa học dữ liệu nhanh. Các báo cáo tương tác cho thấy các khía cạnh khác nhau của dữ liệu. Dự đoán hình thành lớp thứ tư của chạy nước rút nhanh nhẹn.

Khi đưa ra dự đoán, chúng tôi luôn tham khảo dữ liệu trong quá khứ và sử dụng chúng làm suy luận cho các lần lặp lại trong tương lai. Trong quy trình hoàn chỉnh này, chúng tôi chuyển đổi dữ liệu từ xử lý hàng loạt dữ liệu lịch sử sang dữ liệu thời gian thực về tương lai.

Vai trò của các dự đoán bao gồm:

  • Dự đoán giúp ích trong việc dự báo. Một số dự báo dựa trên suy luận thống kê. Một số dự đoán dựa trên ý kiến ​​của các chuyên gia.

  • Suy luận thống kê liên quan đến các dự đoán của tất cả các loại.

  • Đôi khi dự báo là chính xác, trong khi đôi khi dự báo không chính xác.

Phân tích dự đoán

Phân tích dự đoán bao gồm nhiều kỹ thuật thống kê từ mô hình dự đoán, học máy và khai thác dữ liệu, phân tích các dữ kiện hiện tại và lịch sử để đưa ra dự đoán về các sự kiện trong tương lai và chưa biết.

Phân tích dự đoán yêu cầu dữ liệu đào tạo. Dữ liệu được đào tạo bao gồm các tính năng độc lập và phụ thuộc. Các tính năng phụ thuộc là các giá trị mà người dùng đang cố gắng dự đoán. Đối tượng địa lý độc lập là đối tượng địa lý mô tả những thứ chúng ta muốn dự đoán dựa trên các đối tượng địa lý phụ thuộc.

Việc nghiên cứu các tính năng được gọi là kỹ thuật tính năng; điều này rất quan trọng để đưa ra dự đoán. Trực quan hóa dữ liệu và phân tích dữ liệu khám phá là các phần của kỹ thuật tính năng; những điều này tạo thành cốt lõi củaAgile data science.

Đưa ra dự đoán

Có hai cách để đưa ra dự đoán trong khoa học dữ liệu nhanh -

  • Regression

  • Classification

Việc xây dựng một hồi quy hay một phân loại hoàn toàn phụ thuộc vào yêu cầu nghiệp vụ và phân tích của nó. Dự đoán biến liên tục dẫn đến mô hình hồi quy và dự đoán biến phân loại dẫn đến mô hình phân loại.

hồi quy

Hồi quy xem xét các ví dụ bao gồm các tính năng và do đó, tạo ra kết quả số.

Phân loại

Phân loại lấy đầu vào và tạo ra một phân loại phân loại.

Note - Tập dữ liệu mẫu xác định đầu vào cho dự đoán thống kê và cho phép máy học được gọi là “dữ liệu huấn luyện”.

Trong chương này, chúng ta sẽ tìm hiểu về ứng dụng của các tính năng trích xuất với PySpark trong Khoa học Dữ liệu Agile.

Tổng quan về Spark

Apache Spark có thể được định nghĩa là một khung xử lý thời gian thực nhanh. Nó thực hiện tính toán để phân tích dữ liệu trong thời gian thực. Apache Spark được giới thiệu là hệ thống xử lý luồng trong thời gian thực và cũng có thể xử lý hàng loạt. Apache Spark hỗ trợ các truy vấn tương tác và các thuật toán lặp lại.

Spark được viết bằng “ngôn ngữ lập trình Scala”.

PySpark có thể coi là sự kết hợp giữa Python với Spark. PySpark cung cấp trình bao PySpark, liên kết API Python với lõi Spark và khởi tạo ngữ cảnh Spark. Hầu hết các nhà khoa học dữ liệu sử dụng PySpark cho các tính năng theo dõi như đã thảo luận trong chương trước.

Trong ví dụ này, chúng ta sẽ tập trung vào các phép biến đổi để xây dựng một tập dữ liệu được gọi là số đếm và lưu nó vào một tệp cụ thể.

text_file = sc.textFile("hdfs://...")
counts = text_file.flatMap(lambda line: line.split(" ")) \
   .map(lambda word: (word, 1)) \
   .reduceByKey(lambda a, b: a + b)
counts.saveAsTextFile("hdfs://...")

Sử dụng PySpark, người dùng có thể làm việc với RDD bằng ngôn ngữ lập trình python. Thư viện có sẵn, bao gồm các khái niệm cơ bản về các thành phần và tài liệu theo Hướng dữ liệu, giúp thực hiện việc này.

Hồi quy logistic đề cập đến thuật toán học máy được sử dụng để dự đoán xác suất của biến phụ thuộc phân loại. Trong hồi quy logistic, biến phụ thuộc là biến nhị phân, bao gồm dữ liệu được mã hóa là 1 (các giá trị Boolean của true và false).

Trong chương này, chúng ta sẽ tập trung vào việc phát triển một mô hình hồi quy trong Python sử dụng biến liên tục. Ví dụ cho mô hình hồi quy tuyến tính sẽ tập trung vào việc khám phá dữ liệu từ tệp CSV.

Mục tiêu phân loại là dự đoán liệu khách hàng có đăng ký (1/0) vào một khoản tiền gửi có kỳ hạn hay không.

import pandas as pd
import numpy as np
from sklearn import preprocessing
import matplotlib.pyplot as plt

plt.rc("font", size=14)
from sklearn.linear_model import LogisticRegression
from sklearn.cross_validation import train_test_split

import seaborn as sns
sns.set(style="white")
sns.set(style="whitegrid", color_codes=True)
data = pd.read_csv('bank.csv', header=0)
data = data.dropna()
print(data.shape)
print(list(data.columns))

Làm theo các bước sau để triển khai mã trên trong Anaconda Navigator với “Máy tính xách tay Jupyter” -

Step 1 - Khởi chạy Máy tính xách tay Jupyter với Bộ điều hướng Anaconda.

Step 2 - Tải lên tệp csv để lấy đầu ra của mô hình hồi quy một cách có hệ thống.

Step 3 - Tạo một tệp mới và thực hiện dòng mã nói trên để có kết quả đầu ra mong muốn.

Trong ví dụ này, chúng ta sẽ học cách tạo và triển khai mô hình dự đoán giúp dự đoán giá nhà bằng cách sử dụng tập lệnh python. Khung quan trọng được sử dụng để triển khai hệ thống tiên đoán bao gồm Anaconda và “Máy tính xách tay Jupyter”.

Thực hiện theo các bước sau để triển khai hệ thống dự đoán -

Step 1 - Thực hiện đoạn mã sau để chuyển đổi giá trị từ tệp csv thành giá trị được liên kết.

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import mpl_toolkits

%matplotlib inline
data = pd.read_csv("kc_house_data.csv")
data.head()

Đoạn mã trên tạo ra kết quả sau:

Step 2 - Thực hiện chức năng mô tả để lấy các kiểu dữ liệu có trong phân bổ của tệp csv.

data.describe()

Step 3 - Chúng tôi có thể bỏ các giá trị liên quan dựa trên việc triển khai mô hình dự đoán mà chúng tôi đã tạo.

train1 = data.drop(['id', 'price'],axis=1)
train1.head()

Step 4- Bạn có thể trực quan hóa dữ liệu theo hồ sơ. Dữ liệu có thể được sử dụng để phân tích khoa học dữ liệu và xuất ra sách trắng.

data.floors.value_counts().plot(kind='bar')

Thư viện học máy còn được gọi là “SparkML” hoặc “MLLib” bao gồm các thuật toán học tập phổ biến, bao gồm phân loại, hồi quy, phân cụm và lọc cộng tác.

Tại sao phải học SparkML cho Agile?

Spark đang trở thành nền tảng thực tế để xây dựng các ứng dụng và thuật toán máy học. Các nhà phát triển làm việc trên Spark để triển khai các thuật toán máy theo cách có thể mở rộng và ngắn gọn trong khung Spark. Chúng ta sẽ tìm hiểu các khái niệm về Học máy, các tiện ích và thuật toán của nó với khuôn khổ này. Agile luôn chọn một khuôn khổ, mang lại kết quả ngắn và nhanh chóng.

Thuật toán ML

Thuật toán ML bao gồm các thuật toán học tập phổ biến như phân loại, hồi quy, phân cụm và lọc cộng tác.

Đặc trưng

Nó bao gồm trích xuất tính năng, chuyển đổi, giảm kích thước và lựa chọn.

Đường ống

Đường ống cung cấp các công cụ để xây dựng, đánh giá và điều chỉnh đường ống máy học.

Các thuật toán phổ biến

Sau đây là một số thuật toán phổ biến -

  • Thống kê cơ bản

  • Regression

  • Classification

  • Hệ thống khuyến nghị

  • Clustering

  • Giảm kích thước

  • Khai thác tính năng

  • Optimization

Hệ thống khuyến nghị

Hệ thống đề xuất là một lớp con của hệ thống lọc thông tin nhằm tìm kiếm dự đoán về “xếp hạng” và “sở thích” mà người dùng đề xuất cho một mặt hàng nhất định.

Hệ thống khuyến nghị bao gồm các hệ thống lọc khác nhau, được sử dụng như sau:

Lọc cộng tác

Nó bao gồm việc xây dựng một mô hình dựa trên hành vi trong quá khứ cũng như các quyết định tương tự của những người dùng khác. Mô hình lọc cụ thể này được sử dụng để dự đoán các mặt hàng mà người dùng quan tâm.

Lọc dựa trên nội dung

Nó bao gồm việc lọc các đặc điểm rời rạc của một mặt hàng để giới thiệu và thêm các mặt hàng mới có đặc tính tương tự.

Trong các chương tiếp theo của chúng tôi, chúng tôi sẽ tập trung vào việc sử dụng hệ thống khuyến nghị để giải quyết một vấn đề cụ thể và cải thiện hiệu suất dự đoán từ quan điểm phương pháp nhanh.

Trong chương này, chúng tôi sẽ tập trung vào việc khắc phục một vấn đề dự đoán với sự trợ giúp của một kịch bản cụ thể.

Hãy xem xét rằng một công ty muốn tự động hóa các chi tiết về tính đủ điều kiện cho vay theo các chi tiết khách hàng cung cấp thông qua biểu mẫu đăng ký trực tuyến. Các chi tiết bao gồm tên khách hàng, giới tính, tình trạng hôn nhân, số tiền vay và các chi tiết bắt buộc khác.

Các chi tiết được ghi lại trong tệp CSV như hình dưới đây -

Thực thi đoạn mã sau để đánh giá vấn đề dự đoán -

import pandas as pd
from sklearn import ensemble
import numpy as np

from scipy.stats import mode
from sklearn import preprocessing,model_selection
from sklearn.linear_model import LogisticRegression
from sklearn.preprocessing import LabelEncoder

#loading the dataset
data=pd.read_csv('train.csv',index_col='Loan_ID')
def num_missing(x):
   return sum(x.isnull())
 
#imputing the the missing values from the data
data['Gender'].fillna(mode(list(data['Gender'])).mode[0], inplace=True)
data['Married'].fillna(mode(list(data['Married'])).mode[0], inplace=True)
data['Self_Employed'].fillna(mode(list(data['Self_Employed'])).mode[0], inplace=True)

# print (data.apply(num_missing, axis=0))
# #imputing mean for the missing value
data['LoanAmount'].fillna(data['LoanAmount'].mean(), inplace=True)
mapping={'0':0,'1':1,'2':2,'3+':3}
data = data.replace({'Dependents':mapping})
data['Dependents'].fillna(data['Dependents'].mean(), inplace=True)
data['Loan_Amount_Term'].fillna(method='ffill',inplace=True)
data['Credit_History'].fillna(method='ffill',inplace=True)
print (data.apply(num_missing,axis=0))

#converting the cateogorical data to numbers using the label encoder
var_mod = ['Gender','Married','Education','Self_Employed','Property_Area','Loan_Status']
le = LabelEncoder()
for i in var_mod:
   le.fit(list(data[i].values))
   data[i] = le.transform(list(data[i]))
 
#Train test split
x=['Gender','Married','Education','Self_Employed','Property_Area','LoanAmount', 'Loan_Amount_Term','Credit_History','Dependents']
y=['Loan_Status']
print(data[x])
X_train,X_test,y_train,y_test=model_selection.train_test_split(data[x],data[y], test_size=0.2)

#
# #Random forest classifier
# clf=ensemble.RandomForestClassifier(n_estimators=100,
criterion='gini',max_depth=3,max_features='auto',n_jobs=-1)
clf=ensemble.RandomForestClassifier(n_estimators=200,max_features=3,min_samples
   _split=5,oob_score=True,n_jobs=-1,criterion='entropy')
	
clf.fit(X_train,y_train)
accuracy=clf.score(X_test,y_test)
print(accuracy)

Đầu ra

Đoạn mã trên tạo ra kết quả sau.

Trong chương này, chúng tôi sẽ tập trung vào việc xây dựng một mô hình giúp dự đoán kết quả hoạt động của học sinh với một số thuộc tính có trong đó. Trọng tâm là hiển thị kết quả không đạt của học sinh trong một kỳ thi.

Quá trình

Giá trị mục tiêu của đánh giá là G3. Các giá trị này có thể được phân loại và phân loại thêm là thất bại và thành công. Nếu giá trị G3 lớn hơn hoặc bằng 10 thì học sinh đó đạt yêu cầu.

Thí dụ

Hãy xem xét ví dụ sau, trong đó mã được thực thi để dự đoán hiệu suất nếu học sinh -

import pandas as pd
""" Read data file as DataFrame """
df = pd.read_csv("student-mat.csv", sep=";")
""" Import ML helpers """
from sklearn.preprocessing import LabelEncoder
from sklearn.model_selection import train_test_split
from sklearn.metrics import confusion_matrix
from sklearn.model_selection import GridSearchCV, cross_val_score
from sklearn.pipeline import Pipeline
from sklearn.feature_selection import SelectKBest, chi2
from sklearn.svm import LinearSVC # Support Vector Machine Classifier model
""" Split Data into Training and Testing Sets """
def split_data(X, Y):
 return train_test_split(X, Y, test_size=0.2, random_state=17)
""" Confusion Matrix """
def confuse(y_true, y_pred):
 cm = confusion_matrix(y_true=y_true, y_pred=y_pred)
 # print("\nConfusion Matrix: \n", cm)
  fpr(cm)
 ffr(cm)
""" False Pass Rate """
def fpr(confusion_matrix):
 fp = confusion_matrix[0][1]
 tf = confusion_matrix[0][0]
 rate = float(fp) / (fp + tf)
 print("False Pass Rate: ", rate)
""" False Fail Rate """
def ffr(confusion_matrix):
 ff = confusion_matrix[1][0]
 tp = confusion_matrix[1][1]
 rate = float(ff) / (ff + tp)
 print("False Fail Rate: ", rate)
 return rate
""" Train Model and Print Score """
def train_and_score(X, y):
 X_train, X_test, y_train, y_test = split_data(X, y)
 clf = Pipeline([
 ('reduce_dim', SelectKBest(chi2, k=2)),
 ('train', LinearSVC(C=100))
 ])
 scores = cross_val_score(clf, X_train, y_train, cv=5, n_jobs=2)
 print("Mean Model Accuracy:", np.array(scores).mean())
 clf.fit(X_train, y_train)
 confuse(y_test, clf.predict(X_test))
 print()
""" Main Program """
def main():
 print("\nStudent Performance Prediction")
 # For each feature, encode to categorical values
 class_le = LabelEncoder()
 for column in df[["school", "sex", "address", "famsize", "Pstatus", "Mjob",
"Fjob", "reason", "guardian", "schoolsup", "famsup", "paid", "activities",
"nursery", "higher", "internet", "romantic"]].columns:
 df[column] = class_le.fit_transform(df[column].values)
 # Encode G1, G2, G3 as pass or fail binary values
 for i, row in df.iterrows():
 if row["G1"] >= 10:
 df["G1"][i] = 1
 else:
 df["G1"][i] = 0
 if row["G2"] >= 10:
 df["G2"][i] = 1
 else:
 df["G2"][i] = 0
 if row["G3"] >= 10:
 df["G3"][i] = 1
 else:
 df["G3"][i] = 0
 # Target values are G3
 y = df.pop("G3")
 # Feature set is remaining features
 X = df
 print("\n\nModel Accuracy Knowing G1 & G2 Scores")
 print("=====================================")
 train_and_score(X, y)
 # Remove grade report 2
 X.drop(["G2"], axis = 1, inplace=True)
 print("\n\nModel Accuracy Knowing Only G1 Score")
 print("=====================================")
 train_and_score(X, y)
 # Remove grade report 1
 X.drop(["G1"], axis=1, inplace=True)
 print("\n\nModel Accuracy Without Knowing Scores")
 print("=====================================")
 train_and_score(X, y)
main()

Đầu ra

Đoạn mã trên tạo ra kết quả như hình dưới đây

Dự đoán chỉ được coi là tham chiếu đến một biến. Với tham chiếu đến một biến, dự đoán kết quả học tập của học sinh như được hiển thị bên dưới:

Phương pháp Agile giúp các tổ chức thích ứng với sự thay đổi, cạnh tranh trên thị trường và xây dựng các sản phẩm chất lượng cao. Người ta quan sát thấy rằng các tổ chức đã trưởng thành với phương pháp luận nhanh nhẹn, với sự thay đổi ngày càng nhiều trong các yêu cầu từ khách hàng. Biên dịch và đồng bộ hóa dữ liệu với các nhóm tổ chức linh hoạt có ý nghĩa quan trọng trong việc tổng hợp dữ liệu theo danh mục đầu tư yêu cầu.

Xây dựng một kế hoạch tốt hơn

Hiệu suất nhanh được tiêu chuẩn hóa chỉ phụ thuộc vào kế hoạch. Lược đồ dữ liệu được sắp xếp trao quyền cho năng suất, chất lượng và khả năng đáp ứng tiến độ của tổ chức. Mức độ nhất quán của dữ liệu được duy trì với các kịch bản lịch sử và thời gian thực.

Hãy xem xét sơ đồ sau để hiểu chu trình thí nghiệm khoa học dữ liệu -

Khoa học dữ liệu liên quan đến việc phân tích các yêu cầu, tiếp theo là tạo ra các thuật toán dựa trên cùng. Khi các thuật toán được thiết kế cùng với thiết lập môi trường, người dùng có thể tạo các thử nghiệm và thu thập dữ liệu để phân tích tốt hơn.

Hệ tư tưởng này tính toán bước chạy nước rút cuối cùng của nhanh nhẹn, được gọi là "hành động".

Actionsliên quan đến tất cả các nhiệm vụ bắt buộc đối với nước rút cuối cùng hoặc cấp độ của phương pháp nhanh. Theo dõi các giai đoạn khoa học dữ liệu (liên quan đến vòng đời) có thể được duy trì bằng thẻ câu chuyện làm mục hành động.

Phân tích dự đoán và dữ liệu lớn

Tương lai của việc lập kế hoạch hoàn toàn nằm trong việc tùy chỉnh các báo cáo dữ liệu với dữ liệu thu thập được từ phân tích. Nó cũng sẽ bao gồm thao tác với phân tích dữ liệu lớn. Với sự trợ giúp của dữ liệu lớn, các mẩu thông tin rời rạc có thể được phân tích, một cách hiệu quả với việc cắt và phân tích các chỉ số của tổ chức. Phân tích luôn được coi là một giải pháp tốt hơn.

Có nhiều phương pháp luận khác nhau được sử dụng trong quá trình phát triển nhanh. Những phương pháp luận này cũng có thể được sử dụng cho quá trình nghiên cứu khoa học dữ liệu.

Lưu đồ dưới đây cho thấy các phương pháp khác nhau -

Scrum

Theo thuật ngữ phát triển phần mềm, scrum có nghĩa là quản lý công việc với một nhóm nhỏ và quản lý một dự án cụ thể để tiết lộ điểm mạnh và điểm yếu của dự án.

Phương pháp tinh thể

Các phương pháp luận tinh thể bao gồm các kỹ thuật đổi mới để quản lý và thực hiện sản phẩm. Với phương pháp này, các nhóm có thể thực hiện các nhiệm vụ tương tự theo nhiều cách khác nhau. Gia đình tinh thể là một trong những phương pháp dễ áp ​​dụng nhất.

Phương pháp phát triển phần mềm động

Khung phân phối này chủ yếu được sử dụng để triển khai hệ thống kiến ​​thức hiện tại trong phương pháp luận phần mềm.

Định hướng phát triển trong tương lai

Trọng tâm của vòng đời phát triển này là các tính năng liên quan đến dự án. Nó hoạt động tốt nhất để lập mô hình đối tượng miền, phát triển mã và tính năng cho quyền sở hữu.

Phát triển phần mềm tinh gọn

Lập trình cực đoan

Lập trình cực đoan là một phương pháp phát triển phần mềm độc đáo, tập trung vào việc cải thiện chất lượng phần mềm. Điều này có hiệu quả khi khách hàng không chắc chắn về chức năng của bất kỳ dự án nào.

Các phương pháp luận Agile đang bắt nguồn từ luồng khoa học dữ liệu và nó được coi là phương pháp luận phần mềm quan trọng. Với khả năng tự tổ chức nhanh nhẹn, các nhóm chức năng chéo có thể làm việc cùng nhau một cách hiệu quả. Như đã đề cập, có sáu danh mục chính của phát triển nhanh và mỗi một trong số chúng có thể được truyền tải bằng khoa học dữ liệu theo yêu cầu. Khoa học dữ liệu bao gồm một quá trình lặp đi lặp lại để có được những hiểu biết thống kê. Agile giúp chia nhỏ các mô-đun khoa học dữ liệu và giúp xử lý các lần lặp lại và chạy nước rút một cách hiệu quả.

Quy trình Khoa học dữ liệu Agile là một cách tuyệt vời để hiểu cách thức và lý do tại sao mô-đun khoa học dữ liệu được triển khai. Nó giải quyết các vấn đề theo cách sáng tạo.