Phân tích dữ liệu bằng Scala
Điều rất quan trọng là chọn đúng công cụ để phân tích dữ liệu. Trên các diễn đàn Kaggle, nơi tổ chức các cuộc thi Khoa học dữ liệu quốc tế, mọi người thường hỏi công cụ nào tốt hơn. R và Python đứng đầu danh sách. Trong bài viết này, chúng tôi sẽ cho bạn biết về một nhóm công nghệ phân tích dữ liệu thay thế, dựa trên Scala.
By La Mã Zykov, Người sáng lập/Nhà khoa học dữ liệu @ TopDataLab
Điều rất quan trọng là chọn đúng công cụ để phân tích dữ liệu. trên Kaggle.com các diễn đàn, nơi tổ chức các cuộc thi Khoa học dữ liệu quốc tế, mọi người thường hỏi công cụ nào tốt hơn. R và Python đứng đầu danh sách. Trong bài viết này, chúng tôi sẽ cho bạn biết về một nhóm công nghệ phân tích dữ liệu thay thế, dựa trên ngôn ngữ lập trình Scala và Spark nền tảng điện toán phân tán.
Làm thế nào mà chúng tôi đưa ra với nó? Tại Retail Rocket, chúng tôi thực hiện rất nhiều hoạt động học máy trên các tập dữ liệu rất lớn. Chúng tôi đã từng sử dụng một loạt IPython + Pyhs2 (trình điều khiển hive cho Python) + Pandas + Sklearn để phát triển các nguyên mẫu. Vào cuối mùa hè năm 2014, chúng tôi đã đưa ra quyết định cơ bản là chuyển sang Spark, vì các thử nghiệm đã chỉ ra rằng chúng tôi sẽ nhận được hiệu suất cải thiện gấp 3-4 lần trên cùng một nhóm máy chủ.
Một lợi thế khác là chúng ta có thể sử dụng một ngôn ngữ lập trình để lập mô hình và mã sẽ chạy trên các máy chủ sản xuất. Đây là một lợi ích to lớn đối với chúng tôi, vì trước đây chúng tôi sử dụng đồng thời 4 ngôn ngữ: Hive, Pig, Java, Python. Đó là một vấn đề đối với một nhóm nhỏ các kỹ sư.
Spark hỗ trợ làm việc tốt với Python/Scala/Java thông qua API. Chúng tôi quyết định chọn Scala vì đó là ngôn ngữ mà Spark được viết, có nghĩa là chúng tôi có thể phân tích mã nguồn của nó và sửa lỗi nếu cần. Nó cũng là JVM mà Hadoop chạy trên đó.
Tôi phải nói rằng sự lựa chọn không hề dễ dàng, vì không ai trong nhóm biết Scala vào thời điểm đó.
Một thực tế nổi tiếng là để học cách giao tiếp tốt bằng một ngôn ngữ, bạn cần đắm mình trong ngôn ngữ đó và sử dụng nó càng nhiều càng tốt. Vì vậy, chúng tôi đã từ bỏ ngăn xếp Python để chuyển sang Scala để lập mô hình và phân tích dữ liệu nhanh.
Bước đầu tiên là tìm một sự thay thế cho sổ ghi chép IPython. Các tùy chọn như sau:
- Zeppelin – sổ ghi chép giống IPython dành cho Spark;
- công viên ISpark;
- Máy tính xách tay Spark;
- Máy tính xách tay Spark IPython của IBM.
- Apache Tquặng
Cho đến nay, sự lựa chọn là ISpark vì nó đơn giản – đó là IPython cho Scala/Spark. Việc sử dụng đồ họa HighCharts và R tương đối dễ dàng. Và chúng tôi không gặp vấn đề gì khi kết nối nó với cụm Sợi.
Nhiệm vụ
Hãy thử trả lời câu hỏi: số lượng mua trung bình (AOV) trong cửa hàng trực tuyến của bạn có phụ thuộc vào các thông số khách hàng tĩnh, bao gồm thanh toán, loại trình duyệt (di động/Máy tính để bàn), hệ điều hành và phiên bản trình duyệt không? Bạn có thể làm điều này với Thông tin lẫn nhau.
Chúng tôi sử dụng entropy rất nhiều cho các thuật toán đề xuất và phân tích của mình: công thức Shannon cổ điển, phân kỳ Kullback-Leibler, Thông tin lẫn nhau. Chúng tôi thậm chí đã gửi một bài báo về chủ đề này. Có một phần riêng biệt, mặc dù nhỏ, dành cho các biện pháp này trong sách giáo khoa nổi tiếng của Murphy về học máy.
Hãy phân tích nó trên dữ liệu tên lửa bán lẻ thực tế. Trước đó, tôi đã sao chép mẫu từ cụm của chúng tôi sang máy tính của mình dưới dạng tệp csv.
Ngày
Ở đây chúng tôi sử dụng ISpark và Spark chạy ở chế độ cục bộ, có nghĩa là tất cả các tính toán được thực hiện cục bộ và được phân phối giữa các lõi bộ xử lý. Tất cả mọi thứ được mô tả trong các bình luận cho mã. Điều quan trọng nhất là ở đầu ra, chúng ta nhận được RDD (cấu trúc dữ liệu Spark), là tập hợp các lớp trường hợp thuộc loại Row, được định nghĩa trong mã. Điều này sẽ cho phép bạn tham chiếu đến các trường thông qua “.”, ví dụ _.categoryId.
Nguồn: https://www.kdnuggets.com/2021/09/data-analysis-scala.html
- "
- &
- 100
- Lợi thế
- thuật toán
- Tất cả
- đàn bà gan dạ
- trong số
- phân tích
- Apache
- API
- ứng dụng
- bài viết
- Bolt
- trình duyệt
- lỗi
- xây dựng
- xăn lên
- thay đổi
- Bảng xếp hạng
- mã
- Bình luận
- Cuộc thi
- máy tính
- dữ liệu
- phân tích dữ liệu
- khoa học dữ liệu
- nhà khoa học dữ liệu
- xử lý
- học kĩ càng
- phát triển
- ĐÃ LÀM
- phân phối máy tính
- trình điều khiển
- Kỹ Sư
- Kỹ sư
- vv
- Excel
- kinh nghiệm
- thử nghiệm
- thăm dò
- Đối mặt
- gia đình
- NHANH
- Tính năng
- Lĩnh vực
- Tên
- Sửa chữa
- người sáng lập
- Khung
- GitHub
- Hadoop
- tại đây
- Tổ ong
- Độ đáng tin của
- Hướng dẫn
- HTTPS
- lớn
- thông tin
- tương tác
- Quốc Tế
- IT
- Java
- Ngôn ngữ
- Ngôn ngữ
- lớn
- LEARN
- học tập
- Thư viện
- Dòng
- Danh sách
- địa phương
- tại địa phương
- dài
- học máy
- Máy móc
- toán học
- Metrics
- microsoft
- người mẫu
- Phổ biến nhất
- máy tính xách tay
- Trực tuyến
- thông qua cửa hàng trực tuyến của chúng tôi,
- mở
- mã nguồn mở
- hoạt động
- hệ điều hành
- Các lựa chọn
- gọi món
- Khác
- Giấy
- người
- hiệu suất
- quan điểm
- Vật lý
- nền tảng
- Phổ biến
- danh mục đầu tư
- Sản lượng
- Lập trình
- dự án
- mua
- Python
- bán lẻ
- chạy
- chạy
- Scala
- Khoa học
- các nhà khoa học
- định
- giải quyết
- Đơn giản
- Kích thước máy
- kỹ năng
- nhỏ
- So
- Phần mềm
- Không gian
- hàng
- Những câu chuyện
- trình
- mùa hè
- Hỗ trợ
- Hỗ trợ
- Công tắc điện
- hệ thống
- Công nghệ
- Kiểm tra
- Đồ thị
- thời gian
- hàng đầu
- thống nhất
- URI
- us
- giá trị
- web
- Wikipedia
- cửa sổ
- Công việc
- X
- năm
- không