python機(jī)械學(xué)習(xí)






通過(guò)下棋,從棋譜中獲取規(guī)律,對(duì) 對(duì)手的旗進(jìn)行預(yù)測(cè)
通過(guò)歷史購(gòu)買(mǎi)信息預(yù)測(cè)將要購(gòu)買(mǎi)物品



數(shù)據(jù)集構(gòu)成:從歷史數(shù)據(jù)中獲得規(guī)律,
格式,文件:csv


目標(biāo)值:預(yù)測(cè)房?jī)r(jià)
pandas 處理數(shù)據(jù)

pandas處理完類(lèi)型

不需要去重(ppt錯(cuò)),反復(fù)學(xué)習(xí)同一組數(shù)據(jù),也可以學(xué)到東西。(復(fù)習(xí))




意義:直接影響預(yù)測(cè)結(jié)果
Scikit--learn





轉(zhuǎn)化成數(shù)字的值




字典數(shù)據(jù)
from sklearn.feature_extraction import DicVectorizer

轉(zhuǎn)化為數(shù)組
sparse=False

無(wú)數(shù)補(bǔ)0( ,)坐標(biāo) 1.0值


類(lèi)別換成特征,利用數(shù)據(jù)進(jìn)行分析
排名不代表優(yōu)先級(jí),one-hot


流程
1.實(shí)例化類(lèi)CountVectorizer
2.調(diào)用fit_transform方法輸入數(shù)據(jù)并轉(zhuǎn)換
(1.注意返回格式,利用toarray()進(jìn)行sparse矩陣轉(zhuǎn)化array數(shù)組)
例:['life is short,i like python','life is too long,i dislike python']

導(dǎo)入CountVectorizer
from sklearn.feature_extraction.text import CountVectorizer



sparse矩陣轉(zhuǎn)化成數(shù)組toarray()
CountVectorizer
1,統(tǒng)計(jì)所有文章當(dāng)中所有的詞,重復(fù)的只看做一次,
詞的列表
2,對(duì)每篇文章,在詞的列表里面進(jìn)行統(tǒng)計(jì)每個(gè)詞出現(xiàn)的次數(shù)(單個(gè)字母不統(tǒng)計(jì),無(wú)情感趨向,無(wú)分類(lèi)依據(jù)
文本特征抽?。╟ount{1文本分類(lèi)2情感分析
----隔開(kāi)(分詞),與合并結(jié)果不同
也不支持單個(gè)漢字





文本特征抽取最大用途為文本分類(lèi),
文本特征抽取方式tf idf


分類(lèi)機(jī)械學(xué)習(xí)算法的重要依據(jù)

兩種方式{1歸一化2標(biāo)準(zhǔn)化


sklearn 特征處理API
sklearn.preprocessing(語(yǔ)法


特征值第一個(gè)數(shù)據(jù)運(yùn)算過(guò)程


歸一化步驟
1實(shí)例化MinMaxScalar
2通過(guò)fit_transform轉(zhuǎn)換
[[90,2,10,40],
[60,4,15,45],
[75,3,13,46]]
from sklearn.preprocessing import MinMaxScalar


三個(gè)特征同等重要:進(jìn)行歸一化
使得某一個(gè)特征對(duì)最終結(jié)果不會(huì)造成更大的影響
如果數(shù)據(jù)中異常點(diǎn)較多帶來(lái)的影響:
異常點(diǎn)對(duì)最大值最小值影響太大
歸一性總結(jié):
在特定場(chǎng)景下最大值最小值是變化的,最大值與最小值非常容易受異常點(diǎn)影響,所以這種方法的魯棒性較差,只適合傳統(tǒng)精確小數(shù)據(jù)場(chǎng)景
魯棒性:什么是魯棒性_魯棒性和穩(wěn)定性的區(qū)別_魯棒性和泛化性的區(qū)別 - 與非網(wǎng) (eefocus.com)
標(biāo)準(zhǔn)化特點(diǎn):
通過(guò)對(duì)原始數(shù)據(jù)進(jìn)行變換把數(shù)據(jù)變化到均值為0,標(biāo)準(zhǔn)差為一的范圍內(nèi)

異常點(diǎn)對(duì)平均值影響不大

sklearn 特征化API
sklearn特征化API:scikit-learn.preprocessing.StandardScaler

標(biāo)準(zhǔn)化步驟:
1,實(shí)例化StandardScaler
2,通過(guò)fit_transform轉(zhuǎn)化
[[1.,-1.,3.],[2.,4.,2.],[4.,6.,-1.]]
導(dǎo)入:from sklearn.preprocessing import StandardScaler

樣本足夠多情況下比較穩(wěn)定,適合現(xiàn)代嘈雜大數(shù)據(jù)場(chǎng)景
缺失值
1刪除:如果每行或者列數(shù)據(jù)缺失值達(dá)到一定的比例,建議放棄整行或整列
2插補(bǔ)(建議):通過(guò)缺失值每行或者每列(建議)的平均值,中位數(shù)來(lái)填補(bǔ)
sklearn缺失值A(chǔ)PI:sklearn.preprocessing.Imputer

pandas處理空缺值
dropna(直接刪除)fillna(直接填補(bǔ)
數(shù)據(jù)當(dāng)中的缺失值:np.nan
replace('?',np.nan)


0列
降維:維度:特征數(shù)量

數(shù)據(jù)降維(特征數(shù)據(jù)減少
1特征選擇2主成分分析
特征選擇為什么
亢余:部分特征相關(guān)度高;容易消耗計(jì)算性能
噪聲:部分特征對(duì)預(yù)測(cè)結(jié)果有影響

特征1,2多余
方差大?。嚎紤]所有樣本這個(gè)特征的數(shù)據(jù)情況

過(guò)濾式
sklearn.feature_selection.VarianceThreshold



自動(dòng)把一二四列刪除,方差為1的列
主成分分析

通過(guò)照片(一維)能夠判斷是什么物體(二維

特征之間的相關(guān)性


二維投射到一維


instacart:把用戶(hù)分成幾個(gè)類(lèi)別
import pandas as pd
fromsklearn.decompation import PCA
pd.read_csv(目錄)pd.merge

交叉表pd.crosstab(mt['user_id],mt['aisle'])
cross.head(10)
#進(jìn)行主成分分析
pca=PCA(n_components=0.9)這個(gè)可以幫我們指定希望PCA降維后的特征維度數(shù)目。最常用的做法是直接指定降維到的維度數(shù)目
data=pca.fit_transform(cross)
data.shape
算法是核心,數(shù)據(jù)和計(jì)算是基礎(chǔ)

算法判別依據(jù)



監(jiān)督學(xué)習(xí)
可以輸入數(shù)據(jù)中學(xué)到或建立一個(gè)模型,并一次模型推測(cè)新的結(jié)果。輸入數(shù)據(jù)是由輸入特征值和目標(biāo)值所組成。函數(shù)的輸出可以是一個(gè)連續(xù)的值(稱(chēng)回歸),或是輸出是有限個(gè)離散值(稱(chēng)分類(lèi))
無(wú)監(jiān)督學(xué)習(xí)
可以由輸入數(shù)據(jù)中學(xué)到或建立一個(gè)模型,并依此模型推測(cè)新的結(jié)果。輸入數(shù)據(jù)是由輸入特征值所組成。
分類(lèi)是監(jiān)督學(xué)習(xí)的一個(gè)核心問(wèn)題,在監(jiān)督學(xué)習(xí)中,當(dāng)輸出變量取有限個(gè)離散值時(shí),預(yù)測(cè)問(wèn)題變成分類(lèi)問(wèn)題。最基礎(chǔ)的便是二分類(lèi)問(wèn)題,判斷是非,從倆個(gè)類(lèi)別中選擇一個(gè)作為預(yù)測(cè)結(jié)果:

數(shù)據(jù)1公司本身就有數(shù)據(jù)2合作過(guò)來(lái)的數(shù)據(jù)3購(gòu)買(mǎi)的數(shù)據(jù)
建立模型:根據(jù)數(shù)據(jù)類(lèi)型劃分應(yīng)用種類(lèi)
算法+數(shù)據(jù)
1,原始數(shù)據(jù):明確問(wèn)題做什么
2,數(shù)據(jù)的基本處理:pd去處理數(shù)據(jù)(缺失值,合并表。。
3,特征工程(特征進(jìn)行處理)(重要)
回歸問(wèn)題
分類(lèi)問(wèn)題
4,找到合適算法去進(jìn)行預(yù)測(cè)
5,模型的評(píng)估,判定效果(沒(méi)有合格1換算法(參數(shù)
上線使用,以API形式提供
總結(jié):
1特征抽取onehot編碼,
文本記錄詞語(yǔ)重要性或詞頻
2特征預(yù)處理
數(shù)值型數(shù)據(jù):歸一化,標(biāo)準(zhǔn)化
標(biāo)準(zhǔn)化:平均值,標(biāo)準(zhǔn)差
3特征降維:
算法分類(lèi):
監(jiān)督學(xué)習(xí)
非監(jiān)督學(xué)習(xí)
目標(biāo)值離散還是連續(xù);分類(lèi),回歸
分類(lèi)算法
sklearn數(shù)據(jù)集
1,數(shù)據(jù)集劃分2,sklearn數(shù)據(jù)集接口介紹3,sklearn分類(lèi)數(shù)據(jù)集4,sklearn回歸數(shù)據(jù)集
數(shù)據(jù):1,訓(xùn)練模型 2,評(píng)估(未知數(shù)據(jù)
訓(xùn)練集75%測(cè)試集25%
建立模型 評(píng)估模型
算法(分類(lèi)回歸聚類(lèi))
sklearn數(shù)據(jù)集劃分API
sklearn.model_selection.train_test_split
scikit-learn數(shù)據(jù)集API介紹
sklearn.datasets
加載獲取流行數(shù)據(jù)集
datasets.load_*()
獲取小規(guī)模數(shù)據(jù)集,數(shù)據(jù)包含在datasets里
datasets.fetch_*(data_home=None)
獲取大規(guī)模數(shù)據(jù)集,需要從網(wǎng)絡(luò)上下載,函數(shù)的第一個(gè)參數(shù)是data_home,表示數(shù)據(jù)集下載的目錄,默認(rèn)是~/scikit_learn_data/




