Theta trong trăn

Nhận toàn quyền truy cập vào Thuật toán và cấu trúc dữ liệu Python cũng như hơn 60.000 đầu sách khác, với bản dùng thử miễn phí 10 ngày của O'Reilly

Ngoài ra còn có các sự kiện trực tuyến trực tiếp, nội dung tương tác, tài liệu chuẩn bị chứng nhận, v.v.

nhập toán

#Tìm 2 mũ 5

môn Toán. bột [2,5]

#Tìm căn bậc hai của 32

Căn bậc hai = toán học. sqrt[32]

print["Căn bậc hai của 32. {}". định dạng [Căn bậc hai]]

#Tìm GCD của 32, 58

số nguyên1 = 32

số nguyên2 = 58

gcdValue=toán học. gcd[32, 58]

print["GCD của số {} {}. {}". định dạng[số nguyên1,số nguyên2,gcdValue]]

#Tìm trần của 9. 99

findCeilFor = 9. 99

trần nhà = toán học. trần nhà [findCeilFor]

print["Trần của {}. {}". định dạng[findCeilFor,trần]]

#Tìm tầng 100. 25

findFloorFor = 100. 25

tầng = toán học. tầng [100. 25]

print["Tầng của {}. {}". định dạng [findFloorFor,sàn]]

Tìm hiểu các khái niệm về hồi quy tuyến tính và phát triển thuật toán hồi quy tuyến tính hoàn chỉnh từ đầu trong python

Thuật toán học máy cơ bản nhất phải là thuật toán hồi quy tuyến tính với một biến duy nhất. Ngày nay, có rất nhiều thuật toán, thư viện và kỹ thuật học máy tiên tiến có sẵn mà hồi quy tuyến tính dường như không quan trọng. Nhưng nó luôn luôn là một ý tưởng tốt để tìm hiểu những điều cơ bản. Bằng cách đó bạn sẽ nắm bắt các khái niệm rất rõ ràng. Trong bài viết này, tôi sẽ giải thích thuật toán hồi quy tuyến tính từng bước

Ý tưởng và Công thức

Hồi quy tuyến tính sử dụng ý tưởng rất cơ bản về dự đoán. Đây là công thức

Y = C + BX

Tất cả chúng ta đều học công thức này ở trường. Chỉ để nhắc nhở bạn, đây là phương trình của một đường thẳng. Ở đây, Y là biến phụ thuộc, B là hệ số góc và C là hệ số chặn. Thông thường, đối với hồi quy tuyến tính, nó được viết là

Ở đây, 'h' là giả thuyết hoặc biến phụ thuộc được dự đoán, X là tính năng đầu vào và theta0 và theta1 là các hệ số. Các giá trị theta được khởi tạo ngẫu nhiên để bắt đầu với. Sau đó, sử dụng giảm dần độ dốc, chúng tôi sẽ cập nhật giá trị theta để giảm thiểu hàm chi phí. Dưới đây là lời giải thích về hàm chi phí và độ dốc giảm dần

Hàm chi phí và giảm dần

Hàm chi phí xác định dự đoán cách biến phụ thuộc ban đầu bao xa. Đây là công thức cho điều đó

Ý tưởng của bất kỳ thuật toán học máy nào là giảm thiểu hàm chi phí sao cho giả thuyết gần với biến phụ thuộc ban đầu. Chúng ta cần tối ưu hóa giá trị theta để làm điều đó. Nếu chúng ta lấy đạo hàm riêng của hàm chi phí dựa trên theta0 và theta1 tương ứng, chúng ta sẽ nhận được độ dốc giảm dần. Để cập nhật các giá trị theta, chúng ta cần khấu trừ độ dốc gốc từ các giá trị theta tương ứng

Sau đạo hàm riêng, các công thức trên sẽ trở thành

Ở đây, m là số dữ liệu huấn luyện và alpha là tốc độ học. Tôi đang nói về hồi quy tuyến tính một biến. Đó là lý do tại sao tôi chỉ có hai giá trị theta. Nếu có nhiều biến, sẽ có các giá trị theta cho mỗi biến

Ví dụ làm việc

Bộ dữ liệu tôi sẽ sử dụng là từ khóa học máy của Andrew Ng ở Coursera. Đây là quá trình triển khai hồi quy tuyến tính từng bước trong Python

  1. Nhập các gói và tập dữ liệu
import numpy as np
import pandas as pd
df = pd.read_csv['ex1data1.txt', header = None]
df.head[]

Trong tập dữ liệu này, cột 0 là tính năng đầu vào và cột 1 là biến đầu ra hoặc biến phụ thuộc. Chúng tôi sẽ sử dụng cột 0 để dự đoán cột 1 bằng công thức đường thẳng ở trên

2. Vẽ cột 1 so với cột 0

Mối quan hệ giữa biến đầu vào và biến đầu ra là tuyến tính. Hồi quy tuyến tính hoạt động tốt nhất khi mối quan hệ là tuyến tính

3. Khởi tạo các giá trị theta. Tôi đang khởi tạo các giá trị theta là số không. Nhưng bất kỳ giá trị nào khác cũng sẽ hoạt động tốt

theta = [0,0]

4. Xác định giả thuyết và hàm chi phí theo các công thức đã thảo luận trước đây

def hypothesis[theta, X]:
return theta[0] + theta[1]*X
def cost_calc[theta, X, y]:
return [1/2*m] * np.sum[[hypothesis[theta, X] - y]**2]

5. Tính số lượng dữ liệu huấn luyện theo độ dài của DataFrame. Và sau đó xác định chức năng cho độ dốc giảm dần. Trong chức năng này, chúng tôi sẽ cập nhật các giá trị theta cho đến khi hàm chi phí là tối thiểu. Nó có thể mất bất kỳ số lần lặp lại. Trong mỗi lần lặp, nó sẽ cập nhật các giá trị theta và với mỗi giá trị theta được cập nhật, chúng tôi sẽ tính toán chi phí để theo dõi chi phí

m = len[df]
def gradient_descent[theta, X, y, epoch, alpha]:
cost = []
i = 0
while i < epoch:
hx = hypothesis[theta, X]
theta[0] -= alpha*[sum[hx-y]/m]
theta[1] -= [alpha * np.sum[[hx - y] * X]]/m
cost.append[cost_calc[theta, X, y]]
i += 1
return theta, cost

6. Cuối cùng, xác định chức năng dự đoán. Nó sẽ lấy theta đã cập nhật từ hàm giảm dần độ dốc và dự đoán giả thuyết hoặc biến đầu ra được dự đoán

def predict[theta, X, y, epoch, alpha]:
theta, cost = gradient_descent[theta, X, y, epoch, alpha]
return hypothesis[theta, X], cost, theta

7. Sử dụng chức năng dự đoán, tìm giả thuyết, chi phí và các giá trị theta được cập nhật. Tôi chọn tỷ lệ học tập là 0. 01 và tôi sẽ chạy thuật toán này trong 2000 kỷ nguyên hoặc số lần lặp lại

y_predict, cost, theta = predict[theta, df[0], df[1], 2000, 0.01]

Các giá trị theta cuối cùng là -3. 79 và 1. 18

8. Vẽ y ban đầu và giả thuyết hoặc y dự đoán trong cùng một biểu đồ

%matplotlib inline
import matplotlib.pyplot as plt
plt.figure[]
plt.scatter[df[0], df[1], label = 'Original y']
plt.scatter[df[0], y_predict, label = 'predicted y']
plt.legend[loc = "upper left"]
plt.xlabel["input feature"]
plt.ylabel["Original and Predicted Output"]
plt.show[]

Biểu đồ giả thuyết là một đường thẳng như mong đợi từ công thức và đường thẳng đi qua ở vị trí tối ưu

9. Hãy nhớ rằng, chúng tôi đã theo dõi hàm chi phí trong mỗi lần lặp lại. Hãy vẽ đồ thị hàm chi phí

plt.figure[]
plt.scatter[range[0, len[cost]], cost]
plt.show[]

Như tôi đã đề cập trước đây, mục đích của chúng tôi là tối ưu hóa các giá trị theta để giảm thiểu chi phí. Như bạn có thể thấy từ biểu đồ này, chi phí ban đầu giảm mạnh và sau đó trở nên ổn định. Điều đó có nghĩa là các giá trị theta được tối ưu hóa chính xác như chúng tôi mong đợi

θ trong Python là gì?

Theta [𝜭] là các chữ cái toán học Hy Lạp thường được sử dụng và có xác suất lặp lại cao hơn. Trong bài viết này, chúng ta sẽ thêm 𝜭 bằng một lệnh trong matplotlib. plt. văn bản [3, 0. 4, r'$\theta=100$'] #Thêm 𝜭 dưới dạng văn bản. plt. title['Thanh lỗi với 'r'$\theta=100$'] #Thêm 𝜭 vào tiêu đề của hình.

Làm cách nào để in Unicode bằng Python?

Để in ký tự Unicode trong Python, chúng ta có thể sử dụng chuỗi thoát \u . Chúng ta có thể sử dụng chuỗi thoát \u để in ký tự Unicode trong Python. Chúng ta có thể chỉ định điểm mã với chuỗi này để hiển thị ký tự.

Ký tự Unicode trong Python là gì?

Kiểu chuỗi của Python sử dụng Tiêu chuẩn Unicode để biểu thị các ký tự, cho phép các chương trình Python hoạt động với tất cả các ký tự có thể khác nhau này. Unicode [https. //www. unicode. org/] là một đặc tả nhằm mục đích liệt kê mọi ký tự được sử dụng bởi ngôn ngữ của con người và cung cấp cho mỗi ký tự mã duy nhất của nó .

Chủ Đề