1. 機(jī)器學(xué)習(xí)分類(lèi)
- 監(jiān)督學(xué)習(xí)(Suppervised Learning):從給定的訓(xùn)練集中學(xué)習(xí)出一個(gè)可以預(yù)測(cè)結(jié)果的函數(shù),訓(xùn)練集由人工標(biāo)注
- 無(wú)監(jiān)督學(xué)習(xí)(UnSuppervised Learning):訓(xùn)練集沒(méi)有認(rèn)為標(biāo)注
- 強(qiáng)化學(xué)習(xí)(Reinforcement Learning):通過(guò)觀(guān)察來(lái)學(xué)習(xí)執(zhí)行什么樣的動(dòng)作疯坤,以獲得最好的回報(bào)报慕,每個(gè)動(dòng)作都會(huì)對(duì)環(huán)境有所影響,學(xué)習(xí)對(duì)象根據(jù)環(huán)境的反饋?zhàn)龀雠袛?/li>
- 半監(jiān)督學(xué)習(xí)(Semi-Suppervised Learning):介于監(jiān)督和無(wú)監(jiān)督學(xué)習(xí)之間的一種方法
- 深度學(xué)習(xí)(Deep Learning):利用深層神經(jīng)網(wǎng)絡(luò)模型抽象數(shù)據(jù)的標(biāo)示特征的方法
Python Scikit-learn:一組簡(jiǎn)單有效的工具集压怠。依賴(lài)Python和NumPy眠冈、SciPy、matplotlib庫(kù)。是開(kāi)源和可復(fù)用的
Scikit-learn常用函數(shù) | 應(yīng)用(Applications) | 算法(Algorithm) |
---|---|---|
分類(lèi)(Classification) | 異常檢測(cè)蜗顽、圖像識(shí)別等 | KNN布卡、SVM等 |
聚類(lèi)(Clustering) | 圖像分隔、群體劃分等 | K-Means雇盖、譜聚類(lèi)等 |
回歸(Regression) | 潔哥預(yù)測(cè)忿等、趨勢(shì)預(yù)期等 | 線(xiàn)性回歸、SVR等 |
降維(Dimension Reduction) | 可視化 | PCA崔挖、NMF等 |
2. Sklearn庫(kù)安裝
Sklearn是Scikit-learn的簡(jiǎn)稱(chēng)贸街,是基于Python的第三方模塊,集成了常用的機(jī)器學(xué)習(xí)方法狸相,在進(jìn)行學(xué)習(xí)任務(wù)時(shí)薛匪,并不需要實(shí)現(xiàn)算法,只需要簡(jiǎn)單的調(diào)用庫(kù)中提供的模塊就能完成大多數(shù)的機(jī)器學(xué)習(xí)任務(wù)
Sklearn是在NumPy脓鹃、SciPy逸尖、matplotlib的基礎(chǔ)上開(kāi)發(fā)而成,因此安裝前需要先安裝依賴(lài)庫(kù)
NumPy(Numerical Python):開(kāi)源的Python科學(xué)計(jì)算機(jī)庫(kù)
SciPy:是Sklearn庫(kù)的基礎(chǔ)瘸右,是基于Numpy的一個(gè)集成了多種數(shù)學(xué)算法和函數(shù)的Python模塊
matplotlib:基于Numpy的一套Python工具包娇跟,提供打開(kāi)數(shù)據(jù)繪圖工具
安裝順序:NumPy庫(kù)、SciPy庫(kù)太颤、matplotlib庫(kù)苞俘、Sklearn庫(kù)
# 在cmd命令中直接輸入
pip install -i https://mirrors.aliyun.com/pypi/simple/ NumPy
pip install -i https://mirrors.aliyun.com/pypi/simple/ SciPy
pip install -i https://mirrors.aliyun.com/pypi/simple/ matplotlib
pip install -i https://mirrors.aliyun.com/pypi/simple/ Sklearn
'''檢測(cè)NumPy庫(kù)、SciPy庫(kù)栋齿、matplotlib庫(kù)苗胀、Sklearn庫(kù)是否安裝完成'''
import numpy as np
import scipy
import matplotlib
import sklearn
# 運(yùn)行沒(méi)有報(bào)錯(cuò),說(shuō)明安裝完成
3 標(biāo)準(zhǔn)數(shù)據(jù)集
大小 | sklearn數(shù)據(jù)集 | 調(diào)用方法 | 適用算法 |
---|---|---|---|
小 | 波士頓房?jī)r(jià)數(shù)據(jù)集 | load_boston() |
回歸 |
小 | 鳶尾花數(shù)據(jù)集 | load_iris() |
分類(lèi) |
小 | 糖尿病數(shù)據(jù)集 | load_diabetes() |
回歸 |
小 | 手寫(xiě)數(shù)字?jǐn)?shù)據(jù)集 | load_digits() |
分類(lèi) |
大 | Olivetti臉部圖像數(shù)據(jù)集 | fetch_olivetti_faces() |
降維 |
大 | 新聞分類(lèi)數(shù)據(jù)集 | fetch_20newsgroups() |
分類(lèi) |
大 | 帶標(biāo)簽的人臉數(shù)據(jù)集 | fetch_lfw_people() |
分類(lèi)瓦堵、降維 |
大 | 路透社新聞?wù)Z料數(shù)據(jù)集 | fetch_revl() |
分類(lèi) |
小數(shù)據(jù)集可以直接使用,大數(shù)據(jù)集要在調(diào)用時(shí)程序自動(dòng)下載(一次即可)
'''
波士頓房?jī)r(jià)數(shù)據(jù)集
應(yīng)用到回歸問(wèn)題上
'''
import numpy as np
import scipy
import matplotlib
import sklearn
# 加載數(shù)據(jù)集
from sklearn.datasets import load_boston
# 查看參數(shù)
load_boston # 輸出中return_X_y=False表示是否返回target(價(jià)格)歌亲,默認(rèn)False菇用,只返回data(屬性)
# 獲得變量通用信息
load_boston?
# 引用數(shù)據(jù)
a = load_boston()
a
# 打印維度
print(a.data.shape) # (506, 13)
# 改變參數(shù)
data, target = load_boston(return_X_y=True)
print(data.shape) # (506陷揪, 13)
print(target.shape) # (506惋鸥,)
'''
鳶尾花數(shù)據(jù)集
用于多分類(lèi)問(wèn)題
'''
import numpy as np
import scipy
import matplotlib
import sklearn
# 加載
from sklearn.datasets import load_iris
# 調(diào)用
b = load_iris()
b # [輸出數(shù)據(jù)]
# 查看參數(shù)
load_iris # <function sklearn.datasets._base.load_iris(return_X_y=False)>[默認(rèn)False,表示以字典形式返回?cái)?shù)據(jù)全部信息悍缠;True,則以data卦绣、target返回?cái)?shù)據(jù)]
load_iris? # [一些數(shù)據(jù)信息]
# 打印維度
print(b.data.shape) # (150, 4)
print(b.target.shape) # (150,)
# 打印數(shù)據(jù)集的分類(lèi)名稱(chēng)
list(b.target_names) # ['setosa', 'versicolor', 'virginica']
'''
手寫(xiě)數(shù)據(jù)集
每個(gè)數(shù)字有8*8大小矩陣構(gòu)成飞蚓,矩陣中值0-16滤港,代表顏色深度
'''
import numpy as np
import scipy
import matplotlib
import sklearn
# 加載
from sklearn.datasets import load_digits
# 調(diào)用
c = load_digits()
c # [輸出數(shù)據(jù)]
# 查看參數(shù)
load_digits # <function sklearn.datasets._base.load_digits(n_class=10, return_X_y=False)>[默認(rèn)False,表示以字典形式返回?cái)?shù)據(jù)全部信息趴拧;True,則以data溅漾、target返回?cái)?shù)據(jù)山叮;n_class=10是一個(gè)特別的屬性,表示返回?cái)?shù)據(jù)的類(lèi)別數(shù)2添履,這里=10屁倔,則返回0-9的數(shù)據(jù)樣本]
# 打印維度
print(c.data.shape) # (1797, 64)
print(c.target.shape) # (1797,)
print(c.images.shape) # (1797, 8, 8)
# 以圖像的形式展示
import matplotlib.pyplot as plt
plt.matshow(c.images[0])
plt.show() # [如下圖]
目錄
Python機(jī)器學(xué)習(xí)應(yīng)用
一、Sklearn庫(kù)
二暮胧、無(wú)監(jiān)督學(xué)習(xí)
三锐借、有監(jiān)督學(xué)習(xí)