https://www.kaggle.com/c/titanic/
train data로 학습시키고 test data로 예측
train:test = 7:3
1. Data Loading (Train, Test)
2. Data cleanig (Tidy Data) : 데이터 정돈
3. Feature Engineering
4. Model(Algorithm) 선정 및 hyperparameter setting
5. fit(), predict()
hyperparameter setting 은 답이 없다 해봐야한다. 보통 max_depth = 10~20가 적당하다.
test.csv 와 train.csv 의 차이점은 test data는 label이 없다.
titanic data에서는 Survived 을 예측한다.
pre-processing (feature enginering)
Encode Embarked (one hot encoding) - 서로 독립적인 코드로 변경
C = [1, 0, 0] = [True, False, False]
S = [0, 1, 0] = [False, True, False]
Q = [0, 0, 1] = [False, False, True]
(one hot encoding 이 효율이 안좋을때도 있다. 알 수 없다.)
변수가 적으면 오버피팅 (Overfitting)이 일어날 수 있다.
트리구조형태의 학습 방식이 유행중이다.
scikit-learn == sklearn
부스팅방식을 사용한 트리 알고리즘
어떤 알고리즘이든 학습할때 시간이 오래걸리지 예측(predictions)은 빠르다.
s = pd.Series(['a', 'a', 'b', 'c', np.NaN])
s.count() # 4
len(s) # 5
s.unique() # array(['a', 'b', 'c', nan], dtype=object)
s.nunique() # 3
s.nunique(dropna=False) # 4
s.value_counts(dropna=False)
a 2
b 1
c 1
NaN 1
dtype: int64
pd.Series([1, 2, 3, 4]).cumprod() # 누적 곱
0 1
1 2
2 6
3 24
dtype: int64
pd.Series([1, 2, 3, 4]).cumsum() # 누적 합
0 1
1 3
2 6
3 10
dtype: int64
# correlation of MSFT relative to AAPL
omh['MSFT'].corr(omh['AAPL'])
! head ... # 운영체제의 shell 명령어
# specify a new set of names for the columns
# all lower case, remove space in Adj Close
# also, header=0 skips the header row
df = pd.read_csv("../data/msft.csv",
header=0, # header는 첫번째 줄
names=['date', 'open', 'high', 'low', 'close', 'volume']) # header 이름 지정
# read in data only in the Date and Close columns
# and index by the Date column
df2 = pd.read_csv("../data/msft.csv",
usecols=['Date', 'Close'], # Date, Close column만 사용
index_col=['Date'])
# save df2 to a new csv file
# also specify naming the index as date
df2.to_csv("msft_modified.csv", index_label='date')
# use read_table with sep=',' to read a CSV
df = pd.read_table("../data/msft.csv", sep=',')
df[:5]
## Reading and writing from/to SQL databases
# connect to the database file
connection = sqlite3.connect("../data/stocks.sqlite")
# query all records in STOCK_DATA
# returns a DataFrame
# inde_col specifies which column to make the DataFrame index
stocks = pd.io.sql.read_sql("SELECT * FROM STOCK_DATA;",
connection, index_col='index')
# close the connection
connection.close()
# report the head of the data retrieved
stocks[:5]
train.loc[(train['Age'].isnull()) & (train['Pclass'] == 1), 'Age'] = train.loc[train['Pclass'] == 1].mean()
# 객실 등급(Pclass)이 1등급인 승객의 평균 나이를 구해서, 해당 승객 중 나이(Age)컬럼값이 비어있는 승객을 찾아 빈 나이 값을 채워준다.
train.loc[(train['Age'].isnull()) & (train['Pclass'] == 1), 'Age'] = train.loc[(train['Pclass'] == 1), 'Age'].mean()
train.loc[(train['Age'].isnull()) & (train['Pclass'] == 2), 'Age'] = train.loc[(train['Pclass'] == 2), 'Age'].mean()
train.loc[(train['Age'].isnull()) & (train['Pclass'] == 3), 'Age'] = train.loc[(train['Pclass'] == 3), 'Age'].mean()
train[["Pclass","Age"]].head()
def check_health(element):
if element > 60:
return '비만'
else:
return '정상'
x.apply(check_health)
'etc. > info' 카테고리의 다른 글
URL 대소문자 구분에 관한 RFC 표준 (0) | 2021.02.23 |
---|---|
Chrome 브라우저 탭 기능 효율적으로 사용하기 (0) | 2021.02.18 |
잔디심기(github count contributions)를 위한 git config 파일 설정 (0) | 2021.02.18 |
[python] window에 Anaconda 설치 및 JupyterLab 실행 후 titanic data 사용 (0) | 2020.10.08 |
GitHub에 내 웹사이트 만들기 (*.github.io) (0) | 2020.10.08 |
댓글