λ°μν
Data Preprocessing (λ°μ΄ν° μ μ²λ¦¬) κ°μ
λ°μ΄ν° μ μ²λ¦¬λ?
λ°μ΄ν° μ μ²λ¦¬λ μμ λ°μ΄ν°λ₯Ό λΆμ λ° λͺ¨λΈλ§μ μ ν©νκ² λ³ννλ κ³Όμ μ μλ―Έν©λλ€.
- μ΄λ λ°μ΄ν°μ μ μ , λ³ν, ν΅ν© λ±μ ν¬ν¨νλ©°, λ°μ΄ν° νμ§μ λμ¬ μ λ’°μ± μλ λΆμμ κ°λ₯νκ² ν©λλ€.
λ°μ΄ν° μ μ²λ¦¬μ μ€μμ± λ° νμμ±
λ°μ΄ν° μ μ²λ¦¬λ λ€μκ³Ό κ°μ μ΄μ λ‘ λ§€μ° μ€μν©λλ€.
- λ°μ΄ν° νμ§ ν₯μ: μ ννκ³ μΌκ΄λ λ°μ΄ν°λ₯Ό ν보νμ¬ λΆμμ κΈ°μ΄λ₯Ό νΌνΌν ν©λλ€.
- λͺ¨λΈ μ±λ₯ μ΅μ ν: μ μ ν μ μ²λ¦¬λ λ°μ΄ν°λ λͺ¨λΈμ μ±λ₯μ ν₯μμν€κ³ , μμΈ‘ μ νλλ₯Ό λμ λλ€.
- λΆμμ μ λ’°μ± ν₯μ: κΉ¨λν λ°μ΄ν°λ₯Ό μ¬μ©ν¨μΌλ‘μ¨ λΆμ κ²°κ³Όμ μ λ’°μ±μ λμ λλ€.
- λ°μ΄ν° νμ©μ ν¨μ¨μ± ν₯μ: λ°μ΄ν° μ μ²λ¦¬λ₯Ό ν΅ν΄ λΆμ μμ μ΄ λ ν¨μ¨μ μΌλ‘ μνλ μ μμ΅λλ€.
λ°μ΄ν° μ μ²λ¦¬μ μ£Όμ λ¨κ³
- λ°μ΄ν° μ μ
- κ²°μΈ‘κ° μ²λ¦¬: λ°μ΄ν°μ λ΄ λλ½λ κ°μ μ²λ¦¬ν©λλ€. μλ₯Ό λ€μ΄, νκ· κ°μΌλ‘ λ체νκ±°λ ν΄λΉ λ°μ΄ν°λ₯Ό μ κ±°ν©λλ€.
- μ΄μκ° νμ§ λ° μμ : λ°μ΄ν°μ μμ λΉμ μμ μΌλ‘ λ²μ΄λ κ°μ μ°Ύμλ΄κ³ μμ ν©λλ€.
- μ€λ³΅ λ°μ΄ν° μ κ±°: λ°μ΄ν°μ μμ μ€λ³΅λ λ°μ΄ν°λ₯Ό μλ³νκ³ μ κ±°ν©λλ€.
- λ°μ΄ν° λ³ν
- λ°μ΄ν° μ€μΌμΌλ§: λ°μ΄ν°μ λ²μλ₯Ό μ‘°μ νμ¬ λͺ¨λΈμ΄ λ μ νμ΅ν μ μλλ‘ ν©λλ€. μλ₯Ό λ€μ΄, μ κ·ν(normalization)λ νμ€ν(standardization)λ₯Ό μ μ©ν©λλ€.
- λ°μ΄ν° μΈμ½λ©: λ²μ£Όν λ°μ΄ν°λ₯Ό μμΉν λ°μ΄ν°λ‘ λ³νν©λλ€. μλ₯Ό λ€μ΄, μ-ν« μΈμ½λ©(one-hot encoding)μ μ¬μ©ν©λλ€.
- λ°μ΄ν° ν΅ν© λ° λ³ν
- λ°μ΄ν° λ³ν©: μ¬λ¬ λ°μ΄ν°μ μ νλλ‘ κ²°ν©ν©λλ€. μλ₯Ό λ€μ΄, λ°μ΄ν°λ² μ΄μ€ ν μ΄λΈμ μ‘°μΈ(join)ν©λλ€.
- λ°μ΄ν° μ§κ³ λ° λ³ν: λ°μ΄ν°λ₯Ό μμ½νκ³ λ³ννμ¬ λΆμμ μ ν©ν ννλ‘ λ§λλλ€. μλ₯Ό λ€μ΄, κ·Έλ£Ήν(grouping)νκ³ μ§κ³(aggregation) μ°μ°μ μνν©λλ€.
λ°μ΄ν° μμ§ ν μ μ²λ¦¬ κ³Όμ
λ°μ΄ν° μμ§μμ μ μ²λ¦¬λ‘μ μ°κ²°
λ°μ΄ν° λΆμμ 첫 λ²μ§Έ λ¨κ³λ λ€μν μμ€μμ λ°μ΄ν°λ₯Ό μμ§νλ κ²μ λλ€.
λ°μ΄ν°λ₯Ό μμ§νλ λ°©λ²μλ μ¬λ¬ κ°μ§κ° μμΌλ©°, λνμ μΌλ‘ OpenAPI, μΉ ν¬λ‘€λ§ λ±μ΄ μμ΅λλ€.
- OpenAPI: λꡬλ μ κ·Όν μ μλλ‘ κ°λ°©λ APIλ₯Ό ν΅ν΄ λ°μ΄ν°λ₯Ό μμ§ν©λλ€.
- μΉ ν¬λ‘€λ§: μλνλ μ€ν¬λ¦½νΈλ₯Ό μ¬μ©νμ¬ μΉ νμ΄μ§λ₯Ό νμνκ³ λ°μ΄ν°λ₯Ό μμ§ν©λλ€.
μμ§λ λ°μ΄ν°μ μ μ νμμ±
μμ§λ λ°μ΄ν°λ λλΆλΆ μ μ κ° νμν©λλ€. μ΄μ λ 무μμΌκΉμ?
- λ°μ΄ν°λ νμ©μ λͺ©μ μΌλ‘ μμ§ κ³νμ μ§ κ²½μ°κ° κ±°μ μμ: λ°μ΄ν°λ μ’ μ’ λ€μν μΆμ²μμ μμ§λλ©°, μ΄ κ³Όμ μμ λ°μ΄ν°μ νμ, ꡬ쑰, νμ§μ΄ μΌκ΄λμ§ μμ μ μμ΅λλ€.
- λ°μ΄ν° μμ§μ΄ λ¨Όμ μ΄κ³ , μμ§λ λ°μ΄ν°λ₯Ό μ΄λ»κ² νλ©΄ μ νμ©ν μ μμκΉλ λμ€μ κ³ λ €: μμ§λ λ°μ΄ν°λ μμ μνλ‘ μ‘΄μ¬νλ©°, μ΄λ₯Ό λΆμ λ° λͺ¨λΈλ§μ μ ν©νκ² λ³ννλ κ³Όμ μ΄ νμν©λλ€.
μμ§λ λ°μ΄ν°μ μ΄κΈ° νμΈ λ° λΆμ
λ°μ΄ν°λ₯Ό μμ§ν νμλ μ΄λ₯Ό λΆμ λ° λͺ¨λΈλ§μ μ ν©νκ² λ§λ€κΈ° μν΄ μ΄κΈ° νμΈ λ° μ μ²λ¦¬ κ³Όμ μ κ±°μ³μΌ ν©λλ€.
- λ°μ΄ν° λΆλ¬μ€κΈ°
- μμ§λ λ°μ΄ν°λ₯Ό λΆμ νκ²½μΌλ‘ λΆλ¬μ΅λλ€. μλ₯Ό λ€μ΄, CSV νμΌ, λ°μ΄ν°λ² μ΄μ€, API μλ΅ λ±μ λΆλ¬μ¬ μ μμ΅λλ€.
- κΈ°λ³Έ μ 보 νμΈ
- λ°μ΄ν° ꡬ쑰: λ°μ΄ν°κ° μ΄λ»κ² ꡬμ±λμ΄ μλμ§ νμΈν©λλ€. μλ₯Ό λ€μ΄, λ°μ΄ν°νλ μμ νκ³Ό μ΄ κ΅¬μ‘°λ₯Ό νμ ν©λλ€.
- λ°μ΄ν° ν¬κΈ°: λ°μ΄ν°μ μ ν¬κΈ°(ν μμ μ΄ μ)λ₯Ό νμΈν©λλ€.
- λ°μ΄ν° νμ : κ° μ΄μ λ°μ΄ν° νμ μ νμΈνμ¬, μ«μν, λ¬Έμμ΄ν, λ μ§ν λ±μ νμ μ νμ ν©λλ€.
- κ²°μΈ‘μΉ λ° μ΄μμΉ μ²λ¦¬
- κ²°μΈ‘μΉ μ²λ¦¬: λ°μ΄ν°μ λ΄ λλ½λ κ°μ νμΈνκ³ μ²λ¦¬ν©λλ€. κ²°μΈ‘μΉλ₯Ό μ²λ¦¬νλ λ°©λ²μΌλ‘λ νκ· κ°μΌλ‘ λ체, μμ , λλ μμΈ‘ λͺ¨λΈμ μ¬μ©νλ λ°©λ² λ±μ΄ μμ΅λλ€.
- μ΄μμΉ μ²λ¦¬: λΉμ μμ μΌλ‘ λ²μ΄λ κ°μ νμ§νκ³ μ²λ¦¬ν©λλ€. μ΄μμΉλ₯Ό μ²λ¦¬νλ λ°©λ²μΌλ‘λ ν΄λΉ κ°μ μμ νκ±°λ μ κ±°νλ λ°©λ²μ΄ μμ΅λλ€.
λ°μ΄ν° νμ λ³ μ μ²λ¦¬ κ³Όμ
μ«μν λ°μ΄ν° μ μ²λ¦¬
- κ²°μΈ‘κ° λ° μ΄μκ° μ²λ¦¬
- νκ· κ°μΌλ‘ λ체: κ²°μΈ‘κ°μ ν΄λΉ μ΄μ νκ· κ°μΌλ‘ λ체ν©λλ€.
- μ€μκ°μΌλ‘ λ체: κ²°μΈ‘κ°μ ν΄λΉ μ΄μ μ€μκ°μΌλ‘ λ체ν©λλ€.
- μ΄μκ°μΌλ‘ λ체: κ²°μΈ‘κ°μ μΈμ ν κ°μΌλ‘ λ체ν©λλ€.
- μ κ±°: κ²°μΈ‘κ°μ΄ ν¬ν¨λ νμ μ κ±°ν©λλ€.
- μ€μΌμΌλ§ λ° μ κ·ν
- μ€μΌμΌλ§: λ°μ΄ν°μ λ²μλ₯Ό μΌμ ν ν¬κΈ°λ‘ μ‘°μ ν©λλ€. μλ₯Ό λ€μ΄, Min-Max μ€μΌμΌλ§μ λ°μ΄ν° κ°μ 0κ³Ό 1 μ¬μ΄λ‘ λ³νν©λλ€.
- μ κ·ν: λ°μ΄ν°μ λΆν¬λ₯Ό νκ· μ΄ 0μ΄κ³ νμ€νΈμ°¨κ° 1μΈ μ κ· λΆν¬λ‘ λ³νν©λλ€. μ΄λ λͺ¨λΈμ μ±λ₯μ ν₯μμν€λ λ° μ μ©ν©λλ€.
λ²μ£Όν λ°μ΄ν° μ μ²λ¦¬
- κ²°μΈ‘κ° λ° μ΄μκ° μ²λ¦¬
- μ΅λΉκ°μΌλ‘ λ체: κ²°μΈ‘κ°μ ν΄λΉ μ΄μμ κ°μ₯ λΉλ²νκ² λνλλ κ°μΌλ‘ λ체ν©λλ€.
- λ μ΄λΈ μΈμ½λ©
- λ μ΄λΈ μΈμ½λ©: λ²μ£Όν λ°μ΄ν°λ₯Ό μ«μν λ°μ΄ν°λ‘ λ³νν©λλ€. μλ₯Ό λ€μ΄, 'A', 'B', 'C'μ κ°μ λ²μ£Όλ₯Ό κ°κ° 0, 1, 2λ‘ λ³νν©λλ€.
- μ-ν« μΈμ½λ©: λ²μ£Όν λ°μ΄ν°λ₯Ό μ΄μ§ 벑ν°λ‘ λ³νν©λλ€. μλ₯Ό λ€μ΄, 'A', 'B', 'C'λ [1, 0, 0], [0, 1, 0], [0, 0, 1]λ‘ λ³νλ©λλ€.
λ μ§ λ° μκ° λ°μ΄ν° μ μ²λ¦¬
- νμ λ³ν λ° μΆμΆ
- νμ λ³ν: λ μ§ λ° μκ° λ°μ΄ν°λ₯Ό νμ€ νμμΌλ‘ λ³νν©λλ€. μλ₯Ό λ€μ΄, λ¬Έμμ΄ ννμ λ μ§λ₯Ό datetime κ°μ²΄λ‘ λ³νν©λλ€.
- μΆμΆ: μ°λ, μ, μΌ, μκ°, λΆ, μ΄μ κ°μ νΉμ μμλ₯Ό μΆμΆνμ¬ μλ‘μ΄ λ³μλ‘ μμ±ν©λλ€. μλ₯Ό λ€μ΄, '2023-07-12'μμ μ°λ(2023), μ(7), μΌ(12)μ μΆμΆν©λλ€.
ν μ€νΈ λ°μ΄ν° μ μ²λ¦¬
- ν
μ€νΈ μ μ λ° λ²‘ν°ν
- ν μ€νΈ μ μ : λΆνμν λ¬Έμ μ κ±°, μλ¬Έμ λ³ν, 곡백 μ κ±° λ±μ μ μ²λ¦¬ κ³Όμ μ μνν©λλ€.
- 벑ν°ν: ν μ€νΈ λ°μ΄ν°λ₯Ό μμΉν λ°μ΄ν°λ‘ λ³νν©λλ€. μλ₯Ό λ€μ΄, λ¨μ΄ λΉλ 벑ν°ν(Bag-of-Words), TF-IDF, μλ μλ² λ©(Word Embedding) λ±μ μ¬μ©νμ¬ ν μ€νΈλ₯Ό 벑ν°λ‘ λ³νν©λλ€.
λ°μ΄ν° μ μ - κ²°μΈ‘μΉμ μ’ λ₯
λ°μ΄ν° κ²°μΈ‘μΉμ μ’ λ₯λ μλμ κ°μ΅λλ€.
MCAR (Missing Completely at Random)
- κ°λ : λ°μ΄ν°κ° μμ ν 무μμλ‘ λλ½λ κ²½μ°λ‘, λλ½λ λ°μ΄ν°μ μ΄λ€ λ³μ κ°μλ μκ΄κ΄κ³κ° μμ΅λλ€.
- μμ: μ€λ¬Έ μ‘°μ¬μμ 무μμλ‘ μ§λ¬Έμ 건λλ΄ κ²½μ°. μ΄λ¬ν λλ½μ νΉμ ν¨ν΄ μμ΄ λ°μνλ©°, μ 체 λ°μ΄ν°μ μ κ³ λ₯΄κ² λΆν¬λ©λλ€.
MAR (Missing at Random)
- κ°λ : λ°μ΄ν° λλ½μ΄ λ€λ₯Έ κ΄μΈ‘ κ°λ₯ν λ³μμ κ΄λ ¨λ κ²½μ°λ‘, λλ½λ λ°μ΄ν° μ체μλ μκ΄κ΄κ³κ° μμ΅λλ€.
- μμ: λμ΄κ° λ§μ μλ΅μλ€μ΄ μλ μ 보λ₯Ό μ 곡νμ§ μμ κ²½μ°. μ¬κΈ°μ λμ΄λ κ΄μΈ‘ κ°λ₯ν λ³μλ‘, μ΄ λ³μμ κ΄λ ¨νμ¬ μλ μ λ³΄κ° λλ½λ©λλ€.
MNAR (Missing Not at Random)
- κ°λ : λ°μ΄ν° λλ½μ΄ μ체 λ³μμ κ΄λ ¨λ κ²½μ°λ‘, λλ½λ λ°μ΄ν° μ체μ μκ΄κ΄κ³κ° μμ΅λλ€.
- μμ: λμ μλμ κ°μ§ μ¬λλ€μ΄ μλ μ 보λ₯Ό μ 곡νμ§ μμ κ²½μ°. μ¬κΈ°μ μλ μ 보 μμ²΄κ° λλ½μ μμΈμ΄ λ©λλ€.
λ°μ΄ν° μ μ - κ²°μΈ‘κ°μ μμΈ
λν κ²°μΈ‘κ°μ μμΈμ 3κ°μ§ μμΈμ΄ μμ΅λλ€.
λ°μ΄ν° μ λ ₯ μ€λ₯
- κ°λ : μλ μ λ ₯ κ³Όμ μμ λ°μνλ μ€μλ‘ μΈν΄ λ°μ΄ν°κ° λλ½λ©λλ€.
- μμ: λ°μ΄ν° μ λ ₯μκ° μ€μλ‘ κ°μ μ λ ₯νμ§ μκ±°λ, μλͺ»λ κ°μ μ λ ₯νμ¬ λλ½μ΄ λ°μνλ κ²½μ°.
μλ΅μμ λ―Έμλ΅
- κ°λ : μ€λ¬Έ μ‘°μ¬λ μΈν°λ·°μμ νΉμ μ§λ¬Έμ λν μλ΅μ΄ λλ½λλ κ²½μ°μ λλ€.
- μμ: μλ΅μκ° λ―Όκ°ν μ§λ¬Έμ λ΅λ³μ νΌνκ±°λ, νΉμ μ§λ¬Έμ 건λλ°λ κ²½μ°.
λ°μ΄ν° μμ§ κ³Όμ μ λ¬Έμ
- κ°λ : λ°μ΄ν° μμ§ κ³Όμ μμ λ°μνλ κΈ°μ μ λ¬Έμ λ‘ μΈν΄ λ°μ΄ν°κ° λλ½λ©λλ€.
- μμ: μΌμ μ€μλ, ν΅μ μ€λ₯, λ°μ΄ν°λ² μ΄μ€ μ μ₯ λ¬Έμ λ±μΌλ‘ μΈν΄ λ°μ΄ν°κ° μ λλ‘ μμ§λμ§ μλ κ²½μ°.
λ°μ΄ν° μ μ - μ΄μμΉ(Outlier)
Outlier(μ΄μμΉ)λ λ°μ΄ν° λΆν¬μμ λ²μ΄λ κ·Ήλ¨μ μΈ κ°μ μλ―Έν©λλ€.
μ΄λ λ°μ΄ν° μΈνΈμμ λ€λ₯Έ κ°λ€κ³Ό λΉκ΅νμ λ νμ ν ν¬κ±°λ μμ κ°μ κ°λ¦¬ν΅λλ€.
- Outlier(μ΄μμΉ)λ ν΅κ³μ λΆμκ³Ό λͺ¨λΈ μ±λ₯μ ν° μν₯μ μ€ μ μμ΅λλ€.
- μλ₯Ό λ€μ΄, νκ· κ°μ μ곑νκ±°λ, νκ· λΆμμ κ²°κ³Όλ₯Ό λΆμ ννκ² λ§λ€ μ μμ΅λλ€.
Outlier(μ΄μμΉ)μ μμΈ
λ°μ΄ν° μ λ ₯ μ€λ₯
- κ°λ : μλ λ° μλνλ μμ€ν μμ λ°μν μ μλ μ€λ₯λ‘ μΈν΄ μ΄μμΉκ° λ°μν©λλ€.
- μμ: μλ λ°μ΄ν° μ λ ₯ μ μ€μλ‘ μλͺ»λ κ°μ μ λ ₯νκ±°λ, μΌμ μ€μλμΌλ‘ μΈν΄ λΉμ μμ μΈ λ°μ΄ν°κ° μμ§λλ κ²½μ°.
λ°μ΄ν° μμ§ λ¬Έμ
- κ°λ : μλͺ»λ μμ§ λ°©λ²μ΄λ μ μ‘ κ³Όμ μμμ μ€λ₯λ‘ μΈν΄ μ΄μμΉκ° λ°μν μ μμ΅λλ€.
- μμ: λ°μ΄ν° μ μ‘ μ€ λ€νΈμν¬ λ¬Έμ λ‘ μΈν κ°μ μμ λλ λ°μ΄ν° μμ§ μ₯λΉμ μ€μλμΌλ‘ μΈν μ€λ₯.
μ΄μ§μ μΈ λ°μ΄ν°
- κ°λ : μλ‘ λ€λ₯Έ νΉμ±μ κ°μ§ κ·Έλ£Ήμ νΌν©μ΄λ λλ¬Έ μ΄λ²€νΈλ‘ μΈν΄ λ°μνλ μ΄μμΉμ λλ€.
- μμ: μλ‘ λ€λ₯Έ μ°λ Ήλμ λ°μ΄ν°κ° νλμ λ°μ΄ν°μ μ ν¬ν¨λμ΄ νκ· μ°λ Ήμ μ곑μν€λ κ²½μ°.
μμ°μ λ³λμ±
- κ°λ : λ°μ΄ν°μ μμ°μ€λ¬μ΄ λ³λμ±μΌλ‘ μΈν΄ μ΄μμΉκ° λ°μν μ μμ΅λλ€.
- μμ: μΌμΌ κΈ°μ¨ λ°μ΄ν°μμ μμ°μ€λ½κ² λ°μνλ κ·Ήλ¨μ μΈ κΈ°μ¨ λ³ν.
νΉμ΄ν μν© λλ 쑰건
- κ°λ : νΉμ μν©μμλ§ λ°μνλ μμΈμ μΈ κ°μΌλ‘ μΈν΄ μ΄μμΉκ° λ°μν©λλ€.
- μμ: νΉμ λ μλ§ λ°μνλ κ·Ήλ¨μ μΈ ν맀λ μ¦κ°, μλ₯Ό λ€μ΄ λΈλ νλΌμ΄λ°μ΄ κ°μ μ΄λ²€νΈ.
λ°μ΄ν° λ³ν
Scaling (μ€μΌμΌλ§)
μ€μΌμΌλ§μ λ°μ΄ν°μ λ²μλ₯Ό μμλ‘ μ‘°μ ν΄μ£Όλ κ³Όμ μ λλ€.
- μ΄λ λͺ¨λΈ νμ΅ μ λ€μν νΉμ±μ λ¨μ μ°¨μ΄λ₯Ό μμ κ³ , λμΌν μ€μΌμΌλ‘ μ‘°μ νμ¬ νμ΅μ λ ν¨κ³Όμ μΌλ‘ ν μ μλλ‘ λμ΅λλ€.
Standardization (νμ€ν)
νμ€νλ λ°μ΄ν°μ νκ· μ 0, νμ€νΈμ°¨λ₯Ό 1λ‘ λ³ννμ¬ λ°μ΄ν°μ λΆν¬λ₯Ό νμ€μ κ· λΆν¬λ‘ λ§λλ κ³Όμ μ λλ€.
- μ΄λ₯Ό ν΅ν΄ λ°μ΄ν°μ μ€μ¬μ 0μΌλ‘ λ§μΆκ³ , λΆν¬λ₯Ό μΌμ νκ² ν©λλ€.
- μλ₯Ό λ€μ΄, ν€μ λͺΈλ¬΄κ² λ°μ΄ν°λ₯Ό νμ€ννλ©΄, κ° λ°μ΄ν° ν¬μΈνΈλ νκ· μμ μΌλ§λ λ¨μ΄μ Έ μλμ§, νμ€νΈμ°¨ λ¨μλ‘ ννλ©λλ€.
Normalization (μ κ·ν)
μ κ·νλ λ°μ΄ν°λ₯Ό νΉμ λ²μλ‘ λ³ννλ κ³Όμ μ λλ€.
- μ£Όλ‘ 0μμ 1 μ¬μ΄μ λ²μλ‘ λ³ννλ©°, μ΄λ regularization(κ·μ ν)μλ λ€λ¦ λλ€.
- μλ₯Ό λ€μ΄, κ°κ²© λ°μ΄ν°κ° 0μμ 1 μ¬μ΄λ‘ μ κ·νλλ©΄, λͺ¨λ κ°κ²© κ°μ΄ ν΄λΉ λ²μ λ΄μ μμΉνκ² λ©λλ€.
λ°μ΄ν° λ³νμ μ΄μ
κ·Έλ¬λ©΄ μ°λ¦¬κ° λ°μ΄ν° λΆμμ ν λ λ°μ΄ν° λ³νμ νλ μ΄μ λ 무μμΌκΉμ?
- λ¨μ μ°¨μ΄ μ κ±°
- λ€μν νΉμ±μ λ¨μ μ°¨μ΄λ₯Ό μμ κ³ , λμΌν μ€μΌμΌλ‘ μ‘°μ νμ¬ λͺ¨λΈ νμ΅μ λμμ μ€λλ€.
- μλ₯Ό λ€μ΄, ν€(cm)μ λͺΈλ¬΄κ²(kg)μ λ¨μ μ°¨μ΄λ₯Ό μ κ±°ν©λλ€.
- κ³μ°μ μμ μ±κ³Ό μλ ν₯μ
- λ°μ΄ν°λ₯Ό μΌμ ν λ²μλ‘ μ‘°μ νμ¬ κ³μ°μ μμ μ±κ³Ό μλλ₯Ό ν₯μμν΅λλ€.
- μ΄λ νΉν Gradient Descent(κ²½μ¬ νκ°λ²)κ³Ό κ°μ μ΅μ ν μκ³ λ¦¬μ¦μμ μ€μν©λλ€.
- λͺ¨λΈ μ±λ₯ ν₯μ
- μ€μΌμΌλ§λ λ°μ΄ν°λ λͺ¨λΈμ΄ λ λΉ λ₯΄κ³ μ ννκ² μλ ΄νλλ‘ λμμ€λλ€.
- μ΄λ νΉν μ κ²½λ§κ³Ό κ°μ 볡μ‘ν λͺ¨λΈμμ μ€μν μν μ ν©λλ€.
Data Encoding (λ°μ΄ν° μΈμ½λ©)
Label Encoding (λ μ΄λΈ μΈμ½λ©)
λ μ΄λΈ μΈμ½λ©μ λ²μ£Όν λ°μ΄ν°λ₯Ό μ«μλ‘ λ³ννλ κΈ°λ²μ λλ€. κ° λ²μ£Όλ₯Ό κ³ μ ν μ μλ‘ λ§€ννμ¬ μμΉν λ°μ΄ν°λ‘ λ³νν©λλ€.
- λ³ν λ°©μ: κ° λ²μ£Όλ₯Ό κ³ μ ν μ μ κ°μΌλ‘ λ³νν©λλ€. μλ₯Ό λ€μ΄, ['μ¬κ³Ό', 'λ°λλ', '체리']λ₯Ό [0, 1, 2]λ‘ λ³νν©λλ€.
- μ₯μ : λ¨μνκ³ , λ©λͺ¨λ¦¬ μ¬μ©λμ΄ μ μ΅λλ€.
- λ¨μ : λ²μ£Ό κ° μμκ° μλ κ²½μ°, λͺ¨λΈμ΄ μλͺ»λ κ΄κ³λ₯Ό νμ΅ν μ μμ΅λλ€.
- μλ₯Ό λ€μ΄, 'μ¬κ³Ό', 'λ°λλ', '체리'κ° 0, 1, 2λ‘ λ³νλλ©΄, λͺ¨λΈμ΄ 'μ¬κ³Ό'μ 'λ°λλ' μ¬μ΄μ μμ κ΄κ³κ° μλ€κ³ μ€μΈν μ μμ΅λλ€.
Label Encoding Example
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
labels = ['μ¬κ³Ό', 'λ°λλ', '체리']
encoded_labels = le.fit_transform(labels)
print(encoded_labels) # Output: [0, 1, 2]
One-Hot Encoding (μ-ν« μΈμ½λ©)
μ-ν« μΈμ½λ©μ λ²μ£Όν λ°μ΄ν°λ₯Ό μ΄μ§ 벑ν°λ‘ λ³ννλ κΈ°λ²μ λλ€. κ° λ²μ£Όλ μ΄μ§ 벑ν°μ κ³ μ ν μμΉμ 1λ‘ νμλ©λλ€.
μ΄λ₯Ό ν΅ν΄ λ²μ£Ό κ° μμκ° μλ λ°μ΄ν°λ₯Ό μ²λ¦¬ν λ μ μ©ν©λλ€.
- λ³ν λ°©μ: κ° λ²μ£Όλ₯Ό μ΄μ§ 벑ν°λ‘ λ³νν©λλ€. μλ₯Ό λ€μ΄, ['μ¬κ³Ό', 'λ°λλ', '체리']λ₯Ό [[1, 0, 0], [0, 1, 0], [0, 0, 1]]λ‘ λ³νν©λλ€.
- μ₯μ : λ²μ£Ό κ° μμ κ΄κ³κ° μμμ λͺ νν ννν μ μμ΅λλ€.
- λ¨μ : λ§μ λ²μ£Όκ° μλ κ²½μ°, κ³ μ°¨μ λ°μ΄ν°λ‘ λ³νλμ΄ λ©λͺ¨λ¦¬ μ¬μ©λμ΄ μ¦κ°ν μ μμ΅λλ€.
One-Hot Encoding Example
from sklearn.preprocessing import OneHotEncoder
import numpy as np
ohe = OneHotEncoder(sparse=False)
labels = np.array(['μ¬κ³Ό', 'λ°λλ', '체리']).reshape(-1, 1)
encoded_labels = ohe.fit_transform(labels)
print(encoded_labels)
# Output: [[1. 0. 0.]
# [0. 1. 0.]
# [0. 0. 1.]]
λ μ¨ & μκ° λ°μ΄ν° λ³ν
νμ λ³νμ΄λ?
νμ λ³νμ λ¬Έμμ΄ νμμ λ μ§ λ°μ΄ν°λ₯Ό 'datetime' νμμΌλ‘ λ³ννλ κ³Όμ μ μλ―Έν©λλ€.
- λ μ§ μ°μ° λ° λΉκ΅λ₯Ό μ½κ² μνν μ μλλ‘ νκΈ° μν΄ μ§νλ©λλ€.
- νμμ±: λ μ§ λ°μ΄ν°λ₯Ό datetime νμμΌλ‘ λ³ννλ©΄, λ μ§ κ°μ μ°¨μ΄λ₯Ό κ³μ°νκ±°λ νΉμ λ μ§λ₯Ό κΈ°μ€μΌλ‘ λ°μ΄ν°λ₯Ό μ λ ¬νλ λ±μ μμ μ΄ κ°νΈν΄μ§λλ€.
- μμ: "2023-07-12"μ κ°μ λ¬Έμμ΄ νμμ λ μ§λ₯Ό datetime κ°μ²΄λ‘ λ³ννμ¬ λ€μν λ μ§ μ°μ°μ μνν μ μμ΅λλ€.
νμ λ³ν Example
import pandas as pd
# λ¬Έμμ΄ νμμ λ μ§ λ°μ΄ν°
date_str = "2023-07-12"
# datetime νμμΌλ‘ λ³ν
date_dt = pd.to_datetime(date_str)
print(date_dt)
# Output: 2023-07-12 00:00:00
μΆμΆ
μΆμΆμ 'datetime' κ°μ²΄μμ νΉμ μ 보(μ°λ, μ, μΌ λ±)λ₯Ό μΆμΆνλ κ³Όμ μ μλ―Έν©λλ€.
- λ μ§ λ°μ΄ν°μμ νΉμ μ 보λ₯Ό μΆμΆνμ¬ λΆμμ νμ©νκΈ° μν΄ μ§νλ©λλ€.
- νμμ±: λΆμ λͺ©μ μ λ°λΌ μ°λ, μ, μΌ, μκ° λ±μ νΉμ μ 보λ₯Ό μΆμΆνμ¬ μ¬μ©ν΄μΌ νλ κ²½μ°κ° λ§μ΅λλ€. μλ₯Ό λ€μ΄, μλ³ ν맀λμ λΆμνκ±°λ νΉμ κΈ°κ° λμμ λ³νλ₯Ό νμ ν μ μμ΅λλ€.
- μμ: datetime κ°μ²΄μμ μ°λ, μ, μΌμ μΆμΆνμ¬ μλ‘μ΄ λ³μλ₯Ό μμ±ν μ μμ΅λλ€.
μΆμΆ Example
import pandas as pd
# datetime νμμ λ μ§ λ°μ΄ν°
date_dt = pd.to_datetime("2023-07-12")
# μ°λ, μ, μΌ μΆμΆ
year = date_dt.year
month = date_dt.month
day = date_dt.day
print(f"Year: {year}, Month: {month}, Day: {day}")
# Output: Year: 2023, Month: 7, Day: 12
λ°μ΄ν° ν΅ν© λ° λ³ν
λ°μ΄ν° ν©μΉκΈ°
λ°μ΄ν° ν©μΉκΈ°λ μ¬λ¬ λ°μ΄ν°λ₯Ό νλλ‘ κ²°ν©νλ κ³Όμ μ μλ―Έν©λλ€.
곡ν΅λ ν€ λλ μΈλ±μ€λ₯Ό μ¬μ©νμ¬ λ°μ΄ν° κ°μ κ΄κ³λ₯Ό λ°νμΌλ‘ λ°μ΄ν°λ₯Ό κ²°ν©ν©λλ€.
- μμ: κ³ κ° μ 보 λ°μ΄ν°μ κ±°λ λ΄μ λ°μ΄ν°λ₯Ό κ²°ν©νμ¬ κ³ κ° νλμ λΆμν μ μμ΅λλ€.
import pandas as pd
# μμ λ°μ΄ν°νλ μ
customer_data = pd.DataFrame({
'customer_id': [1, 2, 3],
'name': ['Alice', 'Bob', 'Charlie']
})
transaction_data = pd.DataFrame({
'customer_id': [1, 2, 1, 3],
'purchase_amount': [100, 150, 200, 50]
})
# λ°μ΄ν° ν©μΉκΈ°
merged_data = pd.merge(customer_data, transaction_data, on='customer_id')
print(merged_data)
customer_id name purchase_amount
0 1 Alice 100
1 1 Alice 200
2 2 Bob 150
3 3 Charlie 50
λ°μ΄ν° μ§κ³
λ°μ΄ν° μ§κ³λ λ°μ΄ν°μ νΉμ μ΄μ κΈ°μ€μΌλ‘ ν©κ³, νκ· λ±μ μμ½ ν΅κ³λ₯Ό κ³μ°νλ κ³Όμ μ μλ―Έν©λλ€. κ·Έλ£Ήλ³λ‘ λ°μ΄ν°λ₯Ό μμ½ν©λλ€.
- μμ: μλ³ λ§€μΆ λ°μ΄ν°μμ κ° μμ μ΄ λ§€μΆμ κ³μ°ν μ μμ΅λλ€.
import pandas as pd
# μμ λ°μ΄ν°νλ μ
sales_data = pd.DataFrame({
'month': ['Jan', 'Feb', 'Jan', 'Feb', 'Mar'],
'sales': [200, 150, 300, 200, 250]
})
# μλ³ μ΄ λ§€μΆ κ³μ°
monthly_sales = sales_data.groupby('month').sum()
print(monthly_sales)
sales
month
Feb 350
Jan 500
Mar 250
λ°μ΄ν° κ·Έλ£Ήν
λ°μ΄ν° κ·Έλ£Ήνλ νΉμ μ΄μ κΈ°μ€μΌλ‘ λ°μ΄ν°λ₯Ό κ·Έλ£Ήννμ¬ μ§κ³νλ κ³Όμ μ μλ―Έν©λλ€.
- μμ: κ° μ νκ΅°λ³ νκ· ν맀λμ κ³μ°ν μ μμ΅λλ€.
import pandas as pd
# μμ λ°μ΄ν°νλ μ
product_data = pd.DataFrame({
'product': ['A', 'B', 'A', 'B', 'C'],
'sales': [100, 200, 150, 250, 300]
})
# μ νκ΅°λ³ νκ· ν맀λ κ³μ°
product_sales = product_data.groupby('product').mean()
print(product_sales)
sales
product
A 125.0
B 225.0
C 300.0
λ°μ΄ν° λ³κ²½ (μ¬κ΅¬μ‘°ν)
λ°μ΄ν° λ³νμ λ°μ΄ν°νλ μμ ννλ₯Ό λ³κ²½νλ λ€μν κΈ°λ²μ μλ―Έν©λλ€. λ°μ΄ν°λ₯Ό μμ½νκ±°λ λΆμ λͺ©μ μ λ§κ² μ¬κ΅¬μ±ν©λλ€.
- μμ: κΈ΄ νμμ λ°μ΄ν°λ₯Ό λμ νμμΌλ‘ λ³νν μ μμ΅λλ€.
import pandas as pd
# μμ λ°μ΄ν°νλ μ
long_data = pd.DataFrame({
'date': ['2023-07-01', '2023-07-01', '2023-07-02'],
'variable': ['A', 'B', 'A'],
'value': [10, 20, 15]
})
# λμ νμμΌλ‘ λ³ν
wide_data = long_data.pivot(index='date', columns='variable', values='value')
print(wide_data)
ariable A B
date
2023-07-01 10.0 20.0
2023-07-02 15.0 NaN
λ°μ΄ν° νΌλ²
λ°μ΄ν° νΌλ²μ λ°μ΄ν°νλ μμ νκ³Ό μ΄μ λ³ννμ¬ λ°μ΄ν°λ₯Ό μμ½νλ κ³Όμ μ μλ―Έν©λλ€.
νΉμ μ΄μ μΈλ±μ€λ‘ μ¬μ©νκ³ , λ€λ₯Έ μ΄μ μλ‘μ΄ μ΄λ‘ λ³νν©λλ€.
- μμ: μλ³ μ ν ν맀 λ°μ΄ν°λ₯Ό νΌλ²νμ¬ κ° μ νμ μλ³ ν맀λμ μ΄λ‘ λ³νν μ μμ΅λλ€.
import pandas as pd
# μμ λ°μ΄ν°νλ μ
sales_data = pd.DataFrame({
'month': ['Jan', 'Jan', 'Feb', 'Feb', 'Mar'],
'product': ['A', 'B', 'A', 'B', 'A'],
'sales': [100, 150, 200, 250, 300]
})
# λ°μ΄ν° νΌλ²
pivot_data = sales_data.pivot(index='month', columns='product', values='sales')
print(pivot_data)
product A B
month
Feb 200.0 250.0
Jan 100.0 150.0
Mar 300.0 NaN
λ°μ΄ν° μ μ²λ¦¬ Advanced
νμλ³μ μμ±
νμ λ³μ μμ±μ κΈ°μ‘΄ λ°μ΄ν°μμ μλ‘μ΄ λ³μλ₯Ό μμ±νλ κ³Όμ μ μλ―Έν©λλ€.
- μ΄λ κΈ°μ‘΄ λ³μ κ°μ μνΈμμ©, κ³μ° λλ λ³νμ ν΅ν΄ μλ‘μ΄ μ 보λ₯Ό μΆμΆνμ¬ λ°μ΄ν°μ μ 보λμ μ¦κ°μν΅λλ€.
- λν λΆμ λ° λͺ¨λΈλ§ μ±λ₯μ ν₯μμν΅λλ€.
- λ μ§ λ°μ΄ν°μμ νμ λ³μ μΆμΆ
- μμ: μ°λ, μ, μΌ, μμΌ λ±μ μΆμΆνμ¬ λΆμμ κΉμ΄λ₯Ό λν μ μμ΅λλ€.
import pandas as pd
# λ μ§ λ°μ΄ν°
df = pd.DataFrame({'date': pd.to_datetime(['2023-07-12', '2023-07-13'])})
df['year'] = df['date'].dt.year
df['month'] = df['date'].dt.month
df['day'] = df['date'].dt.day
df['weekday'] = df['date'].dt.weekday
print(df)
- ν
μ€νΈ λ°μ΄ν°μμ νμ λ³μ μμ±
- μμ: ν μ€νΈ κΈΈμ΄, λ¨μ΄ μ λ±μ νμ λ³μλ‘ μμ±ν μ μμ΅λλ€.
df = pd.DataFrame({'text': ['This is a sentence.', 'Another sentence here.']})
df['text_length'] = df['text'].apply(len)
df['word_count'] = df['text'].apply(lambda x: len(x.split()))
print(df)
- ν€μ λͺΈλ¬΄κ²λ₯Ό μ΄μ©ν BMI λ°μ΄ν° μμ±
- μμ: BMI = λͺΈλ¬΄κ² / (ν€/100)^2
df = pd.DataFrame({'height': [170, 180], 'weight': [70, 80]})
df['BMI'] = df['weight'] / (df['height'] / 100) ** 2
print(df)
Data Sampling (λ°μ΄ν° μνλ§)
λ°μ΄ν° μνλ§μ μ 체 λ°μ΄ν°μ μμ μΌλΆ λ°μ΄ν°λ₯Ό μ ννμ¬ λΆμμ΄λ λͺ¨λΈλ§μ μ¬μ©νλ κ³Όμ μ μλ―Έν©λλ€.
μ΄λ λͺ¨μ§λ¨μ νΉμ±μ λννλ μνμ μΆμΆνμ¬ λΆμμ μ μμ±μ λμ΄κ³ , λμ©λ λ°μ΄ν° μ²λ¦¬ μκ°κ³Ό λΉμ©μ μ κ°ν μ μμ΅λλ€.
- λλ€ μνλ§: λ°μ΄ν°μ μμ 무μμλ‘ μνμ μΆμΆν©λλ€.
df = pd.DataFrame({'data': range(100)})
sample = df.sample(n=10)
print(sample)
- μΈ΅ν μνλ§: λͺ¨μ§λ¨μ μ¬λ¬ μΈ΅μΌλ‘ λλκ³ κ° μΈ΅μμ μνμ μΆμΆν©λλ€.
from sklearn.model_selection import train_test_split
df = pd.DataFrame({'data': range(100), 'group': [0, 1] * 50})
train, test = train_test_split(df, test_size=0.2, stratify=df['group'])
print(train['group'].value_counts())
print(test['group'].value_counts())
PCA (μ°¨μ μΆμ κΈ°λ²)
μ°¨μ μΆμ κΈ°λ²μ κ³ μ°¨μ λ°μ΄ν°λ₯Ό μ μ°¨μμΌλ‘ λ³ννμ¬ λ°μ΄ν°μ 볡μ‘μ±μ μ€μ΄λ κ³Όμ μ μλ―Έν©λλ€.
- μ΄λ λ°μ΄ν°μ λ³λμ±μ μ΅λν 보쑴νλ©΄μ μ£Όμ νΉμ±μ μΆμΆνμ¬ λ°μ΄ν°μ μκ°νμ μ΄ν΄λ₯Ό μ©μ΄νκ² νκ³ , λͺ¨λΈμ κ³Όμ ν©μ λ°©μ§νλ©° κ³μ° ν¨μ¨μ±μ ν₯μμν΅λλ€.
- PCA (Principal Component Analysis): λ°μ΄ν°μ λΆμ°μ μ΅λν 보쑴νλ μλ‘μ΄ μΆμ μ°Ύμ λ°μ΄ν°λ₯Ό λ³νν©λλ€.
from sklearn.decomposition import PCA
import numpy as np
# μμ λ°μ΄ν°
data = np.random.rand(100, 5)
pca = PCA(n_components=2)
reduced_data = pca.fit_transform(data)
print(reduced_data)
- t-SNE (t-distributed Stochastic Neighbor Embedding): κ³ μ°¨μ λ°μ΄ν°λ₯Ό μ μ°¨μμΌλ‘ λ³ννμ¬ λ°μ΄ν°μ ꡬ쑰λ₯Ό μκ°ννλ λ° μ μ©ν κΈ°λ²μ λλ€.
from sklearn.manifold import TSNE
# μμ λ°μ΄ν°
data = np.random.rand(100, 5)
tsne = TSNE(n_components=2)
reduced_data = tsne.fit_transform(data)
print(reduced_data)
λ°μ΄ν° μ μ²λ¦¬ μ΅μ ν
μ μ²λ¦¬ μμ μ μλν
μ μ²λ¦¬ μμ μ μλνλ λ°λ³΅μ μ΄κ³ μΌκ΄λ μ μ²λ¦¬ μμ μ μλμΌλ‘ μννμ¬ ν¨μ¨μ±μ λμ΄λ κ³Όμ μ μλ―Έν©λλ€.
μ΄λ μ€ν¬λ¦½νΈ λ° νμ΄νλΌμΈμ μ¬μ©νμ¬ μ μ²λ¦¬ μμ μ μλμΌλ‘ μ€νν©λλ€.
- ν¨μ¨μ±: μλ μμ μ μ€λ₯λ₯Ό μ€μ΄κ³ , μμ μκ°μ λ¨μΆνλ©°, μΌκ΄μ±μ μ μ§ν μ μμ΅λλ€.
- μλν λꡬ: μ€ν¬λ¦½νΈμ νμ΄νλΌμΈμ νμ©νμ¬ μ μ²λ¦¬ μμ μ μλνν©λλ€.
νμ΄νλΌμΈ ꡬμΆ
νμ΄νλΌμΈ ꡬμΆμ μΌλ ¨μ μ μ²λ¦¬ λ¨κ³λ₯Ό μμ°¨μ μΌλ‘ μλμΌλ‘ μ€ννλ κ³Όμ μ μλ―Έν©λλ€.
κ° λ¨κ³λ³λ‘ μ μ²λ¦¬ μμ μ μ μνκ³ μ΄λ₯Ό νμ΄νλΌμΈμΌλ‘ μ°κ²°νμ¬ μ μ²λ¦¬ μμ μ μΌκ΄μ±κ³Ό μ¬νμ±μ 보μ₯ν©λλ€.
- μ€μ μ½λμμ νμ΄νλΌμΈ: μ½λ©μ ν΅ν΄ μ μ²λ¦¬ νμ΄νλΌμΈμ μμ±νμ¬ μλνλ₯Ό ꡬνν©λλ€.
- μλ―Έ/ꡬ쑰μμ νμ΄νλΌμΈ: μ μ²λ¦¬ μμ μ μμλ₯Ό μλ―Έμ μΌλ‘ μ μνμ¬ κ΅¬μ‘°μ μΌλ‘ μ°κ²°ν©λλ€.
μμ μ½λ
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler, OneHotEncoder
from sklearn.compose import ColumnTransformer
from sklearn.impute import SimpleImputer
# μμΉν λ° λ²μ£Όν λ³μμ μ μ²λ¦¬ νμ΄νλΌμΈ ꡬμ±
numeric_features = ['age', 'salary']
numeric_transformer = Pipeline(steps=[
('imputer', SimpleImputer(strategy='mean')),
('scaler', StandardScaler())
])
categorical_features = ['gender', 'department']
categorical_transformer = Pipeline(steps=[
('imputer', SimpleImputer(strategy='most_frequent')),
('onehot', OneHotEncoder(handle_unknown='ignore'))
])
# μ 체 λ°μ΄ν° μ μ²λ¦¬ νμ΄νλΌμΈ ꡬμ±
preprocessor = ColumnTransformer(
transformers=[
('num', numeric_transformer, numeric_features),
('cat', categorical_transformer, categorical_features)
]
)
λμ©λ λ°μ΄ν° μ²λ¦¬
λμ©λ λ°μ΄ν°λ₯Ό ν¨μ¨μ μΌλ‘ μ²λ¦¬νκΈ° μν μ λ΅κ³Ό κΈ°λ²μ μλ―Έν©λλ€.
μ΄λ λΆμ° μ²λ¦¬, λ³λ ¬ μ²λ¦¬, λ©λͺ¨λ¦¬ κ΄λ¦¬ λ±μ κΈ°λ²μ μ¬μ©νμ¬ λ°μ΄ν° μ²λ¦¬μ ν¨μ¨μ±μ λμ λλ€.
- λΆμ° μ²λ¦¬: λ°μ΄ν°λ₯Ό μ¬λ¬ λ Έλμ λΆμ°νμ¬ λμμ μ²λ¦¬ν©λλ€. Hadoop, Spark λ±μ λΆμ° μ²λ¦¬ νλ μμν¬λ₯Ό μ¬μ©ν©λλ€.
- λ³λ ¬ μ²λ¦¬: λ°μ΄ν°λ₯Ό μ¬λ¬ νλ‘μΈμ€μμ λμμ μ²λ¦¬ν©λλ€. multiprocessing, Dask λ±μ λ³λ ¬ μ²λ¦¬ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©ν©λλ€.
- λ©λͺ¨λ¦¬ κ΄λ¦¬: λ©λͺ¨λ¦¬ μ¬μ©μ μ΅μ ννμ¬ λμ©λ λ°μ΄ν°λ₯Ό ν¨μ¨μ μΌλ‘ μ²λ¦¬ν©λλ€. λ°μ΄ν° νμ μ΅μ ν, μ²ν¬(chunk) λ¨μ μ²λ¦¬λ₯Ό ν΅ν΄ λ©λͺ¨λ¦¬ μ¬μ©μ μ€μ λλ€.
# Daskλ₯Ό μ¬μ©ν λ³λ ¬ μ²λ¦¬ μμ
import dask.dataframe as dd
# CSV νμΌμ Dask DataFrameμΌλ‘ λ‘λ
df = dd.read_csv('large_dataset.csv')
# λ°μ΄ν° μ²λ¦¬
df = df[df['value'] > 0]
result = df.groupby('category').mean().compute()
print(result)
μ μ²λ¦¬ κ³Όμ μ ν¨μ¨μ± ν₯μ?
μ μ²λ¦¬ κ³Όμ μ μλμ ν¨μ¨μ±μ λμ΄κΈ° μν λ€μν κΈ°λ²μ μλ―Έν©λλ€.
μ΅μ νλ μκ³ λ¦¬μ¦, μ½λ© μ€νμΌ κ°μ , μ μ ν λ°μ΄ν° ꡬ쑰 μ¬μ© λ±μ ν΅ν΄ λ°μ΄ν° μ μ²λ¦¬ μκ°μ λ¨μΆνκ³ , 리μμ€ μ¬μ©μ μ΅μ νν©λλ€.
- μ΅μ νλ μκ³ λ¦¬μ¦: μκ³ λ¦¬μ¦μ μ΅μ ννμ¬ λ°μ΄ν° μ²λ¦¬ μλλ₯Ό λμ λλ€.
- μ½λ© μ€νμΌ κ°μ : ν¨μ¨μ μΈ μ½λ© μ€νμΌμ ν΅ν΄ μ μ²λ¦¬ μμ μ μλμ κ°λ μ±μ λμ λλ€.
- μ μ ν λ°μ΄ν° ꡬ쑰 μ¬μ©: μμ μ μ ν©ν λ°μ΄ν° ꡬ쑰λ₯Ό μ¬μ©νμ¬ ν¨μ¨μ±μ λμ λλ€. pandas, NumPy, Dask λ±μ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ μ ν νμ©ν©λλ€.
import pandas as pd
import numpy as np
# pandasλ₯Ό μ¬μ©ν ν¨μ¨μ μΈ λ°μ΄ν° μ²λ¦¬
df = pd.DataFrame({'A': range(1, 100001), 'B': range(100001, 200001)})
# 벑ν°ν μ°μ°μ μ¬μ©ν ν¨μ¨μ μΈ κ³μ°
df['C'] = df['A'] + df['B']
λ°μν
'π Data Analysis' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Data Analysis] κΈ°μ΄ ν΅κ³, μκ΄ & μΈκ³Όκ΄κ³ (0) | 2024.07.18 |
---|---|
[Data Analysis] λ°μ΄ν°μ μ’ λ₯μ μμ± & λ°μ΄ν° νμ (EDA) (0) | 2024.07.18 |
[Data Analysis] Data Analysis - λ°μ΄ν° λΆμ (0) | 2024.07.17 |
[Data Analysis] λ°μ΄ν° μμ§ (Crawling, Scrapping) (0) | 2024.07.12 |
[Data Analysis] λ°μ΄ν°μ νμ© λ° κ΅¬ν (0) | 2024.07.12 |