Hướng dẫn multivariate non-linear regression python sklearn - hồi quy đa biến phi tuyến tính python sklearn
Giới thiệuHồi quy là kỹ thuật học máy được giám sát dự đoán kết quả liên tục. Chủ yếu có hai loại thuật toán hồi quy - tuyến tính và phi tuyến. Mặc dù các mô hình tuyến tính là hữu ích, chúng dựa vào giả định về mối quan hệ tuyến tính giữa các biến độc lập và phụ thuộc. Trong các thiết lập kinh doanh thực sự, giả định này thường khó đáp ứng. Đây là nơi các thuật toán hồi quy phi tuyến tính xuất hiện trong ảnh có thể nắm bắt được sự phi tuyến tính trong dữ liệu. Show
Trong hướng dẫn này, trọng tâm sẽ là cây hồi quy và rừng ngẫu nhiên, là các thuật toán phi tuyến tính dựa trên cây. Như mọi khi, bước đầu tiên là hiểu tuyên bố vấn đề. Báo cáo vấn đềTrong hướng dẫn này, chúng tôi sẽ cố gắng xây dựng các thuật toán hồi quy để dự đoán thất nghiệp trong một nền kinh tế. Dữ liệu được sử dụng trong dự án này được sản xuất từ dữ liệu chuỗi thời gian kinh tế của Hoa Kỳ có sẵn từ http://research.stlouisfed.org/fred2. Dữ liệu chứa 574 hàng và 5 biến, như được mô tả dưới đây:
Số liệu đánh giáChúng tôi sẽ đánh giá hiệu suất của mô hình bằng hai số liệu - giá trị bình phương R và lỗi bình phương trung bình gốc (RMSE). Lý tưởng nhất là RMSE thấp hơn và các giá trị R-bình phương cao hơn là dấu hiệu của một mô hình tốt. Các bướcTrong hướng dẫn này, chúng tôi sẽ làm theo các bước sau: Bước 1 - Tải các thư viện và mô -đun cần thiết. Bước 2 - Tải dữ liệu và thực hiện kiểm tra dữ liệu cơ bản. Bước 3 - Tạo mảng cho các tính năng và biến phản hồi. Bước 4 - Tạo bộ dữ liệu đào tạo và kiểm tra. Bước 5 - Xây dựng, dự đoán và đánh giá các mô hình - cây quyết định và rừng ngẫu nhiên. Các phần sau sẽ bao gồm các bước này. Bước 1 - Tải các thư viện và mô -đun cần thiết
Python Bước 2 - Đọc dữ liệu và thực hiện kiểm tra dữ liệu cơ bảnDòng mã đầu tiên đọc trong dữ liệu dưới dạng gấu trúc DataFrame, trong khi dòng thứ hai in hình dạng - 574 quan sát của 5 biến. Dòng thứ ba đưa ra số liệu thống kê tóm tắt của các biến số. Dân số trung bình là 257 triệu, trong khi thất nghiệp trung bình ở mức 7,8 triệu. Ngoài ra, không có giá trị bị thiếu, vì tất cả các biến có 574 'đếm' bằng số lượng bản ghi trong dữ liệu. Một quan sát quan trọng khác là sự khác biệt về quy mô của các biến. Trong khi dân số có một khoảng từ 198 đến 321 triệu; Tỷ lệ tiết kiệm cá nhân, 'PSAVERT', có phạm vi từ 1,9 đến 17 phần trăm. Sự khác biệt này trong thang đo cần phải được chuẩn hóa.
Python
Bước 2 - Đọc dữ liệu và thực hiện kiểm tra dữ liệu cơ bảnDòng mã đầu tiên đọc trong dữ liệu dưới dạng gấu trúc DataFrame, trong khi dòng thứ hai in hình dạng - 574 quan sát của 5 biến. Dòng thứ ba đưa ra số liệu thống kê tóm tắt của các biến số. Dân số trung bình là 257 triệu, trong khi thất nghiệp trung bình ở mức 7,8 triệu. Ngoài ra, không có giá trị bị thiếu, vì tất cả các biến có 574 'đếm' bằng số lượng bản ghi trong dữ liệu. Một quan sát quan trọng khác là sự khác biệt về quy mô của các biến. Trong khi dân số có một khoảng từ 198 đến 321 triệu; Tỷ lệ tiết kiệm cá nhân, 'PSAVERT', có phạm vi từ 1,9 đến 17 phần trăm. Sự khác biệt này trong thang đo cần phải được chuẩn hóa. Bước 3 - Tạo mảng cho các tính năng và biến phản hồi
Python
Bước 2 - Đọc dữ liệu và thực hiện kiểm tra dữ liệu cơ bảnDòng mã đầu tiên đọc trong dữ liệu dưới dạng gấu trúc DataFrame, trong khi dòng thứ hai in hình dạng - 574 quan sát của 5 biến. Dòng thứ ba đưa ra số liệu thống kê tóm tắt của các biến số.
Python Bước 2 - Đọc dữ liệu và thực hiện kiểm tra dữ liệu cơ bảnDòng mã đầu tiên đọc trong dữ liệu dưới dạng gấu trúc DataFrame, trong khi dòng thứ hai in hình dạng - 574 quan sát của 5 biến. Dòng thứ ba đưa ra số liệu thống kê tóm tắt của các biến số. Dân số trung bình là 257 triệu, trong khi thất nghiệp trung bình ở mức 7,8 triệu. Ngoài ra, không có giá trị bị thiếu, vì tất cả các biến có 574 'đếm' bằng số lượng bản ghi trong dữ liệu. Một quan sát quan trọng khác là sự khác biệt về quy mô của các biến. Trong khi dân số có một khoảng từ 198 đến 321 triệu; Tỷ lệ tiết kiệm cá nhân, 'PSAVERT', có phạm vi từ 1,9 đến 17 phần trăm. Sự khác biệt này trong thang đo cần phải được chuẩn hóa.Bước 3 - Tạo mảng cho các tính năng và biến phản hồi Quy trình công việc cơ bản của cây quyết định như sau: Quá trình mô hình hóa bắt đầu tại nút gốc, đại diện cho toàn bộ dữ liệu. Điều này được chia thành hai hoặc nhiều nút phụ, còn được gọi là tách. Quá trình phân tách này tiếp tục cho đến khi tiêu chí chia tách được đáp ứng và nút phụ nơi việc chia tách xảy ra được gọi là nút quyết định. Một khi tiêu chí chia tách được đáp ứng, các nút không phân chia thêm nữa; Các nút như vậy được gọi là nút lá hoặc đầu cuối. Chúng ta cũng có thể loại bỏ các nút phụ thông qua quá trình gọi là cắt tỉa.Root Node, which represents the entire data. This is divided into two or more sub-nodes, also referred to as splitting. This process of splitting continues until the splitting criterion is met, and the sub-node where splitting happens is called a decision node. Once the splitting criterion is met, the nodes do not split any further; such nodes are called a Leaf or Terminal node. We can also remove sub-nodes through the process called Pruning. Bây giờ chúng tôi sẽ tạo ra một mô hình hồi quy giỏ hàng bằng cách sử dụng lớp ra quyết định. Bước đầu tiên là khởi tạo thuật toán được thực hiện trong dòng mã đầu tiên bên dưới. Dòng thứ hai phù hợp với mô hình trên bộ đào tạo. Các đối số được sử dụng là MAX_DEPTH, biểu thị độ sâu tối đa của cây và min_samples_leaf, cho thấy số lượng mẫu tối thiểu cần phải ở nút lá.max_depth, which indicates the maximum depth of the tree, and min_samples_leaf, that indicates the minimum number of samples required to be at a leaf node.
Python
Khi mô hình được xây dựng trên bộ đào tạo, chúng ta có thể đưa ra dự đoán. Dòng mã đầu tiên dưới đây dự đoán trên bộ đào tạo. Các dòng mã thứ hai và thứ ba in các số liệu đánh giá - RMSE và R -bình phương - trên bộ đào tạo. Các bước tương tự được lặp lại trên bộ dữ liệu thử nghiệm ở dòng thứ tư đến thứ sáu.
Python
Khi mô hình được xây dựng trên bộ đào tạo, chúng ta có thể đưa ra dự đoán. Dòng mã đầu tiên dưới đây dự đoán trên bộ đào tạo. Các dòng mã thứ hai và thứ ba in các số liệu đánh giá - RMSE và R -bình phương - trên bộ đào tạo. Các bước tương tự được lặp lại trên bộ dữ liệu thử nghiệm ở dòng thứ tư đến thứ sáu. Đầu ra trên cho thấy RMSE là 1.176.404 cho dữ liệu tàu và 1.180.376 cho dữ liệu thử nghiệm. Mặt khác, giá trị R-bình phương là 80,7 % cho dữ liệu tàu và 78,5 % cho dữ liệu thử nghiệm. Đây là những con số khá, nhưng cải thiện nhiều hơn có thể được thực hiện bằng cách điều chỉnh tham số. Chúng tôi sẽ thay đổi các giá trị của tham số, 'MAX_DEPTH', để xem điều đó ảnh hưởng đến hiệu suất mô hình như thế nào. 0Python Khi mô hình được xây dựng trên bộ đào tạo, chúng ta có thể đưa ra dự đoán. Dòng mã đầu tiên dưới đây dự đoán trên bộ đào tạo. Các dòng mã thứ hai và thứ ba in các số liệu đánh giá - RMSE và R -bình phương - trên bộ đào tạo. Các bước tương tự được lặp lại trên bộ dữ liệu thử nghiệm ở dòng thứ tư đến thứ sáu. 1Python 2Khi mô hình được xây dựng trên bộ đào tạo, chúng ta có thể đưa ra dự đoán. Dòng mã đầu tiên dưới đây dự đoán trên bộ đào tạo. Các dòng mã thứ hai và thứ ba in các số liệu đánh giá - RMSE và R -bình phương - trên bộ đào tạo. Các bước tương tự được lặp lại trên bộ dữ liệu thử nghiệm ở dòng thứ tư đến thứ sáu. Đầu ra trên cho thấy RMSE là 1.176.404 cho dữ liệu tàu và 1.180.376 cho dữ liệu thử nghiệm. Mặt khác, giá trị R-bình phương là 80,7 % cho dữ liệu tàu và 78,5 % cho dữ liệu thử nghiệm. Đây là những con số khá, nhưng cải thiện nhiều hơn có thể được thực hiện bằng cách điều chỉnh tham số. Chúng tôi sẽ thay đổi các giá trị của tham số, 'MAX_DEPTH', để xem điều đó ảnh hưởng đến hiệu suất mô hình như thế nào. 3Python 4Khi mô hình được xây dựng trên bộ đào tạo, chúng ta có thể đưa ra dự đoán. Dòng mã đầu tiên dưới đây dự đoán trên bộ đào tạo. Các dòng mã thứ hai và thứ ba in các số liệu đánh giá - RMSE và R -bình phương - trên bộ đào tạo. Các bước tương tự được lặp lại trên bộ dữ liệu thử nghiệm ở dòng thứ tư đến thứ sáu. Đầu ra trên cho thấy RMSE là 1.176.404 cho dữ liệu tàu và 1.180.376 cho dữ liệu thử nghiệm. Mặt khác, giá trị R-bình phương là 80,7 % cho dữ liệu tàu và 78,5 % cho dữ liệu thử nghiệm. Đây là những con số khá, nhưng cải thiện nhiều hơn có thể được thực hiện bằng cách điều chỉnh tham số. Chúng tôi sẽ thay đổi các giá trị của tham số, 'MAX_DEPTH', để xem điều đó ảnh hưởng đến hiệu suất mô hình như thế nào.Bốn dòng mã đầu tiên bên dưới khởi tạo và phù hợp với các cây hồi quy với tham số 'MAX_DEPTH' tương ứng là 2 và 5. Dòng mã thứ năm và thứ sáu tạo ra các dự đoán về dữ liệu đào tạo, trong khi đó, thứ bảy và tám dòng mã đưa ra dự đoán về dữ liệu thử nghiệm. Mã bên dưới tạo ra các số liệu đánh giá - RMSE và R -bình phương - cho cây hồi quy đầu tiên, 'DTREE1'. Đầu ra trên cho mô hình 'DTREE1' cho thấy RMSE là 1.184.486 cho dữ liệu tàu và 1.339.487 cho dữ liệu thử nghiệm. Giá trị R-bình phương là 80,4 phần trăm cho tàu hỏa và 72,3 % cho dữ liệu thử nghiệm. Mô hình này đang thực hiện mô hình trước đây trong cả hai số liệu đánh giá. 5Python 6Khi mô hình được xây dựng trên bộ đào tạo, chúng ta có thể đưa ra dự đoán. Dòng mã đầu tiên dưới đây dự đoán trên bộ đào tạo. Các dòng mã thứ hai và thứ ba in các số liệu đánh giá - RMSE và R -bình phương - trên bộ đào tạo. Các bước tương tự được lặp lại trên bộ dữ liệu thử nghiệm ở dòng thứ tư đến thứ sáu. Sự kết luậnTrong hướng dẫn này, bạn đã tìm hiểu về các mô hình hồi quy phi tuyến tính dựa trên cây-cây quyết định và rừng ngẫu nhiên. Bạn cũng đã tìm hiểu về cách điều chỉnh các tham số của cây hồi quy. Chúng tôi cũng quan sát thấy rằng mô hình rừng ngẫu nhiên vượt trội so với các mô hình cây hồi quy, với các giá trị RMSE và R-bình phương RMSE lần lượt là 280 nghìn và 98,8 %. Điều này gần với kết quả lý tưởng nhất của giá trị R-bình phương là 1, cho thấy hiệu suất vượt trội của thuật toán rừng ngẫu nhiên. Làm thế nào để bạn chạy một hồi quy phi tuyến tính trong Python?Đối với vấn đề hồi quy phi tuyến tính, bạn có thể thử svr (), kneighborsregratoror () hoặc ra quyết định () từ sklearn và so sánh hiệu suất mô hình trên tập kiểm tra. Lưu câu trả lời này.
Hồi quy tuyến tính đa biến trong Python là gì?Hồi quy tuyến tính là một thuật toán học máy trong đó chúng tôi cung cấp nhiều biến độc lập cho một biến phụ thuộc duy nhất.Tuy nhiên, hồi quy tuyến tính chỉ yêu cầu một biến độc lập làm đầu vào.a machine learning algorithm where we provide multiple independent variables for a single dependent variable. However, linear regression only requires one independent variable as input.
Là hồi quy không tuyến tính rừng ngẫu nhiên?Ngoài việc phân loại, rừng ngẫu nhiên cũng có thể được sử dụng cho các nhiệm vụ hồi quy.Bản chất phi tuyến của một khu rừng ngẫu nhiên có thể cung cấp cho nó một chân trên các thuật toán tuyến tính, làm cho nó trở thành một lựa chọn tuyệt vời.Tuy nhiên, điều quan trọng là phải biết dữ liệu của bạn và hãy nhớ rằng một khu rừng ngẫu nhiên không thể ngoại suy.A Random Forest's nonlinear nature can give it a leg up over linear algorithms, making it a great option. However, it is important to know your data and keep in mind that a Random Forest can't extrapolate.
Sự tuyến tính trong sklearn là gì?Độ tuyến tính phù hợp với mô hình tuyến tính với các hệ số W = (W1, Tiết, WP) để giảm thiểu tổng bình phương còn lại giữa các mục tiêu được quan sát trong bộ dữ liệu và các mục tiêu được dự đoán bởi xấp xỉ tuyến tính.Tham số: FIT_InterceptBool, Default = true.Có tính toán chặn cho mô hình này.fits a linear model with coefficients w = (w1, …, wp) to minimize the residual sum of squares between the observed targets in the dataset, and the targets predicted by the linear approximation. Parameters: fit_interceptbool, default=True. Whether to calculate the intercept for this model. |