2021 02 06機器學習(上)

2021-10-19 00:25:16 字數 4882 閱讀 8693

人工智慧----機器學習----深度學習

機器學習領域:自然語言處理、影象識別、傳統**

框架:tensorflow、caffe、theano

一、機器學習

1.概念

資料中自動分析獲得規律,並利用規律對未知資料進行**

2.機器學習的資料:檔案csv

mysql:1.效能瓶頸、讀取速度 2.格式不太符合機器學習要求的資料格式

pandas:讀取工具 numpy:釋放了gil

3.可用資料集

①kaggle特點:資料量大、真實 ②uci特點:360個資料集,各個領域,資料量幾十萬 ③scikit-learn特點:資料量小、方便

4.資料的結構組成

結構:特徵值+目標值

sklearn:對特徵的處理提供了強大的介面

缺失值:資料轉換 重複值:不需要重複去重

5.特徵工程

原始資料轉換為更好地代表**模型的潛在問題的特徵,從而提高了對未知資料的**準確性

二、資料的特徵抽取

1.釋義:把文字、字串轉換為資料

2.字典特徵抽取

作用:對字典資料進行特徵值化

sklearn.feature_extraction.dictvectorizer

dictvectorizer語法

dictvectorizer(sparse=true,…)

dictvectorizer.fit_transform(x)

x:字典或者包含字典的迭代器

返回值:返回sparse矩陣

dictvectorizer.inverse _transform(x)

x:array陣列或者sparse矩陣

返回值:轉換之前數資料格式

dictvectorizer.get_feature_names()

返回類別名稱

dictvectorizer.transform(x)

按照原先的標準轉換

3.文字特徵抽取

作用:對文字資料進行特徵值化

sklearn.feature_extraction.countvectorizer

countvectorizer語法

countvectorizer()

返回詞頻矩陣

countvectorizerfit_transform(x)

x:文字或者包含文字字串的的可迭代物件

返回值:返回sparse矩陣

countvectorizer.inverse_transform(x)

x:array陣列或者sparse矩陣

返回值:轉換之前資料格式

count vectorizerget feature names()

返回值:單詞列表

def

countvec()

: cv = countvectorizer(

) data = cv.fit_transform(

["life is is short,i like python"

,"life is too long"

,"i dislike python"])

print

(cv.get_feature_names())

print

(data.toarray())

""" 1.統計所有文章當中所有的詞,重複的只看一次 詞的列表

2.對每篇文章,在詞的列表裡進行統計每個詞出現的項數

3.單個詞不統計

"""return

none

if __name__ ==

"__main__"

: countvec(

)

4.中文特徵抽取

5.tf-idf

tf:term frequency:詞的頻率(出現的次數) idf:逆文件頻率inverse document frequency

log(總文件數量/該次出現的文件數量)

log(數值):輸入的數值越小,結果越小

作用:用以評估一字詞對於乙個檔案集火乙個語料庫中的其中乙份檔案的重要程度

類:sklearn.feature_extraction.text.tfidfvectorizer

tfidfvectorizer語法(分類機器學習演算法的重要依據)

tfidfvectorizer(stop_words=none,…)

返回詞的權重矩陣

tfidfvectorizer.fit_transform(x)

x:文字或者包含文字字串的可迭代物件

返回值:返回sparse矩陣

tfidfvectorizer.inverse_transform(x)

x:array陣列或者sparse矩陣

返回值:轉換之前資料格式

tfidfvectorizer.get_feature_names()

返回值:單詞列表

三、資料的特徵預處理

1.特徵處理的定義

通過特定的統計方法(數學方法)將資料轉換成演算法要求的資料

2.資料型別

數值型資料:標準縮放:1.歸一化2.標準化

類別型資料:one-hot編碼

時間型別:時間的切分

3.歸一化

特點:通過對原始資料進行變換把資料對映到預設為(0.1)之間

公式:x』= (x - min)/(max -min)

公式:x"=x』* (mх -mi) + mi

注:作用於每一列,max為一列的最大值,min 為一列的的最小值,那麼x」為最終結果,mx,mi分別為指定區間值預設mx為1,mi為0

歸一化總結:注意在特定場景下最大值最小值是變化的,而且最大值與最小值 非常容易受異常點影響,所以這種方法魯棒性較差,只適合傳統精確小資料場景。

4.標準化

特點:通過對原始資料進行變換把資料變換到均值為0,方差為1範圍內

公式:x』=x-mean/a

注:作用於每一列, mean為平均值,a為標準差var成為方差,var =(x1-mean)^2+(x2-mean) ^2+…/n(每個特徵的樣本數, a=根號var,其中,方差(考量資料的穩

定性)標準化總結:在已有樣本足夠多的情況下比較穩定,適合現代嘈嘈雜大資料場景。

5.兩者的比較

對於歸一化來說:如果出現異常點,影響了最大值和最小值,那麼結果顯然會發生改變

對於標準化來說:如果出現異常點,由於具有一定資料量,少量的異常點對於平均值的影響並不大,從而方差改變較小。

6.standardscaler語法

standardscaler(…)

處理之後每列來說所有資料都聚集在均值0附近,標準差為1

有標準答案

分類(離散型):近鄰演算法、貝葉斯分類、決策樹與隨機森林、邏輯回歸、神經網路

回歸(連續型):線性回歸、嶺回歸

2.無監督學習特徵值 1000個樣本

sklearn.datasets.fetch 20newsgroups(data home=none,subset=『train』)

subset: 『train』或者』test』,『all』, 可選,選擇要載入的資料集,訓練集的「訓練」,測試集的「測試」,兩者的「全部」

datasets.clear _data_home(data_home=none)

清除目錄下的資料

sklearn資料集劃分api

sklearn.model _selection.train_test_split

sklearn主成分分析api:sklearn.decomposition

pca是什麼?

本質:pca是一種分析、簡化資料集的技術

目的:是資料維數壓縮,盡可能壓縮原資料的維數,損失少量資訊

作用:可以削減回歸分析或者聚類分析中特徵的數量

pca:特徵數量達到上百的時候,考慮資料的簡化(資料也會改變,數量會減少)

pca語法

pca(n_components=none)

將資料分解為較低維數空間

pca.fit_transform(x)

x:numpy aray格式的資料[n_samples,n_fatures]

返回值:轉換後指定維度的array

n_components:小數0~1 90% 90-95%

整數 減少到的特徵數量

instacart:把使用者分成幾個類別

合併到一張表中:pd.merge()

交叉表(特殊的分組工具):pd.crosstab()

指標的學習 上)

include include using namespace std intmain int argc,char ar int main int argc,char ar include include using namespace std intmain int argc,char ar in...

整合學習(上) 3

訓練均方誤差與測試均方誤差 偏差 方差的權衡 特徵提取 壓縮估計 正則化 對回歸的係數進行約束或者加罰的技巧對p個特徵的模型進行擬合,顯著降低模型方差,這樣也會提高模型的擬合效果。具體來說,就是將回歸係數往零的方向壓縮,這也就是為什麼叫壓縮估計的原因了。降維 示例 from sklearn impo...

React的學習(上)

什麼是元件?答曰 功能獨立,封裝良好的 塊。前端頁面一直提倡元件化,因為元件化可以實現高重用,大大提公升了我們的開發效率,也讓我們的頁面結構變得更加清晰。所以react提倡將頁面解構成元件樹,以元件為最小單元構造頁面。眾所周知,js的dom操作,是影響網頁效能的重要因素之一,因此react提出了虛擬...