(서강)코쉬코쉬 part2
내 스터디
- 스터디에 참여해보세요!
이종욱 리더
데이터사이언스 12시간 입문기
온라인
10회차(12주차) 스터디
-일시 : 7월 10일 금요일 오후 6시
-형태 : 오프라인
-주제 : 12주차 리뷰 -> 주제에 따른 데이터 분석 방법 및 사용하는 모델링에 대해 설명함.
-발표자 : 권혜리
-불참자 : 없음
-사진 : 첨부
10회차(11주차) 스터디
-일시 : 7월 10일 금요일 오후 6시
-형태 : 오프라인
-주제 : 11주차 리뷰 -> 회귀분석 및 다중회귀분석에 대해 소개함
-발표자 : 김보경
-불참자 : 없음
-사진 : 첨부
import pandas as pd
df=pd.read_csv('data/review.csv')
review_data= df.drop(['이름', '성별'], axis=1)
x_train=df[['나이', '학점', '키']]
y_train = df['토익점수']
from sklearn.linear_model import LinearRegression
lr = LinearRegression().fit(x_train, y_train)
print('train set accuracy', lr.score(x_train, y_train))
df_test = pd.read_csv('data/review_test.csv')
x_test = df_test[['나이', '학점', '키']]
prediction = lr.predict(x_test)
prediction
lr.predict([(24,3.7,170)])
comparison = pd.DataFrame(y_train)
y_test = lr.predict(x_train)
comparison['나의 예측']=y_test
comparison
9회차(10주차) 스터디
-일시 : 7월 3일 금요일 오전 10시 30분
-형태 : 온라인
-주제 : 10주차 Random Forest 리뷰
-발표자 : 강현석
-불참자 : 없음
-사진 : 첨부X, 스크린샷이 제대로 저장되지 않아 사진 촬영은 하지 못했습니다.
8회차(9주차) 스터디
-일시 : 6월 22일 토요일 오후 5시
-형태 : 온라인
-주체 : 9주차 Decision Tree 리뷰
-발표자 : 김민경
-사진 : 첨부
-Tips :
-df.isnull() 빈칸 정보 확인
-df[‘value’].value_counts() : 찾고자 하는 값들의 수, -빈칸은 안나옴
-**꿀팁 : 코드쓰다가 tab 누르면 함수 자동완성 기능
-*셀늘리고 줄이는 단축키 : aa, dd
-#df.loc[조건,열]=넣고 싶은 값
-df.loc[(조건1)&(조건2),'Age'] = 0
import pandas as pd
df=pd.read_csv('train.csv')
df_test=pd.read_csv('test.csv')
#<자율과제1>
#step 1
C='Cabin'
df[C]=df[C].str[0]
df[C]=df[C].fillna('non')
df_test[C]=df_test[C].str[0]
df_test[C]=df_test[C].fillna('non')
df_test.isnull().sum()
# df[["PassengerId",C]]
#step2
df[C].value_counts()
df.loc[df[C]=='C',C]=0
df.loc[df[C]=='B',C]=1
df.loc[df[C]=='D',C]=2
df.loc[df[C]=='E',C]=3
df.loc[df[C]=='A',C]=4
df.loc[df[C]=='F',C]=5
df.loc[df[C]=='G',C]=6
df.loc[df[C]=='T',C]=7
df_test.loc[df_test[C]=='C',C]=0
df_test.loc[df_test[C]=='B',C]=1
df_test.loc[df_test[C]=='D',C]=2
df_test.loc[df_test[C]=='E',C]=3
df_test.loc[df_test[C]=='A',C]=4
df_test.loc[df_test[C]=='F',C]=5
df_test.loc[df_test[C]=='G',C]=6
df_test.loc[df_test[C]=='T',C]=7
df_test[C].value_counts()
3주차 레벨업 과제
#이름 특징 추출하기, 이름으로 나이 평균 내기(빈칸을 더 현명하게 처리)
import pandas as pd
df=pd.read_csv('data/train.csv')
df_test=pd.read_csv('data/test.csv')
df.loc[df['Name'].str.contains('Mr\.'),'Name']='Mr'
df.loc[df['Name'].str.contains('Mrs\.'),'Name']='Mrs'
df.loc[df['Name'].str.contains('Miss\.'),'Name']='Miss'
df['Name']=df['Name'].map({
'Mr': int(0),
'Mrs': int(1),
'Miss': int(2)
})
df['Name']=df['Name'].fillna(int(3))
df['Name'].value_counts()
# 평균내기
df['Age']=df['Age'].fillna(df.groupby('Name')['Age'].transform('mean'))
#여러 특성을 지닌 데이터의 Decision Tree
data = {
'weight': [28, 2, 9, 6],
'movable': [True, True, True, False],
'category': ['animal', 'plant', 'animal', 'plant']
}
target_index=3
target_names=['1번','2번','3번','4번']
print(target_names[target_index],": 동/식물을 분류합니다.")
if (data['movable'][target_index]): #움직인다
if (data['weight'][target_index]<=6):
print('plant')
else:
print('animal')
else: #움직이지 못한다.
print('plant')
#다른 트리 만들기
if data['weight'][target_index]<=6:
print("plant")
else:
print("animal")
#Cabin의 객실 특징 추출, 숫자 변환
df['Cabin']=df['Cabin'].str[0]
df['Cabin']=df['Cabin'].fillna('C')
df['Cabin']=df['Cabin'].map({
'C':0,
'B':1,
'D':2,
'E':3,
'A':4,
'F':5,
'G':6,
'T':7,
})
df['Cabin'].value_counts()
문제 1
data = {
'weight': [28, 2, 9, 6],
'movable': [True, True, True, False ],
'category': ['animal', 'plant', 'animal', 'plant']
}
target_index = 2
target_names = ['1번생물', '2번 생물', '3번 생물', '4번 생물']
print(target_names[target_index], ': 동물/식물을 분류합니다.')
if data['movable'][target_index]:
if data['weight'][target_index] <= 6:
print('plant')
else:
print('animal')
else:
print('plant')
문제 2
target_index = 2
target_names = ['1번생물', '2번 생물', '3번 생물', '4번 생물']
print(target_names[target_index], ': 동물/식물을 분류합니다.')
if data['weight'][target_index]>=6:
if data['movable'][target_index] == 'no':
print('plant')
else:
print('animal')
else:
print('plant')
7회차(8주차) 스터디
-일시 : 6월 8일 월요일
-스터디 주제 : 8주차 리뷰
-발표자 : 박재헌
-사진 : 첨부
-tips :
[스테이지1]
**m누르면 마크다운 / y 누르면 코드로 바뀜(esc누르고)
*리스트 만들기(띄어쓰기!)
-넘버링 & 알파벳(Tab)으로 나눠주기
*수평선 넣기 : - 3번쓰기
*이미지 넣기 : 
-이미지설명은 이미지가 제대로 안불려졌을떄 이를 설명해줌 -> 제외해도 무방하다.
*주소이동 : [링크텍스트](링크주소)
*진하게 쓰기 : **텍스트**
*박스처리 : ``content`` (안되면 한영바꾸기)
-결과가 제대로 안된다면 기능 쓰기전에 엔터 2번 쓰기.
-역따옴표 사용
*인용구 : > (여러개 쓸려면 엔터치고 써야한다)
*코드표현하기 :
```python
print("Hello World")
```
-역따옴표 사용
*표 : 필드의 개수(열의 개수)가 같아야 한다
***html 파일로 저장해보기 : 업계에서 이렇게 쓰고, 보기 편하다.
*close and hat : 으로 확실하게 저장 후 닫아준다.
~~~~~~
[스테이지3]
**#(미션) 성별이 여성인 사람의 최소 나이
df.loc[df['성별']=='여' , '나이'].min()
**loc는 인덱싱 명령어 = 행을 선택해줌
~~~~
[스테이지4]
*첫 번째 줄에서 %matplotlib inline 의 역할은 notebook을 실행한 브라우저에서 바로 그림을 볼 수 있게 해주는 것 입니다.
*train = pd.read_csv('data/train.csv')
**왼쪽 부분 클릭하면 접어둘 수 있다
-기본적인 산포도 : sns.relplot()
**sns.relplot(data=train, x='Age', y='Survived', hue = 'Sex', aspect = 1)
*hue는 색깔, aspect는 비율
-카테고리 scatter plot : sns.catplot()
**sns.catplot(data=train, x='Pclass',y='Fare', hue='Sex')
-Pair Plot : sns.pairplot()
**한번에 여러 데이터 보여주기
sns.pairplot(data=train, hue='Sex',
x_vars=['Pclass','Age','Sex'],
y_vars=['Survived','Age','Fare'])
-Box Plot : sns.catplot(~~, kind = ‘box’)
*** 연령대별 생존자/사망자 수 확인 및 차트 도출하기.
1) 1단계 train 파일에 Age 항목은 중구난방으로 정리되어있기 때문에, 10년 단위로 재정리한다. 0세~9세: 0 / 10세~19세: 1 / 20세~29세: 2 / 30세~39세: 3/ 40세~49세:4/ 50세~ : 5 아래와 같은 결과를 도출한다.
2) 2단계 연령대별로 생존자 및 사망자수를 수집한다.
제시된 표를 기반으로, Age = 0 & 사망자의 수는 24명이다. Age = 0 & 생존자의 수는 38명이다. Age = 3 & 사망자의 수는 94명이다. Age = 5 & 생존자의 수는 27명이다. 3열에 있는 숫자는 각 행의 사망자와 생존자를 더한 값이다.
3) 3단계
X축은 ‘Survived’, y축은 인원수로 하는 차트를 도출한다.
생존자 및 사망자의 상세 구분은 Age로 한다.