• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 엔지니어링

  • 해결 여부

    미해결

In[42] 14:50 코드 질문

21.07.12 22:51 작성 조회수 90

0

안녕하세요 선생님.
질문이 너무 많아 죄송스럽네요..!
매번 질문에 답을 쉽게 이해할수있게 달아주셔서 감사합니다.
이번엔 좀 코드적인 부분에서 궁금했는데
# 가중치의 컬럼 이름을 확인하고 큰 값 순으로 정렬하여 보겠다 result = pd.DataFrame({'feature':X.columns,'weight':model.coef_[0].round(3)}) result.sort_values('weight', ascending=False, inplace=True) result
여기서 42번 cell에서 코드가 조금 이해가 안됩니다. 
feature이란 column은 X라는 우리 data에서 column을 가져온거 같고 weight은 어떤원리로 가져왔는지 모르겠습니다. model.coef[0]이라는게 41번째 cell에서 저희가 array로 본거중 0번째만갖고온다는게 무슨뜻인지 잘 모르겠습니다. array의 shape이 (1,12)인걸 알아냈고 여기에서 알아서 feature이랑 weight값 12개랑 자동적으로 매칭이 되나요? (즉, 순서가 다 있다는건가요?) 
조금 질문이 난해한거 같네요.. 죄송합니다.
그리고 inplace=True는 뭐하는 함수인가요?

답변 1

답변을 작성해보세요.

0

안녕하세요.

41번 셀에서 coef_의 구조가 "2차원" 어레이입니다. [[ 가 두개임. 여기서 [0] 인덱싱을 하면 [ 가 하나인 1차원 어레이 즉, 벡터를 얻습니다. (2차원이 아닌) 1차원 데이터라야 데이터 프레임 results의 한 컬럼 값들로 채우는데 문제가 없습니다.(한 줄 짜리 데이터 구조라야 함). 그래서 [0] 인덱싱을 한 것입니다.

그리고 columns의 순서와 해당 컬럼(변수)의 coef_ 의 순서는 모델이 알아서 차례를 기억합니다.

 inplace=True는 sort_value의 실행 결과를 단순히 출력해 주는데 그치지 않고 원본 데이터인 result에 결과를 반영하여 변경해두라는 뜻입니다.

수고하세요~