2024.04.13 - [MachineLearning] - Regression 2) Error, MSE, RMSE
새로운 데이터가 들어왔을때의 예측값
데이터의 내용은 다르지만
앞부분은 넘어가고 본편으로 넘어가겠다
「 운영비는 15만 달러, 마케팅비용 40만 달러, 연구개발비 13만 달러 ,회사위치는 florida 에 있다면 예상 수익은?」
이 데이터의 콜럼 순서는
연구개발비, 운영비, 마케팅비용, 회사위치
였지만
원 핫 인코딩으로 인해 회사지역 맨 앞으로 오게되며
회사지역 또한 ['California', 'Florida', 'New York'] 로
0, 1 , 0 이 되고 그렇기에 이렇게 입력이 되게 된다
new_data = np.array([ 0, 1 , 0 , 130000, 150000, 400000 ])
new_data = new_data.reshape(1,6)
예측하기전에 1차원배열은 사용할수 없기때문에 2차원배열로 만들어준뒤
regressor.predict(new_data)
array([165102.43212675])
이렇게 예측이 가능하다
그렇다면 두가지의 데이터는?
운영비는 15만 달러, 마케팅비용 40만 달러, 연구개발비 13만 달러, 회사위치는 florida 에 있다면 예상 수익은?
운영비는 11만 달러, 마케팅비용 60만 달러, 연구개발비 15만 달러, 회사위치는 Newyork 에 있다면 예상 수익은?
new = np.array(([ 0, 1 , 0 , 130000, 150000, 400000 ] , [ 0, 0 , 1 , 150000, 110000, 600000 ]))
regressor.predict(new)
array([165102.43212675, 184941.14856592])
물론 이렇게 바로 입력해서 넣어주면 바로 나온다
하지만
지역이 몇백개가 되거나
데이터가 몇백개가 되면
지역을 일일이 바꾸는 일 조차 버거울 것이다
그러면 그냥 데이터들을 그대로 데이터프레임으로 만들어
지역을 그대로 입력하자
data = {'R&D Spend':[130000, 150000] ,'Administration' : [150000,110000],'Marketing Spend': [400000,600000],'State':['Florida', 'New York'] }
new_data = pd.DataFrame(data=data)
new_data.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 2 entries, 0 to 1
Data columns (total 4 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 R&D Spend 2 non-null int64
1 Administration 2 non-null int64
2 Marketing Spend 2 non-null int64
3 State 2 non-null object
dtypes: int64(3), object(1)
memory usage: 196.0+ bytes
확실히 지역은 오브젝트, 문자열이다
하지만
데이터프로세싱 준비단계에서
콜럼트랜스폼에서
fit으로 학습을 시켰던것이 기억 나는가?
이번엔 fit이 아닌 트랜스폼으로 바로 넣어주자
ct.transform(new_data)
array([[0.0e+00, 1.0e+00, 0.0e+00, 1.3e+05, 1.5e+05, 4.0e+05],
[0.0e+00, 0.0e+00, 1.0e+00, 1.5e+05, 1.1e+05, 6.0e+05]])
new_data = [ 8, 301 , 133, 2900, 10.7, 81, 2 ]
new_data = np.array(new_data).reshape(1, 7)
new_data
array([[8.00e+00, 3.01e+02, 1.33e+02, 2.90e+03, 1.07e+01, 8.10e+01,
2.00e+00]])
new_data = ct.transform(new_data)
C:\ProgramData\anaconda3\Lib\site-packages\sklearn\base.py:439: UserWarning: X does not have valid feature names, but OneHotEncoder was fitted with feature names
warnings.warn(
new_data
array([[0.00e+00, 1.00e+00, 0.00e+00, 8.00e+00, 3.01e+02, 1.33e+02,
2.90e+03, 1.07e+01, 8.10e+01]])
regressor.predict(new_data)
array([165102.43212675, 184941.14856592])
그래서 새로운 데이터도 문자열을 손수 작업해줄 필요 없이
입력하면 바로바로 예측이 가능하다
'Python > MachineLearning' 카테고리의 다른 글
Logistic Regression - 개념 (0) | 2024.04.15 |
---|---|
Regression 4) 인공지능 저장 및 사용 (0) | 2024.04.13 |
Regression 2) Error, MSE, RMSE (0) | 2024.04.13 |
Regression 1) .coef_ , .intercept_ , .predict( ) (0) | 2024.04.13 |
Regression - Data Preprocessing (3) - StandardScaler(), MinMaxScaler(), train_test_split() (0) | 2024.04.13 |