LinearRegression 객체의 회귀계수와 피처 변수명 맵핑
467
작성한 질문수 11
p.327쪽에서
위와 같이 lr.coef_ 의 회귀계수 값과 X_data.columns 의 피처 변수명을 맵핑시키는 데.. 이게 제대로 맵핑되는 원리가 무엇인가요?
lr에 이미 X_data도 학습을 시켜 놓았으니 각 회귀계수별 피처명 정보가 어딘가에 들어가 있는 것이고, 이를 X_data.columns로 뽑아온다...? 맞나요..?
답변 1
0
안녕하십니까,
LinearRegression 객체인 lr의 회귀계수 속성 값인 coef_ 는 lr이 학습 데이터 피처들에 대해서 순차적으로 회귀 계수를 가지고 있습니다.
즉 회귀 계수값: [ -0.1 0.1 0. 3. -19.8 3.4 0. -1.7 0.4 -0. -0.9 0. -0.6] 에서
-0.1은 첫번째 피처, 0.1은 두번째 피처, 0은 세번째 피처의 회귀 계수를 의미합니다.
기본적으로 사이킷런 모델이 학습하는 데이터 세트는 numpy ndarray 입니다. numpy ndarray는 피처명을 가지고 있지 않습니다. 학습 데이터를 DataFrame으로 하여도 numpy ndarray로 변환되어 모델이 학습됩니다.
DataFrame은 컬럼명(피처명)을 가지고 있기 때문에 피처순을 피처명으로 변환할 수 있습니다.
X_data는 학습에 사용된 DataFrame이고 X_data.columns는 피처순으로 피처명을 가지고 있습니다.
즉 X_data.columns는
Index(['CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD', 'TAX', 'PTRATIO', 'B', 'LSTAT'], dtype='object')
가 되는데 이를 이용해서 피처순으로 피처명을 매핑하는 겁니다. X_data.columns가 Index이므로 이를 Series로 변환하면 아래와 같이 변환될 수 있습니다.
coeff = pd.Series(data=np.round(lr.coef_, 1), index=X_data.columns )
이렇게 변환된 Series는 내림차순 정렬등으로 회귀 계수가 큰 값으로 정렬하여 쉽게 표현될 수 있도록 coeff.sort_values(ascending=False) 를 적용한 것입니다.
혹 이해가 안되는 부분이 있으면 다시 글 부탁드립니다.
감사합니다.
모델 서빙과 관련된 강좌가 출시되는지 질문드립니다.
0
24
2
안녕하세요 열심히 수강중인 학생입니다
0
68
2
정수 인덱싱
0
71
2
넘파이 오류
0
88
2
11강 numpy의 axis 축 질문 드립니다.
0
89
2
Kaggle 에서 Santander customer satisfaction data 를 다운로드 되지가 않습니다.
0
80
2
Feature importances 를 보여주는 barplot 이 그래프로 안보여져요.
0
71
2
타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.
0
76
2
타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.
0
65
2
5강 강의 오류가 있어요.
0
86
1
실무에서 LTV 관련 모델 선택 질문입니다!
0
74
2
14강 강의 듣는중에 궁금한게 있어서 질문합니다~
0
70
3
파이썬 다운그레이 후 사이킷런 재설치
0
122
2
좋은 강의 감사합니다.
0
75
2
scoring 함수 음수값
0
68
2
6번 강의에 사이킷런, 파이썬, 아나콘다 각각 버전 일치 안 시키고 진행해도 강의 따라가 지나요?
0
104
2
분류 평가 정확도 예측
0
80
2
안녕하세요. 강의 들으면서 업무에 적용하고 싶은 수강생입니다.
0
100
1
카카오톡 채널 있나요
0
110
1
혹시 강의에서 사용하시는 ppt 받을 수 있는건가요
0
191
2
pca 스케일링 관련하여 질문드립니다.
0
102
2
주피터 대신 구글 코랩
0
174
2
강의에서 사용하는 pdf or ppt자료는 따로 없는 건가요?
0
149
2
실루엣 스코어..
0
87
2





