Pythonライブラリを使った初日の機械学習




開始します。


ビッグデータモデリングを開発します.今は本当に事業のために始まったのです.学校の図書館からこの本を持ってきました.今はあまり時間がありません.始まります!
第1章.機械学習と機械学習アプリケーションの基本概念,本の中で紹介する環境
第二章.指導的学習(実戦で広く用いられる機械学習アルゴリズムは,それぞれ長所と短所がある)
第三章.非指導学習(実戦で広く用いられる機械学習アルゴリズムは,それぞれ長所と短所がある)
第四章.なぜ機械学習でデータを表現することが重要なのか、注意すべき事項やこのようなもの.
第五章.モデル評価とパラメータ調整のための高度な方法、交差チェック、グリッド検索
第六章.モデルを接続し、ワークフローのパイプラインをカプセル化します.
第七章.テキストデータに適用する方法;テキストに特化した処理方法
第八章.これらのテーマを要約し、より難しい参考資料を提供します.

1.1  どうして機械学習ですか。


機械学習が現れる前に,すべてのシステムはif−elseを用いた規則ベースのシステムである.このため、画像認識に関する問題は解決できない.機械学習は画像認識などの複雑な問題を解決することができる.

1.1.1機械学習で解決できる問題


機械学習は既知のケースに基づいて汎用モデルを作成し、意思決定プロセスの自動化を実現する.この方法を지도방식と言います.
一般化されたモデルを作成すると、入出力データが引き続き提供され、アルゴリズムは、所与の入力で必要な出力を生成する方法を探します.

アドバイザ学習の例


封筒に手書きの郵便番号を識別する->正しい数字
医学画像から腫瘍を判断する->Yes/No

非指導学習の例


ブログ記事のテーマを区別する
お客様を興味の近いグループに分ける
不正なWebサイトへのアクセスを検出

指導学習/非指導学習の共通点


指導的学習vs非指導的学習は,コンピュータが認識できる形で入力データを準備することが重要である.
データをExcelテーブルと見なすのは便利です
各データ(Eメール、お客様、取引ごと)を特定する必要があります.
構成データの各属性(顧客年齢、取引価格、地域)
1つのインスタンスをサンプル、データポイントと呼びます.良好な入力データを作成するプロパティ抽出とプロパティエンジニアリングのトピックは後で!
(devstu에서 어떤 데이터들을 수집해야하는지도 나온다!)

1.1.2問題とデータの理解


機械学習の過程で、最も重要なのは使用するデータを理解することであり、これらのデータは解決しなければならない問題と何の関係があるのか.
データによる問題解決が必要です.データセットで何をするかを理解しなければなりません.

1.2 Pythonですか?


パイソンです.クー万歳

1.3 scikit-learn


NumpyとSchipy  活用するグラフを描くには

実習コース


1-4-7 (211207)
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest.js?config=TeX-AMS_HTML"></script>
<!-- MathJax configuration -->
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
    tex2jax: {
        inlineMath: [ ['$','$'], ["\\(","\\)"] ],
        displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
        processEscapes: true,
        processEnvironments: true
    },
    // Center justify equations in code and markdown cells. Elsewhere
    // we use CSS to left justify single line equations in code cells.
    displayAlign: 'center',
    "HTML-CSS": {
        styles: {'.MathJax_Display': {"margin": 0}},
        linebreaks: { automatic: true }
    }
});
</script>
<!-- End of mathjax configuration --></head>

Numpy(基本データ構造)º


In [11]:
import numpy as np

x = np.array([[1,2,3], [4,5,6]])

print('x:')
print("{}".format(x))

</div>
<div class="prompt"></div>
x:
[[1 2 3]
 [4 5 6]]

Numpy오 과학 계산을 하기 위해서 반드시 필요한 패키지이다. 다차원 배열을 위한 기능, 선형 대수 연산, 푸리에 변환과 같은 고수준 함수

scikit-learn에서 Numpy 배열은 기본 데이터 구조. Numpy 배열 형태의 데이터를 입력으로 받는다. 그래서 우리가 사용할 데이터는 모두 Numpy 배열로 변환되어야 합니다. 그래서 우리가 사용할 데이터는 모두 Numpy qoduffh qusghksehldjdi gka

Numpy 핵심 기능은 다차원(n차원 배열)인 ndarray 클래스입니다.

Schipy(疎行列)

In [16]:
from scipy import sparse

eye = np.eye(4)
print("Numpy 배열 : \n{}".format(eye))

</div>
<div class="prompt"></div>
Numpy 배열 : 
[[1. 0. 0. 0.]
 [0. 1. 0. 0.]
 [0. 0. 1. 0.]
 [0. 0. 0. 1.]]
In [17]:
sparse_matrix = sparse.csr_matrix(eye)
print("SciPy의 CSR 행렬 : \n{}".format(sparse_matrix))
</div>
<div class="prompt"></div>
SciPy의 CSR 행렬 : 
  (0, 0)	1.0
  (1, 1)	1.0
  (2, 2)	1.0
  (3, 3)	1.0

과학 계산용 함수들을 모아둔 파이썬 패키지이다. Scipy

고성능 선형 대수, 함수 최적화, 신호 처리, 특수한 수학함수, 통계 분포 등 많은 기능을 제공.

sparse 는 희소행렬을 제공한다.

In [19]:
data = np.ones(4)
row_indices = np.arange(4)
col_indices = np.arange(4)
eye_coo = sparse.coo_matrix((data, (row_indices, col_indices)))
print("C00 표현:\n{}".format(eye_coo))
</div>
<div class="prompt"></div>
C00 표현:
  (0, 0)	1.0
  (1, 1)	1.0
  (2, 2)	1.0
  (3, 3)	1.0

메모리 부족으로 인해서 C00 표현을 해낼 수 있어야 한다!

? 왜 eye랑 data 다르게 처리를 하고 있는가?

  • sparse.csr_matrix(eye)
  • sparse.coo_matrix((data, (row_indices, col_indices)))

matplotlib¶

In [22]:
%matplotlib inline
</div>
In [23]:
import matplotlib.pyplot as plt

# -10부터 10까지 간격이 100개인 배열을 생성한다
x = np.linspace(-10, 10, 100)
y = np.sin(x)
plt.plot(x, y, marker="x")

</div>
<div class="prompt output_prompt">Out[23]:</div>
[<matplotlib.lines.Line2D at 0x4d9c090>]
<div class="prompt"></div>

データ処理と分析


Pandasはデータベースのようです!
テーブルの変更や操作とまったく同じ機能を実行します!
SQLのようにテーブルにクエリーや結合を実行できます.
ディックシリーズを使用してDataframeを作成する方法(本35 P)
In [25]:
import pandas as pd

data = {
"name" : ["John", "Anna", "Peter", "Linda"],
"location" : ["New York", "Paris", "Berlin", "London"],
"Age" : [24, 13, 53, 33]
}

data_pandas = pd.DataFrame(data)
display(data_pandas)

</div>
<div class="prompt"></div>
name
location
Age
0
John
New York
24
1
Anna
Paris
13
2
Peter
Berlin
53
3
Linda
London
33
In [26]:
display(data_pandas[data_pandas.Age > 30])
</div>
<div class="prompt"></div>
name
location
Age
2
Peter
Berlin
53
3
Linda
London
33

mgalearn(ペイント用、または必要なデータのロード用)


この本のソフトウェアバージョン


In [30]:
import sys
print("Python 버전: {}".format(sys.version))

import pandas as pd
print("pandas 버전: {}".format(pd.version))

import matplotlib
print("matplotlib 버전: {}".format(matplotlib.version))

import numpy as np
print("NumPy 버전: {}".format(np.version))

import scipy as sp
print("SciPy 버전: {}".format(sp.version))

import IPython
print("IPython 버전: {}".format(IPython.version))

import sklearn
print("scikit-learn 버전: {}".format(sklearn.version))

</div>
<div class="prompt"></div>
Python 버전: 3.7.6 (default, Jan  8 2020, 16:21:45) [MSC v.1916 32 bit (Intel)]
pandas 버전: 1.0.1
matplotlib 버전: 3.1.3
NumPy 버전: 1.18.1
SciPy 버전: 1.4.1
IPython 버전: 7.12.0
scikit-learn 버전: 0.21.1
In [ ]:
 
</div>