Viết thuật toán trong Excel

Tất cả các giai đoạn trong phương pháp tiếp cận của chúng tôi đều dễ dàng thực hiện đối với ngay cả một người mới làm quen với Khoa học Máy tính, quen thuộc với những kiến ​​thức cơ bản về Excel. Cách tiếp cận của chúng tôi là lý tưởng cho các bài tập trong nhiều lĩnh vực của Khoa học Máy tính và nó có thể được áp dụng ngay cả trong nghiên cứu

Về tính linh hoạt, cách tiếp cận hoạt hình thuật toán Excel có thể được so sánh với máy ảnh Polaroid. trong khi chất lượng có thể không phải là tinh tế nhất, kết quả nhanh chóng là thiết thực ngay cả đối với các mục đích bất ngờ. Và với tư cách là máy ảnh Polaroid, đây là ứng dụng của mọi người. nó hoạt động bất cứ nơi nào Excel làm

Một ví dụ. Tìm kiếm nhị phân

Dưới đây là một ví dụ chi tiết để làm rõ ý tưởng của chúng tôi. Tìm kiếm nhị phân là một phương pháp nổi tiếng để tìm kiếm một mục trong một mảng được sắp xếp. Ban đầu, phạm vi tìm kiếm là toàn bộ mảng. Sau đó, khóa tìm kiếm được so sánh với phần tử ở giữa của phạm vi. Nếu chúng bằng nhau, vật phẩm mong muốn đã được tìm thấy. Nếu khóa nhỏ hơn, quy trình tương tự được áp dụng đệ quy cho nửa bên trái của phạm vi tìm kiếm, nếu không thì nửa bên phải

Có ba giai đoạn tạo hoạt ảnh với Excel

Giai đoạn 1. Đưa cấu trúc dữ liệu vào trang tính

Để làm sinh động thuật toán tìm kiếm này, một biểu đồ đại diện cho mảng phải được hình thành. Giả sử mảng có 30 phần tử với các giá trị không giảm. Các giá trị được chèn trong một trang tính Excel bình thường vào các ô từ A1 đến A30

Giai đoạn 2. Tạo biểu đồ trực quan hóa cấu trúc dữ liệu

Sau đó, phạm vi này được chọn và trình hướng dẫn biểu đồ của Excel được áp dụng để tạo biểu đồ thanh. Các loại biểu đồ khác cũng có thể

giai đoạn 3. viết mã

Bên cạnh việc tạo biểu đồ, thuật toán tìm kiếm nhị phân được viết bằng Visual Basic. Mã tìm kiếm và hoạt hình được hiển thị trong Chương trình 1

Đến cuối hướng dẫn này, bạn sẽ thực hiện thuật toán đầu tiên của mình mà không cần chạm vào một dòng mã nào. Bạn sẽ sử dụng các kỹ thuật Machine Learning để phân loại dữ liệu thực bằng các hàm cơ bản trong Excel. Bạn không cần phải là một thiên tài hay một lập trình viên để hiểu về machine learning. Bất chấp các ứng dụng phổ biến của ô tô tự lái, rô bốt sát thủ và nhận dạng khuôn mặt, nền tảng của máy học [ML] khá đơn giản. Đây là cơ hội để bạn chân ướt chân ráo hiểu sức mạnh của những kỹ thuật mới này

Tuyên bố miễn trừ trách nhiệm về Excel

Tất cả các nhà khoa học dữ liệu có lẽ đang co rúm lại với tiêu đề của hướng dẫn này. Excel thường được coi là một công cụ khủng khiếp để phân tích dữ liệu nghiêm túc. Nó không mở rộng quy mô để xử lý các bộ dữ liệu lớn mà chúng ta xử lý trong thế giới thực và nó thiếu một số chức năng chính của ngôn ngữ lập trình và thư viện máy học. Bạn sẽ thấy rất nhiều công thức được đưa ra trong hướng dẫn này rất phức tạp để phù hợp với những thiếu sót và đặc thù của Excel. Lý do tôi sử dụng Excel là để làm cho phần giới thiệu này có thể truy cập được đối với những người không phải là lập trình viên vì hầu hết chúng ta đều có kiến ​​thức cơ bản về công cụ này. Những người chọn theo đuổi Học máy và Khoa học dữ liệu một cách nghiêm túc hơn cuối cùng sẽ nâng cấp lên sử dụng Python hoặc R, nhưng không có hại gì khi bắt đầu đơn giản

Mục tiêu cuối cùng của chúng tôi

Mục tiêu cuối cùng của hướng dẫn này là sử dụng Học máy để xây dựng mô hình phân loại trên một tập hợp dữ liệu thực bằng cách triển khai thuật toán k-láng giềng gần nhất [KNN]. Đừng quá choáng ngợp, hãy chia nhỏ ý nghĩa của điều đó từng chút một

Học máy

Machine Learning là tập hợp các kỹ thuật để tối ưu hóa các mô hình. Nói cách khác, Machine Learning sử dụng các mô hình mà chúng ta đã xây dựng và sử dụng dữ liệu trong thế giới thực để “học” cách tinh chỉnh các tham số của mô hình sao cho hữu ích nhất trong tình huống thực tế dựa trên dữ liệu đào tạo. Trong hướng dẫn này, chúng ta sẽ áp dụng học máy vào mô hình phân loại. Đừng lo lắng nếu bạn vẫn chưa hoàn toàn rõ ràng ngay bây giờ, khi kết thúc hướng dẫn, bạn sẽ biết chính xác tôi đang nói về điều gì

Tập huấn luyện vs Tập kiểm tra

Thuật toán Machine Learning điều chỉnh mô hình dựa trên tập dữ liệu huấn luyện. Dữ liệu huấn luyện là tập dữ liệu chứa tất cả các biến mà chúng ta có sẵn cũng như phân loại chính xác. Tập huấn luyện có thể được phát triển theo nhiều cách nhưng trong hướng dẫn này, chúng ta sẽ sử dụng tập huấn luyện được phân loại bởi một chuyên gia về con người. Điều quan trọng cần nhớ là các mô hình học máy chỉ tốt khi dữ liệu đào tạo. Dữ liệu đào tạo của bạn càng chính xác và bạn càng có nhiều dữ liệu thì càng tốt. Nói cách khác - rác vào, rác ra

Một tập kiểm tra thường là một tập con của dữ liệu huấn luyện trong đó nó cũng chứa tất cả các biến và phân loại chính xác. Sự khác biệt là ở cách chúng ta sử dụng nó. Mặc dù tập huấn luyện giúp phát triển mô hình, nhưng tập kiểm tra sẽ thử mô hình đó trong một tình huống thực tế và xem nó hoạt động tốt như thế nào. Có rất nhiều cách phức tạp để đo lỗi và kiểm tra các mô hình nhưng miễn là bạn nắm được ý tưởng cơ bản, chúng ta có thể tiếp tục

Mô hình phân loại

Mô hình phân loại chỉ đơn giản là một công cụ toán học để xác định danh mục hoặc loại của thứ gì đó mà bạn đang xử lý dựa trên một tập hợp các biến hoặc đầu vào. Ví dụ: nếu tôi muốn phân loại một con vật là mèo hay cá, tôi có thể sử dụng các biến như con vật đó có bơi hay không, nó có lông hay không và nó có ăn hay không để xác định nó thuộc loại nào. . Bạn sẽ nhận thấy hai điều. Thứ nhất, bạn càng có nhiều biến càng tốt. Với nhiều thông tin hơn, bạn có thể tự tin hơn rằng phân loại của mình là chính xác. Thứ hai, một số biến hữu ích hoặc mang tính dự đoán hơn những biến khác. Lấy ví dụ cuối cùng, con vật có ăn hay không. Người quan sát bình thường biết rằng cả cá và mèo đều ăn, vì vậy việc có phần dữ liệu này không hữu ích trong việc xác định loại động vật. Mục tiêu của học máy trong bối cảnh này là tạo ra mô hình phân loại hữu ích nhất với dữ liệu có sẵn và loại bỏ các đầu vào không cải thiện hiệu quả của mô hình

K hàng xóm gần nhất

K-Nearest Neighbors [KNN] là một loại Mô hình phân loại cụ thể. Trực giác rất đơn giản để hiểu. Mô hình lấy tất cả dữ liệu có sẵn về một điểm dữ liệu chưa biết và so sánh nó với tập dữ liệu huấn luyện để xác định điểm nào trong tập huấn luyện mà điểm chưa biết giống nhất hoặc gần nhất với. Ý tưởng là điểm dữ liệu chưa biết rất có thể sẽ thuộc cùng loại với các điểm dữ liệu đã biết mà nó giống nhất với. KNN chỉ đơn giản là một cách toán học để xác định sự giống nhau giữa hai điểm dữ liệu

Tập dữ liệu Iris

Đối với hướng dẫn này, chúng tôi sẽ sử dụng một bộ dữ liệu cổ điển được sử dụng để dạy học máy có tên là Bộ dữ liệu Iris. Đây là tập hợp dữ liệu về ba loài hoa Iris và bốn mẩu dữ liệu về chúng. chiều dài đài hoa, chiều rộng đài hoa, chiều dài cánh hoa và chiều rộng cánh hoa. Bộ dữ liệu đã được chuẩn bị để giúp người mới bắt đầu dễ dàng bắt đầu ngay. Bạn có thể tải xuống dữ liệu ở định dạng excel tương thích bằng cách nhấp vào “tải xuống zip” ở trên cùng bên phải và mở nội dung trong Excel

Chuẩn bị dữ liệu của chúng tôi

Như tôi đã đề cập, tập dữ liệu này có nghĩa là đơn giản để làm việc với. Mỗi cột trong số 4 cột đầu tiên [A-D] là một thứ nguyên hoặc tính năng của dữ liệu. Cột thứ năm, E, là giống hoặc loại hoa. Mỗi hàng là bản ghi hoặc điểm dữ liệu của chính nó. Như bạn có thể thấy, chúng tôi có 150 điểm dữ liệu đã biết để làm việc với

Chúng tôi có một quyết định quan trọng để thực hiện. làm cách nào để chúng tôi muốn tách tập dữ liệu này thành tập huấn luyện và tập kiểm tra. Với tập dữ liệu lớn hơn, chúng tôi có thể sử dụng các kỹ thuật tối ưu hóa để đưa ra quyết định này. Vì tập dữ liệu này nhỏ và dành cho người mới bắt đầu nên chúng tôi sẽ chia nó theo tỷ lệ 70/30 theo quy ước. Nói cách khác, chúng tôi sẽ sử dụng 70% dữ liệu hoặc 105 điểm dữ liệu làm tập huấn luyện và 45 điểm dữ liệu còn lại làm tập kiểm tra

Bây giờ chúng tôi sẽ sử dụng Excel để lấy mẫu ngẫu nhiên 70% dữ liệu. Trước tiên, hãy thêm một cột vào trang tính của bạn có tên là “Giá trị ngẫu nhiên” và sử dụng hàm RAND[] để chọn ngẫu nhiên một giá trị trong khoảng từ 0 đến 1. Hãy nhớ rằng hàm RAND[] sẽ chọn lại một số mới mỗi khi trang tính của bạn tính toán lại. Để tránh điều đó, sau khi tạo các số của mình, tôi sẽ sao chép chúng [Ctrl+C] và sau đó dán đặc biệt lên chúng dưới dạng giá trị [Ctrl+Shift+V] để chúng cố định. Chúng ta sẽ bắt đầu ở ô F2 và kéo xuống điểm dữ liệu cuối cùng

=RAND[]

Tiếp theo, tôi sẽ xếp hạng chúng từ 1 đến 150 bằng cách sử dụng hàm RANK[] của Excel, bắt đầu từ ô G2 như hình bên dưới và kéo tất cả xuống điểm dữ liệu cuối cùng. Đảm bảo khóa khung tham chiếu như được hiển thị bằng cách nhấn F4 hoặc thêm ký hiệu $ theo cách thủ công, nếu không công thức này sẽ không hoạt động như chúng tôi dự định

=RANK[F2, $F$2:$F$15]

Bây giờ chúng ta có một giá trị duy nhất từ ​​1 đến 150 cho mỗi điểm dữ liệu. Vì chúng tôi muốn có 105 giá trị cho tập huấn luyện của mình, nên chúng tôi sẽ thêm một cột nữa và chọn các giá trị được xếp hạng từ 1 đến 105 cho tập huấn luyện của mình bằng cách sử dụng hàm IF[] nhanh. Nếu không, chúng tôi sẽ thêm giá trị vào bộ thử nghiệm của chúng tôi. Một lần nữa, chúng ta sẽ bắt đầu từ H2 và kéo xuống điểm dữ liệu cuối cùng

=IF[G2

Chủ Đề