Hướng dẫn how do you check the accuracy of a decision tree in python? - làm thế nào để bạn kiểm tra độ chính xác của cây quyết định trong python?

Tôi đã viết một chức năng lấy bộ dữ liệu (excel / gandas) và một số giá trị, sau đó dự đoán kết quả với trình phân loại cây quyết định. Tôi đã làm điều đó với Sklearn. Bạn có thể giúp tôi với điều này, tôi đã xem qua web và trang web này nhưng tôi không thể tìm thấy câu trả lời hoạt động. Tôi đã cố gắng làm điều này, nhưng nó không hoạt động:

from sklearn.metrics import accuracy_score
score = accuracy_score(variable_list, result_list)

Đây là lỗi mà tôi nhận được:

ValueError: Classification metrics can't handle a mix of continuous-multioutput and multiclass targets

Đây là mã (tôi đã xóa mã cho độ chính xác)

import pandas as pd
import math
import xlrd
from sklearn.model_selection import train_test_split
from sklearn import tree

def predict_concrete_class(input_data, cement, blast_fur_slug,fly_ash,
                            water, superpl, coarse_aggr, fine_aggr, days):

    data_for_tree = concrete_strenght_class(input_data)

    variable_list = []
    result_list = []

    for index, row in data_for_tree.iterrows():
        variable = row.tolist()
        variable = variable[0:8]

        variable_list.append(variable)

        result_list.append(row[-1])

    decision_tree = tree.DecisionTreeClassifier()
    decision_tree = decision_tree.fit(variable_list,result_list)

    input_values = [cement, blast_fur_slug, fly_ash, water, superpl, coarse_aggr, fine_aggr, days]

    prediction = decision_tree.predict([input_values])

    info = "Prediction of future concrete class after "+ str(days)+" days: "+ str(prediction[0])

    return info

print(predict_concrete_class(data, 500, 0, 0, 200, 0, 1125, 613, 3))

Lựa chọn tính năng hoặc giảm kích thước. ....

Hướng dẫn how do you check the accuracy of a decision tree in python? - làm thế nào để bạn kiểm tra độ chính xác của cây quyết định trong python?
Cây được tăng cường ..

Làm thế nào để bạn xác định độ chính xác trong Python?

Thực hiện cây quyết định trong Python

Hướng dẫn how do you check the accuracy of a decision tree in python? - làm thế nào để bạn kiểm tra độ chính xác của cây quyết định trong python?

Đối với bất kỳ vấn đề phân tích dữ liệu nào, chúng tôi bắt đầu bằng cách làm sạch bộ dữ liệu và loại bỏ tất cả các giá trị null và thiếu khỏi dữ liệu. Trong trường hợp này, chúng tôi không xử lý dữ liệu sai lầm giúp chúng tôi tiết kiệm bước này.

1. Chúng tôi nhập các thư viện cần thiết để phân tích cây quyết định và rút dữ liệu cần thiết

# Load libraries
import pandas as pd
from sklearn.tree import DecisionTreeClassifier # Import Decision Tree Classifier
from sklearn.model_selection import train_test_split # Import train_test_split function
from sklearn import metrics #Import scikit-learn metrics module for accuracy calculation
col_names = ['pregnant', 'glucose', 'bp', 'skin', 'insulin', 'bmi', 'pedigree', 'age', 'label']
# load dataset
pima = pd.read_csv("pima-indians-diabetes.csv", header=None, names=col_names)

Hãy cùng kiểm tra một vài hàng đầu tiên của bộ dữ liệu này trông như thế nào

pima.head()

2. Sau khi tải dữ liệu, chúng tôi hiểu cấu trúc & biến, xác định các biến mục tiêu & tính năng (phụ thuộc & biến độc lập tương ứng)

#split dataset in features and target variable
feature_cols = ['pregnant', 'insulin', 'bmi', 'age','glucose','bp','pedigree']
X = pima[feature_cols] # Features
y = pima.label # Target variable

3. Hãy để phân chia dữ liệu thành các bộ đào tạo và thử nghiệm theo tỷ lệ 70:30.

# Split dataset into training set and test set
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=1) # 70% training and 30% test

Như một thông lệ tiêu chuẩn, bạn có thể theo dõi 70:30 đến 80:20 khi cần thiết.

4. Thực hiện phân tích cây quyết định bằng cách sử dụng Scikit learn

# Tạo quyết định Cây phân loại objectClf = Ra quyết định
clf = DecisionTreeClassifier()
# Train Decision Tree Classifier
clf = clf.fit(X_train,y_train)
#Predict the response for test dataset
y_pred = clf.predict(X_test)

5. Nhưng chúng ta nên ước tính cách chính xác trình phân loại dự đoán kết quả. Độ chính xác được tính toán bằng cách so sánh các giá trị thiết lập thử nghiệm thực tế và các giá trị dự đoán.

# Model Accuracy, how often is the classifier correct?print("Accuracy:",metrics.accuracy_score(y_test, y_pred))

Accuracy: 0.6753246753246753

Có vẻ như thuật toán cây quyết định của chúng tôi có độ chính xác là 67,53%. Một giá trị cao này thường được coi là tốt.

6. Bây giờ chúng tôi đã tạo ra một cây quyết định, hãy để xem nó trông như thế nào khi chúng tôi hình dung nó

Chức năng xuất khẩu của Scikit-Learn, có thể giúp hình dung cây quyết định. Chúng tôi có thể sử dụng điều này trên sổ ghi chép Jupyter của chúng tôi. Trong trường hợp bạn không sử dụng Jupyter, bạn có thể muốn xem cài đặt các thư viện sau:

  • Graphviz -converts phân loại cây quyết định vào tệp dot
  • PYDOTPLUS- Chuyển đổi tệp chấm này thành PNG hoặc biểu mẫu có thể hiển thị trên Jupyter.
from sklearn.tree import export_graphviz
from sklearn.externals.six import StringIO
from IPython.display import Image
import pydotplus
dot_data = StringIO()
export_graphviz(clf, out_file=dot_data,
filled=True, rounded=True,
special_characters=True,feature_names = feature_cols,class_names=['0','1'])
graph = pydotplus.graph_from_dot_data(dot_data.getvalue())
graph.write_png('diabetes.png')
Image(graph.create_png())

Đây có phải là kết quả mà bạn dường như cũng nhận được?

Hướng dẫn how do you check the accuracy of a decision tree in python? - làm thế nào để bạn kiểm tra độ chính xác của cây quyết định trong python?
Đầu ra Python

Bạn sẽ nhận thấy rằng, trong biểu đồ cây quyết định rộng rãi này, mỗi nút nội bộ có một quy tắc quyết định phân tách dữ liệu. Nhưng tất cả những người hữu ích/tinh khiết này?

Đo lường sự tạp chất của các nút được tạo ra thông qua phân tích cây quyết định

Gini được gọi là tỷ lệ Gini đo sự tạp chất của nút trong cây quyết định. Người ta có thể cho rằng một nút là thuần túy khi tất cả các bản ghi của nó thuộc cùng một lớp. Các nút như vậy được gọi là các nút lá.

Trong kết quả của chúng tôi ở trên, cây quyết định hoàn chỉnh rất khó diễn giải do sự phức tạp của kết quả. Cắt tỉa/rút ngắn cây là điều cần thiết để làm dịu sự hiểu biết của chúng ta về kết quả và tối ưu hóa nó. Tối ưu hóa này có thể được thực hiện theo một trong ba cách:

  • Tiêu chí: Tùy chọn (Mặc định = Giáp Gini) hoặc chọn Tham số đo lường lựa chọn thuộc tính cho phép chúng tôi sử dụng thước đo lựa chọn thuộc tính.
    This parameter allows us to use the attribute selection measure.
  • Splitter: String, Tùy chọn (Mặc định = Best Best) hoặc Split Strategyall cho người dùng để phân chia chiến lược. Bạn có thể chọn những người tốt nhất tốt nhất để chọn phân chia hoặc ngẫu nhiên tốt nhất để chọn phân chia ngẫu nhiên tốt nhất.
    Allows the user to split strategy. You may choose “best” to choose the best split or “random” to choose the best random split.
  • MAX_DEPTH: int hoặc none, tùy chọn (mặc định = không có) hoặc độ sâu tối đa của tham số treethis xác định độ sâu tối đa của cây. Một giá trị cao hơn của biến này gây ra quá mức và giá trị thấp hơn gây ra sự thiếu hụt.
    This parameter determines the maximum depth of the tree. A higher value of this variable causes overfitting and a lower value causes underfitting.

Trong trường hợp của chúng tôi, chúng tôi sẽ thay đổi độ sâu tối đa của cây như một biến điều khiển để cắt trước. Hãy thử thử max_depth = 3.

# Create Decision Tree classifier object
clf = DecisionTreeClassifier(criterion="entropy", max_depth=3)

# Train Decision Tree Classifier
clf = clf.fit(X_train,y_train)

#Predict the response for test dataset
y_pred = clf.predict(X_test)

# Model Accuracy, how often is the classifier correct?print("Accuracy:",metrics.accuracy_score(y_test, y_pred))

Accuracy: 0.7705627705627706

Khi cắt trước, độ chính xác của thuật toán cây quyết định tăng lên 77,05%, rõ ràng là tốt hơn so với mô hình trước đó.

Tìm hiểu các sinh viên khoa học dữ liệu khác

Hướng dẫn how do you check the accuracy of a decision tree in python? - làm thế nào để bạn kiểm tra độ chính xác của cây quyết định trong python?

Mikiko Bazeley

Kỹ sư ML tại MailChimp

Đọc truyện

Hướng dẫn how do you check the accuracy of a decision tree in python? - làm thế nào để bạn kiểm tra độ chính xác của cây quyết định trong python?

Karen Masterson

Nhà phân tích dữ liệu tại Verizon Digital Media Services

Đọc truyện

Hướng dẫn how do you check the accuracy of a decision tree in python? - làm thế nào để bạn kiểm tra độ chính xác của cây quyết định trong python?

Karen Masterson

Nhà phân tích dữ liệu tại Verizon Digital Media Services

Đọc truyện

Karen Masterson

Nhà phân tích dữ liệu tại Verizon Digital Media Services

Sam Fisher

Hướng dẫn how do you check the accuracy of a decision tree in python? - làm thế nào để bạn kiểm tra độ chính xác của cây quyết định trong python?
Đầu ra Python

Bạn sẽ nhận thấy rằng, trong biểu đồ cây quyết định rộng rãi này, mỗi nút nội bộ có một quy tắc quyết định phân tách dữ liệu. Nhưng tất cả những người hữu ích/tinh khiết này?

Đo lường sự tạp chất của các nút được tạo ra thông qua phân tích cây quyết định
Curious about a career in data science? Experiment with our free data science learning path, or join our Data Science Bootcamp, where you’ll only pay tuition after getting a job in the field. We’re confident because our courses work – check out our student success stories to get inspired.

Làm thế nào để bạn tính toán độ chính xác của cây quyết định?

Độ chính xác: Số lượng dự đoán chính xác được thực hiện chia cho tổng số dự đoán được thực hiện.The number of correct predictions made divided by the total number of predictions made.

Làm thế nào để bạn kiểm tra độ chính xác của một bộ hồi quy cây quyết định?

Có một cách để đo lường độ chính xác của một nhiệm vụ hồi quy. Đó là để biến nó thành một nhiệm vụ phân loại. Cách tiếp cận đầu tiên là thực hiện khoảng dự đoán đầu ra mô hình thay vì một số. Điều này đặc biệt có thể với cây quyết định, nhưng tốt hơn là sử dụng cây quyết định lượng tử.make the model output prediction interval instead of a number. This is especially possible with decision trees, but it's better to use Quantile Decision Trees.

Làm thế nào để chính xác cải thiện cây quyết định trong Python?

2.5 Ngoài cây quyết định: Làm thế nào để cải thiện mô hình..
Các mẫu tối thiểu để tách lá.Xác định số lượng điểm dữ liệu tối thiểu cần có tại các nút lá.....
Độ sâu tối đa.....
Cắt tỉa.....
Phương pháp hòa tấu: Rừng ngẫu nhiên.....
Lựa chọn tính năng hoặc giảm kích thước.....
Cây được tăng cường ..

Làm thế nào để bạn xác định độ chính xác trong Python?

Độ chính xác cũng có thể được định nghĩa là tỷ lệ của số trường hợp được phân loại chính xác so với tổng số các trường hợp đang được đánh giá.Giá trị tốt nhất của độ chính xác là 1 và giá trị tồi tệ nhất là 0. Trong Python, mã sau đây tính toán độ chính xác của mô hình học máy.Nó cho 0,956 làm đầu ra.the ratio of the number of correctly classified cases to the total of cases under evaluation. The best value of accuracy is 1 and the worst value is 0. In python, the following code calculates the accuracy of the machine learning model. It gives 0.956 as output.