Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 덴드로그램
- 최솟값
- string
- 분류 결과표
- nan
- count()
- 반복문
- 최댓값
- Machine Learning
- numpy
- function
- matplotlib
- sklearn
- data
- Dictionary
- DataAccess
- analizer
- pandas
- insert()
- DataFrame
- hierarchical_clustering
- len()
- wcss
- dendrogram
- list
- append()
- del
- Python
- elbow method
- IN
Archives
- Today
- Total
개발공부
Multiple Linear Regression 실습 예제 본문
아래처럼, 여러개의 features 를 기반으로, 수익을 예측하려 한다.

위와 같이, 여러개의 변수들을 통해, 수익과의 관계를 분석하고
이를 통해, 새로운 데이터가 들어왔을 때, 수익이 어떻게 될 지를 예측하고자 한다.
아래는 하나의 변수일때와, 여러개의 변수가 있을때의 linear regression 을 나타낸다.
2차원에서는 선 이지만, 3차원에서는 평면이 된다.

그후 오차가 가장 적을 때 b 값들을 찾으면 된다.
아래 데이터로 실습해보자.
# 어떤 신생 회사의 데이터가 있으면, 그 회사가 얼마의 수익을 낼 지 예측해보기
df = pd.read_csv('data/50_Startups.csv')
df.head()

# 1.NaN 처리
>>> df.isna().sum()
R&D Spend 0
Administration 0
Marketing Spend 0
State 0
Profit 0
dtype: int64
# 2. X, y로 분리
X = df.loc[:, 'R&D Spend' : 'State']
y = df.loc[:, 'Profit']
# X 의 컬럼중에 숫자가 아닌 컬럼이 있으니, 숫자로 바꿔준다.
# 원 핫 인코딩 이용
>>> from sklearn.preprocessing import OneHotEncoder
>>> from sklearn.compose import ColumnTransformer
>>> df['State'].unique()
array(['New York', 'California', 'Florida'], dtype=object)
>>> sorted(df['State'].unique())
['California', 'Florida', 'New York']
>>> ct = ColumnTransformer( [ ('encoder', OneHotEncoder(), [3]) ],
remainder= 'passthrough')
>>> X =ct.fit_transform(X)
>>> X.shape
(50, 6)
# X, y 준비 끝났으니
# 학습용과 테스트용으로 데이터 분리
>>> 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 = 15)
>>> X_train.shape
(40, 6)
>>> X_test.shape
(10, 6)
# 인공지능 모델링
>>> from sklearn.linear_model import LinearRegression\
>>> regressor = LinearRegression()
# 학습시키기
>>> regressor.fit(X_train, y_train)
LinearRegression()
>>> error = y_test - y_pred
# MSE
>>> (error ** 2).mean()
124331765.37535706
# 인공지능 모델링
>>> from sklearn.linear_model import LinearRegression
>>> regressor = LinearRegression()
>>> regressor.fit(X_train, y_train)
LinearRegression()
# 차트로 표현
plt.plot(y_test.values)
plt.plot(y_pred)
plt.legend(['Real', 'Pred'])
plt.show()

'Python > Machine Learning' 카테고리의 다른 글
| [Machine Learning] 신규 데이터 예측하는 순서 (0) | 2022.05.09 |
|---|---|
| sklearn 라이브러리의 분류 결과표 Confusion Matrix (분류 문제의 인공지능 성능 평가 방법) (0) | 2022.05.09 |
| Linear Regression (0) | 2022.05.09 |
| 데이터 전처리 기초 #5 sklearn라이브러리를 이용해 Dataset 나누기 (Training,Test) (0) | 2022.05.09 |
| 데이터 전처리 기초 #4 피처 스케일링 Feature Scaling(표준화, 정규화) (0) | 2022.05.09 |