Làm thế nào để bạn tìm thấy chế độ trong số liệu thống kê trong python?

Giá trị trung bình, trung bình và chế độ là các chủ đề cơ bản của thống kê. Bạn có thể dễ dàng tính toán chúng bằng Python, có và không sử dụng các thư viện bên ngoài

Ba điều này là các biện pháp chính của xu hướng trung tâm. Xu hướng trung tâm cho chúng ta biết các giá trị “bình thường” hoặc “trung bình” của tập dữ liệu. Nếu bạn mới bắt đầu với khoa học dữ liệu, đây là hướng dẫn phù hợp với bạn

Mean, median, mode the three measurements of central tendency

Đến cuối hướng dẫn này, bạn sẽ

  • Hiểu khái niệm về giá trị trung bình, trung bình và chế độ
  • Có thể tạo các hàm mean, median và mode của riêng bạn trong Python
  • Sử dụng mô-đun thống kê của Python để nhanh chóng bắt đầu sử dụng các phép đo này

Nếu bạn muốn có phiên bản có thể tải xuống của các bài tập sau, vui lòng xem kho lưu trữ GitHub

Hãy tìm hiểu các cách khác nhau để tính giá trị trung bình, trung bình và chế độ

Tính giá trị trung bình bằng Python

Giá trị trung bình hoặc trung bình số học là thước đo xu hướng trung tâm được sử dụng nhiều nhất

Hãy nhớ rằng xu hướng trung tâm là một giá trị điển hình của một tập hợp dữ liệu

Tập dữ liệu là một tập hợp dữ liệu, do đó tập dữ liệu trong Python có thể là bất kỳ cấu trúc dữ liệu tích hợp nào sau đây

  • Danh sách, bộ dữ liệu và bộ. một bộ sưu tập các đối tượng
  • Dây. một bộ sưu tập các nhân vật
  • Từ điển. một tập hợp các cặp khóa-giá trị

Ghi chú. Mặc dù có các cấu trúc dữ liệu khác trong Python như hàng đợi hoặc ngăn xếp, nhưng chúng tôi sẽ chỉ sử dụng những cấu trúc có sẵn

Chúng ta có thể tính giá trị trung bình bằng cách cộng tất cả các giá trị của tập dữ liệu và chia kết quả cho số lượng giá trị. Ví dụ: nếu chúng ta có danh sách các số sau

[1, 2, 3, 4, 5, 6]

Giá trị trung bình hoặc trung bình sẽ là  3. 5 vì tổng của danh sách là 21 và độ dài của nó là 6. 21 chia cho 6 là 3. 5. Bạn có thể thực hiện phép tính này với phép tính dưới đây

(1 + 2 + 3 + 4 + 5 + 6) / 6 = 21

Trong hướng dẫn này, chúng tôi sẽ sử dụng các cầu thủ của một đội bóng rổ làm dữ liệu mẫu của chúng tôi

Tạo một hàm trung bình tùy chỉnh

Hãy bắt đầu bằng cách tính tuổi trung bình (trung bình) của các cầu thủ trong một đội bóng rổ. Tên của đội sẽ là “Pythonic Machines”

pythonic_machine_ages = [19, 22, 34, 26, 32, 30, 24, 24]

def mean(dataset):
    return sum(dataset) / len(dataset)

print(mean(pythonic_machine_ages))

Phá vỡ mã này

  • “pythonic_machine_ages” là danh sách có độ tuổi của các cầu thủ bóng rổ
  • Chúng tôi xác định hàm mean() trả về tổng của tập dữ liệu đã cho chia cho độ dài của tập dữ liệu đó
    • Hàm sum() trả về tổng (trớ trêu thay) của các giá trị của một lần lặp, trong trường hợp này là một danh sách. Hãy thử chuyển tập dữ liệu làm đối số, nó sẽ trả về 211
    • Hàm len() trả về độ dài của một lần lặp, nếu bạn chuyển tập dữ liệu cho nó, bạn sẽ nhận được 8
  • Chúng ta chuyển tuổi của đội bóng rổ cho hàm mean() và in kết quả

Nếu bạn kiểm tra đầu ra, bạn sẽ nhận được

26.375
# Because 211 / 8 = 26.375

Kết quả này thể hiện độ tuổi trung bình của các cầu thủ đội bóng rổ. Lưu ý cách số không xuất hiện trong tập dữ liệu nhưng mô tả chính xác độ tuổi của hầu hết người chơi

Sử dụng mean() từ Mô-đun thống kê Python

Tính toán các biện pháp của xu hướng trung tâm là một hoạt động phổ biến cho hầu hết các nhà phát triển. Đó là bởi vì mô-đun thống kê của Python cung cấp các hàm đa dạng để tính toán chúng, cùng với các chủ đề thống kê cơ bản khác

Vì nó là một phần của thư viện chuẩn Python nên bạn sẽ không cần cài đặt bất kỳ gói bên ngoài nào với PIP

Đây là cách bạn sử dụng mô-đun này

from statistics import mean

pythonic_machine_ages = [19, 22, 34, 26, 32, 30, 24, 24]

print(mean(pythonic_machine_ages))

Trong đoạn mã trên, bạn chỉ cần nhập hàm mean() từ mô-đun thống kê và chuyển tập dữ liệu cho nó làm đối số. Điều này sẽ trả về kết quả giống như chức năng tùy chỉnh mà chúng tôi đã xác định trong phần trước

26.375

Bây giờ bạn đã hiểu rõ khái niệm về giá trị trung bình, hãy tiếp tục với phép đo trung bình

Tìm trung vị trong Python

Trung vị là giá trị ở giữa của một tập dữ liệu được sắp xếp. Nó được sử dụng — một lần nữa — để cung cấp giá trị “điển hình” của một quần thể xác định

Trong lập trình, chúng ta có thể định nghĩa trung vị là giá trị phân tách một chuỗi thành hai phần — Nửa dưới và nửa trên —

Để tính trung bình, trước tiên, chúng ta cần sắp xếp tập dữ liệu. Chúng ta có thể làm điều này bằng thuật toán sắp xếp hoặc sử dụng hàm tích hợp sorted(). Bước thứ hai là xác định xem độ dài tập dữ liệu là số lẻ hay số chẵn. Tùy thuộc vào điều này một số quá trình sau đây

  • Số lẻ. Trung vị là giá trị ở giữa của tập dữ liệu
  • Thậm chí. Trung vị là tổng của hai giá trị ở giữa chia cho hai

Tiếp tục với tập dữ liệu về đội bóng rổ của chúng ta, hãy tính chiều cao trung bình của các cầu thủ theo cm

[181, 187, 196, 196, 198,  203, 207, 211, 215]
# Since the dataset is odd, we select the middle value
median = 198

Như bạn có thể thấy, vì độ dài tập dữ liệu là số lẻ nên chúng ta có thể lấy giá trị ở giữa làm trung vị. Tuy nhiên, điều gì sẽ xảy ra nếu một người chơi vừa nghỉ hưu?

Chúng ta sẽ cần tính trung bình lấy hai giá trị ở giữa của tập dữ liệu

[181, 187, 196, 198, 203, 207, 211, 215] 
# We select the two middle values, and divide them by 2
median = (198 + 203) / 2
median = 200.5

Tạo một chức năng trung bình tùy chỉnh

Hãy triển khai khái niệm trên thành một hàm Python

Hãy nhớ ba bước chúng ta cần làm theo để lấy trung vị của tập dữ liệu

  • Sắp xếp tập dữ liệu. Chúng ta có thể làm điều này với hàm sorted()
  • Xác định xem nó là số lẻ hay số chẵn. Chúng ta có thể làm điều này bằng cách lấy độ dài của tập dữ liệu và sử dụng toán tử modulo (%)
  • Trả về trung vị dựa trên từng trường hợp
    • Số lẻ. Trả về giá trị trung bình
    • Thậm chí. Trả về giá trị trung bình của hai giá trị ở giữa

Điều đó sẽ dẫn đến chức năng sau

________số 8

In kết quả của bộ dữ liệu của chúng tôi

print(median(pythonic_machines_heights))
print(median(after_retirement))

đầu ra

(1 + 2 + 3 + 4 + 5 + 6) / 6 = 21
0

Lưu ý cách chúng tôi tạo biến dữ liệu trỏ đến cơ sở dữ liệu đã sắp xếp khi bắt đầu hàm. Mặc dù các danh sách trên đã được sắp xếp, nhưng chúng tôi muốn tạo một hàm có thể sử dụng lại, do đó, việc sắp xếp tập dữ liệu mỗi khi hàm được gọi

Chỉ mục lưu trữ giá trị ở giữa — hoặc giá trị ở giữa — của tập dữ liệu, bằng cách sử dụng toán tử chia số nguyên. Chẳng hạn, nếu chúng ta chuyển danh sách “pythonic_machine_heights” thì nó sẽ có giá trị là 4

Hãy nhớ rằng trong Python các chỉ mục trình tự bắt đầu từ 0, đó là bởi vì chúng ta có thể trả về chỉ mục ở giữa của một danh sách, với phép chia số nguyên

Sau đó, chúng tôi kiểm tra xem độ dài của tập dữ liệu có phải là số lẻ hay không bằng cách so sánh kết quả của phép toán modulo với bất kỳ giá trị nào khác 0. Nếu điều kiện là đúng, chẳng hạn, chúng tôi trả về phần tử ở giữa với danh sách “pythonic_machine_heights”

(1 + 2 + 3 + 4 + 5 + 6) / 6 = 21
1

Mặt khác, nếu tập dữ liệu là số chẵn, chúng tôi trả về tổng của các giá trị ở giữa chia cho hai. Lưu ý rằng data[index -1] cung cấp cho chúng tôi điểm giữa dưới của tập dữ liệu, trong khi data[index] cung cấp cho chúng tôi điểm giữa trên

Sử dụng median() từ Python Statistic Module

Cách này đơn giản hơn nhiều vì chúng tôi đang sử dụng một chức năng đã tồn tại từ mô-đun thống kê

Cá nhân tôi, nếu có thứ gì đó đã được xác định sẵn cho tôi, tôi sẽ sử dụng nó vì nguyên tắc KHÔ —Không lặp lại chính mình — (trong trường hợp này, không lặp lại mã của người khác)

Bạn có thể tính giá trị trung bình của các bộ dữ liệu trước đó bằng đoạn mã sau

(1 + 2 + 3 + 4 + 5 + 6) / 6 = 21
2

đầu ra

(1 + 2 + 3 + 4 + 5 + 6) / 6 = 21
0

Tính toán chế độ trong Python

Chế độ là giá trị thường xuyên nhất trong tập dữ liệu. Chúng ta có thể coi đó là nhóm "nổi tiếng" của một trường học, có thể đại diện cho một tiêu chuẩn cho tất cả học sinh

Một ví dụ về chế độ có thể là doanh số hàng ngày của một cửa hàng công nghệ. Chế độ của tập dữ liệu đó sẽ là sản phẩm được bán nhiều nhất trong một ngày cụ thể

(1 + 2 + 3 + 4 + 5 + 6) / 6 = 21
4

Như bạn có thể hiểu, chế độ của tập dữ liệu trên là “máy tính xách tay” vì nó là giá trị thường xuyên nhất trong danh sách

Điều thú vị về chế độ là tập dữ liệu không được ở dạng số. Chẳng hạn, chúng ta có thể làm việc với chuỗi

Hãy phân tích doanh số bán hàng của một ngày khác

(1 + 2 + 3 + 4 + 5 + 6) / 6 = 21
5

Bộ dữ liệu trên có hai chế độ. "chuột" và "tai nghe" vì cả hai đều có tần số là hai. Điều này có nghĩa là nó là một bộ dữ liệu đa phương thức

Điều gì sẽ xảy ra nếu chúng ta không thể tìm thấy chế độ trong tập dữ liệu, như tập dữ liệu bên dưới?

(1 + 2 + 3 + 4 + 5 + 6) / 6 = 21
6

Đây được gọi là phân phối đồng đều, về cơ bản, nó có nghĩa là không có chế độ nào trong tập dữ liệu

Bây giờ bạn đã nắm bắt nhanh về khái niệm chế độ, hãy tính toán nó bằng Python

Tạo chức năng Chế độ tùy chỉnh

Chúng ta có thể coi tần suất của một giá trị là một cặp khóa-giá trị, hay nói cách khác là một từ điển Python

Tóm tắt lại phép loại suy bóng rổ, chúng ta có thể sử dụng hai bộ dữ liệu để làm việc với. Điểm mỗi trận đấu và tài trợ giày thể thao của một số người chơi

Để tìm chế độ trước tiên, chúng ta cần tạo một từ điển tần số với từng giá trị có trong tập dữ liệu, sau đó lấy tần số tối đa và trả về tất cả các phần tử có tần số đó

Hãy dịch mã này thành mã

(1 + 2 + 3 + 4 + 5 + 6) / 6 = 21
7

Kiểm tra kết quả chuyển hai danh sách dưới dạng đối số

(1 + 2 + 3 + 4 + 5 + 6) / 6 = 21
8

đầu ra

(1 + 2 + 3 + 4 + 5 + 6) / 6 = 21
9

Như bạn có thể thấy, câu lệnh in đầu tiên cho chúng ta một chế độ duy nhất, trong khi câu lệnh in thứ hai trả về nhiều chế độ

Giải thích sâu hơn đoạn mã trên

  • Chúng tôi tuyên bố một từ điển tần suất
  • Chúng tôi lặp lại tập dữ liệu để tạo biểu đồ - thuật ngữ thống kê cho một tập hợp bộ đếm (hoặc tần số) -
    • Nếu khóa được tìm thấy trong từ điển thì nó sẽ thêm một vào giá trị
    • Nếu không tìm thấy, chúng tôi tạo một cặp khóa-giá trị với giá trị là một
  • Biến most_frequent lưu trữ — trớ trêu thay — giá trị lớn nhất (không phải khóa) của từ điển tần suất
  • Chúng tôi trả về biến chế độ bao gồm tất cả các khóa trong từ điển tần suất có tần suất cao nhất

Lưu ý tầm quan trọng của việc đặt tên biến để viết mã có thể đọc được

Sử dụng mode() và multimode() từ Python Statistic Module

Một lần nữa, mô-đun thống kê cung cấp cho chúng ta một cách nhanh chóng để thực hiện các thao tác thống kê cơ bản

Chúng ta có thể sử dụng hai chức năng. chế độ() và đa chế độ()

pythonic_machine_ages = [19, 22, 34, 26, 32, 30, 24, 24]

def mean(dataset):
    return sum(dataset) / len(dataset)

print(mean(pythonic_machine_ages))
0

Đoạn mã trên nhập cả hai chức năng và xác định bộ dữ liệu mà chúng tôi đang làm việc với

Ở đây có sự khác biệt nhỏ. Hàm mode() trả về chế độ đầu tiên mà nó gặp phải, trong khi hàm multimode() trả về một danh sách có các giá trị thường xuyên nhất trong tập dữ liệu

Do đó, chúng ta có thể nói hàm tùy chỉnh mà chúng ta đã xác định thực sự là một hàm multimode()

pythonic_machine_ages = [19, 22, 34, 26, 32, 30, 24, 24]

def mean(dataset):
    return sum(dataset) / len(dataset)

print(mean(pythonic_machine_ages))
1

đầu ra

pythonic_machine_ages = [19, 22, 34, 26, 32, 30, 24, 24]

def mean(dataset):
    return sum(dataset) / len(dataset)

print(mean(pythonic_machine_ages))
2

Ghi chú. Trong Python  3. 8 trở lên, hàm mode() trả về chế độ đầu tiên mà nó tìm thấy. Nếu bạn có phiên bản cũ hơn, bạn sẽ gặp lỗi StatisticsError

Sử dụng hàm multimode()

pythonic_machine_ages = [19, 22, 34, 26, 32, 30, 24, 24]

def mean(dataset):
    return sum(dataset) / len(dataset)

print(mean(pythonic_machine_ages))
3

đầu ra

(1 + 2 + 3 + 4 + 5 + 6) / 6 = 21
9

Tóm lại

Xin chúc mừng. Nếu bạn đã theo dõi đến đây, thì bạn đã học cách tính giá trị trung bình, trung vị và mốt, các phép đo xu hướng trung tâm chính

Mặc dù bạn có thể xác định các hàm tùy chỉnh của mình để tìm giá trị trung bình, trung vị và chế độ, nhưng bạn nên sử dụng mô-đun thống kê vì đây là một phần của thư viện chuẩn và bạn không cần cài đặt gì để bắt đầu sử dụng mô-đun này

Chế độ thống kê trong python là gì?

Số liệu thống kê. phương thức mode() tính toán chế độ (xu hướng trung tâm) của tập dữ liệu số hoặc danh nghĩa đã cho .

Công thức tính mode trong thống kê là gì?

Trong thống kê, công thức mode được định nghĩa là công thức tính toán mode của một tập hợp dữ liệu nhất định. Chế độ đề cập đến giá trị xảy ra lặp lại trong một tập hợp nhất định và chế độ khác nhau đối với các tập dữ liệu được nhóm và chưa được nhóm. Chế độ = L+h(fm−f1)(fm−f1)−(fm−f2) L + h ( f m − f 1 ) ( f m − f 1 ) − ( f m − f