Review Theta trong trăn
Mẹo Hướng dẫn Theta trong trăn Mới Nhất
Lê Hoàng Hưng đang tìm kiếm từ khóa Theta trong trăn được Update vào lúc : 2022-12-27 16:44:04 . Với phương châm chia sẻ Bí quyết về trong nội dung bài viết một cách Chi Tiết 2022. Nếu sau khi đọc tài liệu vẫn ko hiểu thì hoàn toàn có thể lại phản hồi ở cuối bài để Ad lý giải và hướng dẫn lại nha.Nhận toàn quyền truy cập vào Thuật toán và cấu trúc tài 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
Nội dung chính Show- Tìm hiểu những 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 hảo nhất từ đầu trong pythonÝ tưởng và Công thứcHàm ngân sách và giảm dầnVí dụ làm việcθ trong Python là gì?Làm cách nào để in Unicode bằng Python?Ký tự Unicode trong Python là gì?
Ngoài ra còn tồn tại những sự kiện trực tuyến trực tiếp, nội dung tương tác, tài liệu sẵn sàng sẵn sàng ghi 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 những 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 hảo nhất 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 vẫ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 những khái niệm rất rõ ràng. Trong nội dung bài viết này, tôi sẽ lý giải 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ự kiến. Đây là công thức
Y = C + BX
Tất cả 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à thông số góc và C là thông 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ự kiến, X là tính năng đầu vào và theta0 và theta1 là những thông số. Các giá trị theta được khởi tạo ngẫu nhiên để khởi đầu với. Sau đó, sử dụng giảm dần độ dốc, chúng tôi sẽ update giá trị theta để giảm thiểu hàm ngân sách. Dưới đây là lời lý giải về hàm ngân sách và độ dốc giảm dần
Hàm ngân sách và giảm dần
Hàm ngân sách xác định Dự kiế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 ngân sách 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 tất cả chúng ta lấy đạo hàm riêng của hàm ngân sách nhờ vào theta0 và theta1 tương ứng, tất cả chúng ta sẽ nhận được độ dốc giảm dần. Để update những giá trị theta, tất cả chúng ta cần khấu trừ độ dốc gốc từ những giá trị theta tương ứng
Sau đạo hàm riêng, những công thức trên sẽ trở thành
Ở đây, m là số tài 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à nguyên do tại sao tôi chỉ có hai giá trị theta. Nếu có nhiều biến, sẽ có những giá trị theta cho từng biến
Ví dụ thao tác
Bộ tài 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
Nhập những gói và tập dữ liệuimport numpy as npimport pandas as pd
df = pd.read_csv('ex1data1.txt', header = None)
df.head()
Trong tập tài 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ự kiế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 và sinh hoạt giải trí tốt nhất lúc quan hệ là tuyến tính
3. Khởi tạo những giá trị theta. Tôi đang khởi tạo những giá trị theta là số không. Nhưng bất kỳ giá trị nào khác cũng tiếp tục hoạt động và sinh hoạt giải trí tốt
theta = [0,0]4. Xác định giả thuyết và hàm ngân sách theo những công thức đã thảo luận trước đây
def hypothesis(theta, X):return theta[0] + theta[1]*Xdef cost_calc(theta, X, y):
return (1/2*m) * np.sum((hypothesis(theta, X) - y)**2)
5. Tính số lượng tài liệu huấn luyện theo độ dài của DataFrame. Và sau đó xác định hiệu suất cao cho độ dốc giảm dần. Trong hiệu suất cao này, chúng tôi sẽ update những giá trị theta cho tới lúc hàm ngân sách là tối thiểu. Nó hoàn toàn có thể mất bất kỳ số lần lặp lại. Trong mỗi lần lặp, nó sẽ update những giá trị theta và với mỗi giá trị theta được update, chúng tôi sẽ tính toán ngân sách để theo dõi ngân sách
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 hiệu suất cao Dự kiến. Nó sẽ lấy theta đã update từ hàm giảm dần độ dốc và Dự kiến giả thuyết hoặc biến đầu ra được Dự kiế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 hiệu suất cao Dự kiến, tìm giả thuyết, ngân sách và những giá trị theta được update. 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 ở đầu cuối là -3. 79 và 1. 18
8. Vẽ y ban đầu và giả thuyết hoặc y Dự kiến trong cùng một biểu đồ
%matplotlib inlineimport 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 ngân sách trong mỗi lần lặp lại. Hãy vẽ đồ thị hàm ngân sách
plt.figure()plt.scatter(range(0, len(cost)), cost)
plt.show()
Như tôi đã đề cập trước đây, mục tiêu của chúng tôi là tối ưu hóa những giá trị theta để giảm thiểu ngân sách. Như bạn hoàn toàn có thể thấy từ biểu đồ này, ngân sách ban đầu tụt giảm và sau đó trở nên ổn định. Điều đó nghĩa là những giá trị theta được tối ưu hóa đúng chuẩn như chúng tôi mong đợi
Post a Comment