Нотация Python - PullRequest
       7

Нотация Python

0 голосов
/ 01 октября 2018

Я пытаюсь понять пример кода с machinelearningmastery.com, но нотация среза отбрасывает меня ... Для начала с моим кодом я пытаюсь создать простой алгоритм ML типа регрессии с некоторыми данными из CSVfile:

import pandas as pd

McheLrn = pd.read_csv('C:/Users/data.csv', index_col='Date', parse_dates=True)


McheLrn['month'] = McheLrn.index.month
McheLrn['date'] = McheLrn.index.strftime('%d')
McheLrn['hour'] = McheLrn.index.strftime('%H')
McheLrn['Day_of_week'] = McheLrn.index.dayofweek

McheLrn.head()

Будет выведено:

    OSAT    kWh month   date    hour    Day_of_week
Date                        
2013-01-01 06:00:00 10.4    16.55   1   01  06  1
2013-01-01 06:15:00 10.4    16.55   1   01  06  1
2013-01-01 06:30:00 10.4    16.05   1   01  06  1
2013-01-01 06:35:00 10.4    16.05   1   01  06  1
2013-01-01 06:45:00 10.4    17.20   1   01  06  1

Не уверен, что я использую правильную терминологию, но зависимая переменная kWh (переменная Y) и все остальныенезависимые переменные для моих переменных X ...

С помощью приведенного ниже кода меня отбрасывает нотация среза X = array[:,0:2] Y = array[:,2] И я не уверен, правильно ли выбраны мои переменные X & Y.

# Decision Tree Regression
import pandas
from sklearn import model_selection
from sklearn.tree import DecisionTreeRegressor


dataframe = McheLrn
array = dataframe.values

X = array[:,0:2]
Y = array[:,2]

seed = 7
kfold = model_selection.KFold(n_splits=90, random_state=seed)
model = DecisionTreeRegressor()
scoring = 'neg_mean_squared_error'
results = model_selection.cross_val_score(model, X, Y, cv=kfold, scoring=scoring)

print(results.mean())

1 Ответ

0 голосов
/ 01 октября 2018

Просто чтобы проиллюстрировать дальше.Если вы знаете целевой столбец (имя), тогда предпочтительным методом будет выбрать все, кроме целевого столбца, например

df=pd.DataFrame({'a':[1,2],'b':[2,3],'c':[1,9]})
target_col=['c'] # column 'c' is the target column here
X=df[list(set(df.columns).difference(target_col))].values # X-> features
Y=df[target_col].values # Y -> target

При использовании номеров столбцов.Предполагая, что последний столбец является целевым столбцом

data=df.values
X=data[:,:2] # from column 1 upto second last column including all the rows
Y=data[:,2] # only last column(target) including all the rows
...