機器學習小組第一周 機器學習的敲門磚kNN演算法

2021-10-03 04:35:07 字數 2297 閱讀 7234

20200224

因為今年的寒假實在太長,今天本來應該是開學的第一天,此時卻只能在家裡自主學習,學校正式線上授課的日子是3月9號,所以報名了乙個機器學習小組一起學習機器學習演算法的原理和實現啦。

學習目標

1.了解knn演算法的思想及其原理

2.使用python手動實現knn演算法,並在sklearn中呼叫knn演算法

3.了解監督學習和非監督學習的概念

學習資料

以及其他資料等

學習要求

每人每週輸出一(多)篇筆記,內容為知識點總結、實踐**或者是案例分析。

監督學習和非監督學習

根據訓練資料是否擁有標記資訊,學習任務大致可劃分為兩大類:

監督學習:(supervised learning)代表為分類和回歸,即對於保險公司的風險控制部門,已知既往的客戶信用資料集,通過分析客戶個人資料等找出其和是否存在違約行為的關係。這種已知y的結果的學習即為監督學習,通過訓練找出特徵和標籤之間的聯絡。

非監督學習:(unsupervised learning)代表為聚類,同樣運用上面的例子,對於乙個全新的公司,拿到一批新客戶的資料,這些客戶還沒有發生違約或終止保險的行為,通過對客戶特徵的分析,從而找到對於y的結果**的可能性。這種未知y的結果的學習即為非監督學習。

20200225

knn(k-nearest neighbour),k最近鄰演算法,既可以用來做分類問題也可以用來做回歸問題,準確度高,對異常點不敏感。演算法思想可以簡單理解為「找鄰居+投票」,使用的模型,實際上是特徵空間的劃分。

knn演算法流程:

1.計算測試物件(即測試集中的某乙個新資料)到訓練集(已知特徵)中每個物件的距離

2.按照距離的遠近排序(一般是歐氏距離)

3.選取與當前測試物件最近的k個訓練物件,作為該測試物件的「鄰居」

4.統計k個鄰居的類別頻次

5.其中頻次最高的類別,即為測試物件通過knn**出的類別

20200229

沒想到週三來了個ddl,這幾天一直在搞導師的任務,下週之前把knn相關的東西再補充一下。先簡單放一下**。

from sklearn.neighbors import kneighborsclassifier

# 建立模型

knn_classifier = kneighborsclassifier(n_neighbors =6)

# 擬合訓練集

knn_classifier.fit(x_train, y_train)

# 用模型**,需要傳入乙個矩陣

# reshape()成乙個二維陣列,第乙個引數是1表示只有乙個資料,第二個引數-1,numpy自動決定第二維度有多少

x = np.array(x)

y_predict = knn_classifier.predict(x.reshape(1,

-1))

print

(y_predict)

from sklearn import datasets

from sklearn.model_selection import train_test_split

from sklearn.neighbors import kneighborsclassifier

import numpy as np

# 讀取資料 x, y

iris = datasets.load_iris(

)x = iris.data

y = iris.target

# 把資料分成訓練資料和測試資料

x_train, x_test, y_train, y_test = train_test_split(x, y, random_state=20)

# 構建knn模型, k值為3、 並做訓練

clf = kneighborsclassifier(n_neighbors=3)

clf.fit(x_train, y_train)

# 計算準確率

from sklearn.metrics import accuracy_score

correct = np.count_nonzero(

(clf.predict(x_test)

==y_test)

==true

)#accuracy_score(y_test, clf.predict(x_test))

print

("accuracy is: %.3f"

%(correct/

len(x_test)

))

學習機器學習筆記 第一周

1 2 什麼是機器學習 1.arthur samuel 對 機器學習的定義 在沒有明確設定的情況下,使計算機具有學習能力的研究領域。2.tom mitchell對 機器學習的定義 乙個好的學習問題定義如下,他說,乙個程式被認為能從經驗e中學習,解決任務t,達到效能度量值p,當且僅當,有了經驗e後,經...

第一周學習

msg dic for k,v in msg dic.items print f 商品名稱 商品 end while true shoppingcar input 請輸入你要購買的商品 strip if shoppingcar not in msg dic or shoppingcar is non...

第一周學習

1.根目錄,位於目錄的最頂端,是所有檔案和目錄的父目錄,其自身沒有父目錄。2.boot 引導檔案存放目錄,核心檔案 vmlinuz 引導載入器 bootloader,grub 都存放於此目錄。3.bin 存放使用者基本命令,不能關聯至獨立分割槽,os啟動就會用到的程式。4.sbin 存放管理類基本命...