Как построить дерево регрессии в Python - PullRequest
0 голосов
/ 05 мая 2019

Итак, во-первых, я относительно новичок в Python, поэтому я не уверен, как решить мою задачу.Я следовал онлайн-уроку о том, как построить дерево решений с использованием набора данных Iris (для классификации).Тем не менее, я пытаюсь построить одно дерево из регрессии.

Вот фрагмент данных, которые я использую: data

Вот код, который я использовал:

# Import Libraries and Load Data
import pandas as pd 
data = pd.read_csv("/Users/.../Desktop/cars_test.csv") 
import matplotlib.pyplot as plt
import numpy as np
cars = data

# Model
from sklearn.ensemble import RandomForestRegressor
model = RandomForestRegressor(n_estimators=10)

# Train
model.fit(cars.data, cars.target)

# Extract single tree for analysis
estimator = model.estimators_[5]

Однако,Я получаю сообщение об ошибке, которое я не знаю, как исправить ... Я получаю сообщение об ошибке:

AttributeError                            Traceback (most recent call
last) <ipython-input-27-37164305d7fe> in <module>()
     10 
     11 # Train
---> 12 model.fit(cars.data, cars.target)
     13 
     14 # Extract single tree for analysis

~/anaconda3/lib/python3.6/site-packages/pandas/core/generic.py in
__getattr__(self, name)    4370             if self._info_axis._can_hold_identifiers_and_holds_name(name):    4371   
return self[name]
-> 4372             return object.__getattribute__(self, name)    4373     4374     def __setattr__(self, name, value):

AttributeError: 'DataFrame' object has no attribute 'data'

Любые предложения относительно того, что я делаюнеправильно?

1 Ответ

1 голос
/ 06 мая 2019

Вам необходимо адаптировать код для работы с вашими собственными данными (обратите внимание, что загруженный вами фрейм данных не имеет атрибутов для target или data).Это означает извлечение матрицы входных данных (X) и переменной ответа (y) из исходного набора данных.Я делаю несколько предположений здесь, но вы можете адаптироваться соответственно.

# Import Libraries and Load Data
import pandas as pd 
data = pd.read_csv("/Users/.../Desktop/cars_test.csv") 
import matplotlib.pyplot as plt
import numpy as np
cars = data

# Model
from sklearn.ensemble import RandomForestRegressor
model = RandomForestRegressor(n_estimators=10)

X = cars.loc[:, cars.columns != 'th_km_per_year'].values
y = cars['th_km_per_year'].values

# Train
model.fit(X, y)

# Extract single tree for analysis
estimator = model.estimators_[5]
...