제가 만든 특성 예입니다.
df = pd.DataFrame({'city':['seoul', 'seoul', 'seoul', 'pusan', 'pusan', 'pusan', 'gwangju', 'gwangju', 'gwangju'] ,
'date':['2022-01-01', '2022-02-01', '2022-03-01','2022-01-01', '2022-02-01', '2022-03-01','2022-01-01', '2022-02-01', '2022-03-01'],
'price': [7, 9, 4, 7, 5, 2, 1, 8, 6],
'quantity':[89, 53, 75, 33, 96, 72, 59, 25, 82],
'sales_amount': [3.4, 6.1, 9.2, 7.2, 2.9, 8.1, 5.9, 4.4, 7.9]})
df.set_index(['city', 'date'], inplace=True)
print(df)
다음과 같이 DataFrame이 생성됩니다.
price quantity sales_amount
city date
seoul 2022-01-01 7 89 3.4
2022-02-01 9 53 6.1
2022-03-01 4 75 9.2
pusan 2022-01-01 7 33 7.2
2022-02-01 5 96 2.9
2022-03-01 2 72 8.1
gwangju 2022-01-01 1 59 5.9
2022-02-01 8 25 4.4
2022-03-01 6 82 7.9
여기에서 price와 quantity는 속성값으로 지정하고 마지막 sales_amount를 클래스로 지정하여 선형회귀로 예측값을 반환하는 예제를 만들려 합니다. 학습데이터는
X = df[: , 0:2]
y = df[:, 2]
입니다. 참조 서적을 보며 만들어보고 있는데 인덱스 부분을 어떻게 처리해야 할지 잘 몰라 도움을 얻고자 합니다. 인덱스가 [‘city’, ‘date’]라서 다중 인덱스인데 이 인덱스를 one-hot encoding으로 변환해야 하는 건가요? 주위의 책을 보면 인덱스가 그냥 정수값이라 별도로 인덱스를 처리하는 예제가 많지 않습니다. 머신러닝 특성에서 다중 인덱스를 어떻게 처리해야 하는지 좀 알려주십시요. 그리고 보시다시피 index에 시간이 포함되는데 sklearn.model_selection
의 train_test_split
함수를 사용해도 되는 건지도 알고 싶습니다. 초보라 기초적인 내용도 아직 부족합니다. 댓글 부탁드립니다.