데이터 세트 분리 및 시각화(선형 회귀)
2023. 9. 17. 15:40ㆍ데이터분석
import matplotlib.pyplot as plt
import pandas as pd
dataset=pd.read_csv('LinearRegressionData.csv')
dataset.head()
X=dataset.iloc[:,:-1].values #독립변수
y=dataset.iloc[:,-1].values #종속변수score만 iloc 진행
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=0)
#test_size는 8:2비율로 나눈다는 의미 / random_state는 랜덤으로 데이터를 뽑기
X,len(X) #전체 데이터 X개수
(array([[ 0.5],
[ 1.2],
[ 1.8],
[ 2.4],
[ 2.6],
[ 3.2],
[ 3.9],
[ 4.4],
[ 4.5],
[ 5. ],
[ 5.3],
[ 5.8],
[ 6. ],
[ 6.1],
[ 6.2],
[ 6.9],
[ 7.2],
[ 8.4],
[ 8.6],
[10. ]]),
20)
X_train, len(X_train) #훈련 세트 x,개수 #80비율
X_test,len(X_test) #20비율
(array([[ 8.6],
[ 1.2],
[10. ],
[ 4.5]]),
4)
y_train, len(y_train)
(array([60, 86, 42, 68, 22, 14, 30, 72, 58, 48, 76, 72, 26, 10, 58, 62]), 16)
In [69]:
y_test,len(y_test)
(array([ 90, 8, 100, 38]), 4)
#분리된 데이터를 통한 모델링
from sklearn.linear_model import LinearRegression
reg=LinearRegression() #선형회귀 객체 생성
reg.fit(X_train,y_train) #훈련 세트 학습
#훈련 데이터 시각화
plt.scatter(X_train,y_train,color='blue') #산점도
plt.plot(X_train,reg.predict(X_train),color='green') #선 그래프 #y는 예측값으로지정
plt.title('score by hours(train data)')
plt.xlabel('hour')
plt.ylabel('score')
plt.show()
#테스트 데이터 시각화
plt.scatter(X_test,y_test,color='blue') #산점도
#모델을 만들 때 train 데이터를 사용했으므로 아래 코드는 그대로 둔다.
plt.plot(X_train,reg.predict(X_train),color='green') #선 그래프 #y는 예측값으로지정
plt.title('score by hours(train data)')
plt.xlabel('hour')
plt.ylabel('score')
plt.show()
#테스트 데이터 4개가 시각화됨.
print(reg.coef_) #x절편
print(reg.intercept_) #y절편
[10.49161294]
0.6115562905169796
#모델 평가
print(reg.score(X_test,y_test)) #테스트 세트를 통한 모델평가 0이면 점수가 낮고 1에 가까우면 점수가 높음
print(reg.score(X_train,y_train)) #훈련 세트를 통한 모델평가
0.9727616474310156
0.9356663661221668
'데이터분석' 카테고리의 다른 글
Regression analysis(선형 회귀) 개념 & 코딩 실습 (0) | 2023.11.15 |
---|---|
데이터사이언스_결측치 처리/인덱싱 (0) | 2023.11.13 |
데이터사이언스_원핫인코딩 (0) | 2023.11.13 |
선형 회귀(LinearRegression) (0) | 2023.09.17 |
머신러닝 기초개념 (0) | 2023.09.17 |