๐ถ ํ์ต ๋ฒ์
- ํ์ต๋ฐ ๊ณผ์ (ํ์ด์ฌ)
- AI ์ํ ๊ฐ์ข
- ๋จธ์ ๋ฌ๋ ํ์ต
๐ถ ๊ณต๋ถ ๋ด์ฉ
โจ ํ์ต๋ฐ ๊ณผ์ - ํ์ด์ฌ ๋ฌธ์ 40 (๋์
๋๋ฆฌ/์งํฉ)
โ๏ธ # ์์ - 44
# {'apple': 111, 'banana': 222, 'cherry': 'babo'} ์์ ๊ฐ์ด babo๊ฐ ์๋ค๋ฉด babo ์ถ๋ ฅ
data = {'apple': 111, 'banana': 222, 'cherry': 'babo'}
# 1. ์ ๋ถ ์ฒดํฌ
for v in data.values():
if v == 'babo':
print('babo')
# 2. valut in dict.values() ์ฌ์ฉ
if 'babo' in data.values():
print('babo')
โ๏ธ ์์ - 45
# {'apple': 111, 'banana': 222, 'cherry': 'babo'} ์์ apple ์ญ์ ํ ์ถ๋ ฅ
data = {'apple': 111, 'banana': 222, 'cherry': 'babo'}
# 1. pop ์ฌ์ฉ
# (๊ฐ ๋ฐํ O) ์ญ์ ๋ ๊ฐ์ด ํ์ํ ๊ฒฝ์ฐ
data.pop('apple')
# 2. del ์ฌ์ฉ
# (๊ฐ ๋ฐํ X) ๋จ์ํ ์ญ์ ๋ง ํ ๊ฒฝ์ฐ
del data['apple']
print(data)
โ๏ธ ์์ - 46
# {'apple': 111, 'banana': 222, 'cherry': 'babo'} ์์ banana์ ๊ฐ์ babooo๋ก ์์
data = {'apple': 111, 'banana': 222, 'cherry': 'babo'}
data['banana'] = 'babooo'
print(data)
# update() :: ์ฌ๋ฌ๊ฐ ๋์์ ๋ณ๊ฒฝ
# data.update({'apple': 333, 'banana': 444})
โ๏ธ ์์ - 47
# {'a': 1, 'b': 2}์ {'c': 3, 'd': 4}๋ฅผ ํฉ์น์์ค,
dict_1 = {'a': 1, 'b': 2, 'c':3}
dict_2 = {'c': 4, 'd': 5}
# 1. update() ์ฌ์ฉ (์ค๋ณต๋ ํค๋ ์ค๋ฅธ์ชฝ dict ๊ฐ์ผ๋ก ๋ฎ์ด์ฐ๊ธฐ)
dict_1.update(dict_2)
print(dict_1)
# 2. ** ์ธํจํน ์ฌ์ฉ (์ค๋ณต๋ ํค๋ ์ค๋ฅธ์ชฝ dict ๊ฐ์ผ๋ก ๋ฎ์ด์ฐ๊ธฐ)
answer = {**dict_1, **dict_2}
print(answer)
# 3. ๋์
๋๋ฆฌ ์ปดํ๋ฆฌํจ์
์ฌ์ฉ => dict.items() ์ผ๋ก ์๋ก์ด ์ปดํ๋ฆฌํจ์
์ฌ์ฉ
answer = {key: value for d in [dict_1, dict_2] for key, value in d.items()}
print(answer)
# 4. ์ค๋ณต ํค ์ฒ๋ฆฌ (ํค๊ฐ ์ค๋ณต๋๋ฉด ๋ชจ๋ ๊ฐ์ ์ ์งํ๊ธฐ)
# from collections import defaultdict
# result = defaultdict(list)
#
# for d in [dict_1, dict_2]:
# for key, value in d.items():
# result[key].append(value)
#
# print(dict(result))
โ๏ธ ์์ - 52
# {'apple': 111, 'banana': '222', 'cherry': 333} ์ ๊ฐ์ ํฉ์ฐํ๋ผ
# hint ํ๋ณํ
data = {'apple': 111, 'banana': '222', 'cherry': 333}
answer = 0
for v in data.values():
# isinstance :: ๊ฐ์ด ์ซ์์ธ์ง ํ์ธ
if isinstance(v, (int, float)): # ์ซ์์ด๋ฉด ๊ทธ๋๋ก ๋ํ๊ธฐ
answer += v
else:
answer += int(v) # ์ซ์๊ฐ ์๋๋ฉด ํ๋ณํ
print(answer)
โจ k-์ต๊ทผ์ ์ด์ ํ๊ท ์ค์ต
import matplotlib.pyplot as plt # ๋งทํ๋กฏ๋ฆฝ
import numpy as np # ๋ํ์ด
from sklearn.neighbors import KNeighborsRegressor # k-์ต๊ทผ์ ์ด์ ํ๊ท ๋ชจ๋ธ
from sklearn.metrics import mean_absolute_error # ํ๊ท ๋ชจ๋ธ์ ํ๊ท ์ ๋๊ฐ ์ค์ฐจ ๊ณ์ฐ
from sklearn.model_selection import train_test_split # ํ๋ จ/ํ
์คํธ ๋ชจ๋ธ ์์ฑ
# ์ํ ๋ฐ์ดํฐ (๊ธธ์ด)
perch_length = np.array([8.4, 13.7, 15.0, 16.2, 17.4, 18.0, 18.7, 19.0, 19.6, 20.0, 21.0,
21.0, 21.0, 21.3, 22.0, 22.0, 22.0, 22.0, 22.0, 22.5, 22.5, 22.7,
23.0, 23.5, 24.0, 24.0, 24.6, 25.0, 25.6, 26.5, 27.3, 27.5, 27.5,
27.5, 28.0, 28.7, 30.0, 32.8, 34.5, 35.0, 36.5, 36.0, 37.0, 37.0,
39.0, 39.0, 39.0, 40.0, 40.0, 40.0, 40.0, 42.0, 43.0, 43.0, 43.5,
44.0])
# ์ํ ๋ฐ์ดํฐ (๋ฌด๊ฒ)
perch_weight = np.array([5.9, 32.0, 40.0, 51.5, 70.0, 100.0, 78.0, 80.0, 85.0, 85.0, 110.0,
115.0, 125.0, 130.0, 120.0, 120.0, 130.0, 135.0, 110.0, 130.0,
150.0, 145.0, 150.0, 170.0, 225.0, 145.0, 188.0, 180.0, 197.0,
218.0, 300.0, 260.0, 265.0, 250.0, 250.0, 300.0, 320.0, 514.0,
556.0, 840.0, 685.0, 700.0, 700.0, 690.0, 900.0, 650.0, 820.0,
850.0, 900.0, 1015.0, 820.0, 1100.0, 1000.0, 1100.0, 1000.0,
1000.0])
# ํ๋ จ/ํ
์คํธ ๋ฐ์ดํฐ ์์ฑ (ํ๊ฒ ํฌํจ)
train_input, test_input, train_target, test_target = train_test_split(perch_length, perch_weight, random_state=42)
print(train_input.shape, test_input.shape)
print(train_target.shape, test_target.shape)
# ํ๋ จ/ํ
์คํธ ๋ฐ์ดํฐ ๊ตฌ์กฐ ๋ณ๊ฒฝ (1์ฐจ์ → 2์ฐจ์)
train_input = train_input.reshape(-1, 1)
test_input = test_input.reshape(-1, 1)
print(train_input.shape, test_input.shape)
# k-์ต๊ทผ์ ์ด์ ํ๊ท ๋ชจ๋ธ ์ ์ธ
knr = KNeighborsRegressor()
# ํ์ต/ํ๊ฐ
knr.fit(train_input, train_target)
knr.score(test_input, test_target) # 0.992809406101064
# ํ
์คํธ ๋ฐ์ดํฐ ์์ธก ์์ฑ
test_predict = knr.predict(test_input)
# ํ
์คํธ ์ธํธ์ ๋ํ ํ๊ท ์ ๋๊ฐ ์ค์ฐจ ๊ณ์ฐ
mae = mean_absolute_error(test_target, test_predict) # 19.157142857142862
# ํ
์คํธ ์ด์ ์ ๋ฆฌ์คํธ
neighbor_list = [1, 5, 10]
# ๊ณผ๋์ ํฉ/๊ณผ์์ ํฉ ํ์ธ
for n in neighbor_list:
knr.n_neighbors = n
knr.fit(train_input, train_target)
print(knr.score(train_input, train_target))
print(knr.score(test_input, test_target))
print('--------------------')
--------------------
0.9852830341215901
0.991309195814175
--------------------
0.9698823289099254
0.992809406101064
--------------------
0.96164569026043
0.9737908255822255
--------------------
๐ถ ๋๋์
1. ๊ฐ์ธ๊ณผ์ ๊ฐ ๋์๋ค. (๐ฃ ๐ฃ )
2. ์ํ ๊ฐ์ข๋ฅผ ๋ค์๋ค. (๋ชจ๋ฅด๊ฒ ๋ค ๐ฃ ๐ฃ ๐ฃ )
3. ์๋ฉ์ด ์ํ๋ค ( ๐ฃ ๐ฃ ๐ฃ ๐ฃ ๐ฃ )