데이터 분석을 하면서 성장 과정
데이터 : 1열에 대해 나머지 열들이 어떤 영향을 끼치는지, 어떤 열이 영향을 끼쳤는지(열이름 또는 인덱스)도 중요.
총 500*30000 개의 데이터.
0. 데이터 Null값 치환
유사한 열의 같은 행 값으로 바꿔주면 되는데,
그렇다고 30000*30000 모양의 유사도행렬을 만들기는 어렵다.
다행히 데이터 특성상, 주변에 있는 열끼리 유사하다는 점을 고려하여, 80개정도씩 나눠서 유사도행렬을 만들고,
가장 유사한 열을 골라서 같은 행의 값을 가져왔다.
주의해야할 점은, argmax해서 가장 큰 값을 가져온다면.. 자기 자신이 된다.
따라서 두 번째로 큰 값을 가져와야 자신과 가장 비슷한 다른 열을 구할 수 있는 것이다.
1. 1열과 나머지 열들의 유사도를 계산하는 방법을 생각했지만, 단순하다는 점이 있고 유의미한 해석이 어렵다.
2. 1열을 종속변수로, 나머지 열들을 독립변수로 하여 회귀분석을 시행.
독립변수와 종속변수간의 관계를 나타내기에 좋지만, 만약 여러 열이 합쳐져서 1열에 영향을 주는 것이라면?
그건 찾기 어렵다.
3. 여러 열이 합쳐져서 영향을 주는 거래도.. 관련 있는 열들은 1열과 회귀직선을 만들었을 때 유의하지 않을까? 싶어서,
유의한 회귀계수를 가진 열들을 독립변수로 다중회귀를 진행하였다. 유의한 열들이 1000개 이상 나오고.. 너무 크다.
또한 R-squared값이 유의하지 않아 다른 방법을 생각하였다.
4. PCA는 어떨까.
특성을 내가 원하는 만큼 줄일 수 있다. 그치만 이것도 R-squared값이 유의하지 않았다.
또한, 나는 어떤 열이 영향을 끼쳤는지 알아야 하는데 그걸 알 수 없다.
5. 머신러닝을 하는 건?
머신러닝을 하면 그 데이터 분석의 기준을 명확히 제시할 수 없다는 점, train/test set을 나누기 어렵다는 점 등을 생각하였다.
내가 원하는 것은 이러이러한 기준으로 분석을 진행하고, 그 결과. 즉, 어떤 열의 어떤 값이 클수록 1열의 값이 ~~했다. 등의 방식으로 설명하고 싶었다.
그치만 머신러닝은 이런 식으로 설명하는 것은 어렵다.
하지만, 이것은 대부분 그렇기 때문에.. 이 데이터에 맞는 어떤 방법을 썼는지, 그 파라미터는 어떻게 설정했는지를 작성한다면, 괜찮다고 한다.
또한 train/test set 을 나눌 때는, 만약 test data만 중요한 게 몰려있으면 어쩌지..? 라는 생각을 한 거였지만, 이는 shuffle이나, cross validation을 사용하면 된다.
이후.. 데이터 분석을 진행해보고 다시 쓰겠다
'TIL' 카테고리의 다른 글
[TIL] 2024-10-17 (3) | 2024.10.17 |
---|---|
[TIL] 2024-07-07 (0) | 2024.07.07 |
[TIL] 2024-06-25 (0) | 2024.06.25 |
[TIL] 2024-06-15 (0) | 2024.06.15 |
[TIL] 2024-06-12 (0) | 2024.06.12 |