{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# **Ch10 구매이력을 활용한 사용자 그룹화**\n", "- **처음 배우는 머신러닝** 10장 : [**(GitHub)**](https://github.com/your-first-ml-book/Examples)\n", "- **군집화 알고리즘 :** 군집 **K** 갯수를 정의하여 분석 합니다\n", "- **데이터의 전체적인 분석** 으로 명확한 기준까지 도달하진 못합니다 " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## **Python Functions**\n", "- **Counter()** : list 객체내 string 들을 Count 합니다\n", "- **setdefault()**: list 객체를 dict로 변환하여 출력" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Counter({'a': 2, 'b': 3, 'c': 1})" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Counter() List 내 객체의 수를 측정합니다\n", "import collections\n", "collections.Counter(['a', 'b', 'c', 'a', 'b', 'b'])" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Counter({'a': 1, 's': 4, 'b': 1, 'd': 1, 'f': 3, 'g': 2})" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "collections.Counter('asbdfsfgsfsg')" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Counter({'a': 2, 'b': 3, 'c': 1})" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "collections.Counter({'a':2, 'b':3, 'c':1})" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Counter({'a': 2, 'b': 3, 'c': 1})" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "collections.Counter({'a':2, 'b':3, 'c':1})" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Counter({'a': 2, 'b': 3, 'c': 1})" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "collections.Counter(a=2, b=3, c=1)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'a': 0}\n", "{'a': 1, 'b': 0}\n", "{'a': 1, 'b': 1, 'c': 0}\n", "{'a': 1, 'b': 1, 'c': 1}\n", "{'a': 1, 'b': 2, 'c': 1}\n", "{'a': 2, 'b': 2, 'c': 1}\n", "{'a': 2, 'b': 3, 'c': 1}\n" ] } ], "source": [ "s, d = ['a', 'b', 'c', 'b', 'a', 'b', 'c'], {}\n", "for k in s:\n", " # value 없으면 입력값을(0), 있으면 value를 출력\n", " d.setdefault(k, 0) # list를 dict으로 초기화\n", " print(d)\n", " d[k] += 1 # counting 계산을 합니다" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## **1 데이터 전처리 및 임베딩**\n", "### **01 데이터 구조 살펴보기 및 전처리**\n", "- 파일을 읽어 위에 정의한 데이터구조를 분석합니다" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " | InvoiceNo | \n", "StockCode | \n", "Description | \n", "Quantity | \n", "InvoiceDate | \n", "UnitPrice | \n", "CustomerID | \n", "Country | \n", "
---|---|---|---|---|---|---|---|---|
0 | \n", "536365 | \n", "85123A | \n", "WHITE HANGING HEART T-LIGHT HOLDER | \n", "6 | \n", "12/1/10 8:26 | \n", "2.55 | \n", "17850.0 | \n", "United Kingdom | \n", "
1 | \n", "536365 | \n", "71053 | \n", "WHITE METAL LANTERN | \n", "6 | \n", "12/1/10 8:26 | \n", "3.39 | \n", "17850.0 | \n", "United Kingdom | \n", "
2 | \n", "536365 | \n", "84406B | \n", "CREAM CUPID HEARTS COAT HANGER | \n", "8 | \n", "12/1/10 8:26 | \n", "2.75 | \n", "17850.0 | \n", "United Kingdom | \n", "
3 | \n", "536365 | \n", "84029G | \n", "KNITTED UNION FLAG HOT WATER BOTTLE | \n", "6 | \n", "12/1/10 8:26 | \n", "3.39 | \n", "17850.0 | \n", "United Kingdom | \n", "
4 | \n", "536365 | \n", "84029E | \n", "RED WOOLLY HOTTIE WHITE HEART. | \n", "6 | \n", "12/1/10 8:26 | \n", "3.39 | \n", "17850.0 | \n", "United Kingdom | \n", "