[kaggle] ubiquan
3월 28일
target은 수익률이고 수익률을 3가지로 나누면 -,0,+ 여기서 0을 제외하면 이진분류 문제로 바뀌게 되고,
분포를 봤을때 피처(300개)의 값들을 파악한다?
양수일때는 어떤 피처가 큰지 음수일때는 어떤 피처카 큰지
time은 시간이라는걸 알겠는데 investment는 뭐지? -> 종목코드 -> time은 일(날)
그룹을 나눈다고 치면 time별로 나누는것도 있을거고, investment별로 나누는것도 있고 두개를 적절히 조합하면 더 좋을지도?
2022-03-27
중국인이 LB 0.7을 넘기고 디스커션에 글을 남김.
time_id가 1220개가 있는데,
1220일입니다.
여기서 말하는 1220이 2014~2018년의 거래일수를 말하는것 같다.
2014년 245일
2015년 244일
2016년 244일
2017년 244일
2018년 243일
인것으로 보아 위의 데이터인것같고,
investment_id를 reverse enginering
한 결과, 종목코드도 찾아냈다.
(정확하지는 않음.)
여기에서 얻은 생각은,
private에서는 time이랑 investment가 다 다를것이다.
300개의 feature의 연구가 필요하다.
그래서 분류문제로 접근해서 ML 모델들을 태워봐야겠다.
ex) 종목별로 분류, 일별로 분류, 수익률별로 분류, 그러다가 분류한것들끼리의 조합.
python package중에 feautre engine이라는게 있는데, 이걸 공부해서 적용해보는 것도 좋을듯.
pyspark는 kaggle notoebook, colab, local에서 전부 다 메모리 에러가 뜸. 이해는 안됨..
결론:
- time_id가 시간순서대로 정렬된게 아니라서 어떻게 써야할지 모르겠음.
- 종목코드(investment_id)별로 구분해서 300개의 feature와 target의 관계를 파악하고 싶음.
- target을 기준으로 양수,음수로 나눠서 300개의 feature의 특성을 파악하고 싶음.
4.2번과3번 등으로 분류한 데이터셋을 가지고 ML을 태워봐야겠음.
300개의 피처만 중요함
제출파일에 대해서 공부를 더 해야겟다.
종목코드로 분류해서 주식의 가격피처를 알아낸다음 모델을 돌리면 되게 쉬울것 같은데
3월 29일
이게 보니깐 중국 주식을 맞추는데 한국 주식종목코드로 학습을 시켜도 되나?
이게 종가 피처를 찾기만 하면 될것도 같은데
중국의 종목을 한국의 종목처럼 학습시킨다.
디스커션에서 features importance가 나왔으니깐
y = target
x = investment_id, time_id, 피처 한개(importance에서 나온거)
이렇게 features importance에서 10등까지 한번 돌려보자
그러면 그룹을….정해야하는데
investment_id로 묶고, 그다음에 time_id로 정렬해주면
중간에 빵꾸난것들도 있을것고,, 그런상태로 피처 한개에 대해서만 돌린다?
중국인이 한 말이 2015년에 주식시장이 안 좋았다고 했는데 그거는 빼야되는건가?
private이 뭔줄 알고.?
아니 근데 private에 대해서도 그룹화를 해야하는데?
일단 해보자
아 EDA한번해야되는데
EDA 먼저 하자
궁금한 내용:
1)target이 수익률로 알고있는데, 제출할때는 뭔가?
->이 때도 수익률
2)2014~2018년인건 그렇다치더라도, 어째서 중간에 빈값이 있는가?
-> 이거는 거래정지, 상장폐지 등 다양한 이유가 존재한다고 생각됨.
3)피어슨상관계수는 무엇인가? 왜 코드랑 디스커션에서 논의되는가?
-> 피처들이 벡터라고 되어있다고 판단하는듯. 그리고 벡터랑 target의 관계?
아니면 피처들 묶음과 타겟의 관계? 여지는 많음.
새로운 사실:
중국 연휴에는 national holiday있고 local holiday가 있다.
-> 아닌것 같다. 잘못알고 있는 것 같다.
예측하는 방법:
1번째방법)
특정구간을 설정함
kernel size를 설정함
커널사이즈만큼 돌면서 유사도를 학습함
마치 cnn처럼
2번째 방법)
피처를 1개만 남기고 ML 모델을 태워버림
3번째 방법)
cnn
4번째 방법)
code와 discussion을 더 본다.
댓글남기기