機器學習實戰(python)-Ch02KNN-Notes

Chapter2 KNN

1.numpy.tile函數

格式:tile(A,reps)?
* A:array_like?
* 輸入的array?
* reps:array_like?
* A沿各個維度重復的次數

舉例:A=[1,2]?
1. tile(A,2)?
結果:[1,2,1,2]?
2. tile(A,(2,3))?
結果:[[1,2,1,2,1,2], [1,2,1,2,1,2]]?
3. tile(A,(2,2,3))?
結果:[[[1,2,1,2,1,2], [1,2,1,2,1,2]],?
[[1,2,1,2,1,2], [1,2,1,2,1,2]]]

reps的數字從后往前分別對應A的第N個維度的重復次數。

?

2.numpy.shape函數

shape函數是numpy.core.fromnumeric中的函數,它的功能是讀取矩陣的形狀,比如shape[0]就是讀取矩陣第一維度的長度。

?

?

3.numpy.sum函數(axis=)

python內建函數的sum應該是默認的axis=0 就是普通的相加,當加入axis=1以后就是將一個矩陣的每一行向量相加。

例如:

c = np.array([[0, 2, 1], [3, 5, 6], [0, 1, 1]])
print c.sum()
print c.sum(axis=0)
print c.sum(axis=1)
結果分別是:19, [3 8 8], [ 3 14  2]
#axis=0, 表示列。
#axis=1, 表示行。

?

4.字典的get方法

dict.get(key, "NO")

如果key在字典中不存在,返回第二個參數的值,例如這里返回"NO"

?

5.numpy.argsort函數

array.argsort()返回的是array數組中的值的從小到大的索引

例如x = [2,4,3,1]

注意這里numpy的數組要用它自己的array函數來定義,不能直接定義數組

?

6. sorted函數

?

a = {'math':98, 'english':100, 'PE':77}
b = sorted(a.iteritems(), key=operator.itemgetter(1), reverse=True)

?

iteritems是循環迭代字典a中的每一個key-value對,itemgetter(1)表示排序是根據value的值排序(0則是key),reverse=True代表降序

?

橫軸:每年飛行里程數 ?縱軸:玩電子游戲時間

綠色:不具魅力 ?藍色:魅力一般 ?紅色:極具魅力

Helen女士的擇偶標準挺不錯0.0

?

7.numpy.min() numpy.max()

numpy里的min(0)、max(0) 參數0表示列中取得最小值,而不是選取當前行的最小值,這也是用來處理矩陣的

?

8.使用open(filename)函數時出現錯誤:

File "/Users/qcy/PycharmProjects/MachineLearning/KNN.py", line 109, in img2vector
fr = open(filename)
TypeError: function takes at least 2 arguments (1 given)

這是由于在from os import * 時,把os.open()函數引入了,從而覆蓋了python的built-in的open()函數,這兩個open()函數使用的方法是不一樣的。所以只import需要使用的函數就行,改成from os import listdir

?

總結:KNN這個算法其實挺笨的,它并沒有真正的使用訓練集訓練出一個模型,而是在測試時直接把測試的矩陣擴大到訓練矩陣的規模,然后做一個距離的計算,取前K個,哪個類別的歸類多就歸到哪類。這種分類方式準確率還行,但是它運行的時間和占用的空間可能太過龐大了。 通過這一章也熟悉了使用numpy庫對矩陣進行操作。“KNN另一個缺陷時它無法給出任何數據的基礎結構信息,因此我們也無法知曉平均實例樣本和典型實例樣本具有什么特征。” ?(???)

?

?

轉載于:https://www.cnblogs.com/Rivrr/p/6362658.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/255497.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/255497.shtml
英文地址,請注明出處:http://en.pswp.cn/news/255497.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

猜1-10的數字python腳本

#!/usr/bin/python#coding:utf-8import randomnumrandom.randint(1,10)while True:caiint(raw_input(請輸入隨機數字:))if cai num:print 猜對了exit()elif cai > num:print 猜大了else:print 猜小了非交互式的cp腳本#!/usr/bin/python#coding:utf-8import sysfile1sys.arg…

慣量匹配和最佳傳動比

慣量是剛體繞軸轉動慣性的度量,轉動慣量是表征剛體轉動慣性大小的物理量。它是伺服選型的重要標準,如果慣量匹配不好,會導致電機運行不穩定。如小慣量電機制動性能好,運行反應速度快,適用于輕負載、高速定位的環境;而中…

【pyqt5學習】——滑動條的使用slider

1、獲取滑動條當前值: 滑動條名稱.value() self.threshold1 self.horizontalSlider.value() self.threahold2 self.horizontalSlider_2.value() 2、滑動條值改變信號綁定槽函數 滑動條名稱.valueChanged.connect(槽函數) # 滑條值變化 self.horizontalSlider.valu…

hibernate多對一單向外鍵

hibernate多對一單向外鍵: 描述: 轉載于:https://www.cnblogs.com/blogofwyl/p/5402197.html

Spring在bean配置文件中定義電子郵件模板

在上一篇Spring電子郵件教程,硬編碼的所有電子郵件屬性和消息的方法體中的內容,這是不實際的,應予以避免。應該考慮在Spring bean 配置文件中定義電子郵件模板。1.Spring的郵件發件人Java類使用 Spring的MailSender接口發送電子郵件&#xff…

斐波那契數列規律的計算。

斐波那契數列就是某一個數,總是前兩個數之和,比如0,1,1,2,3,5,8。由于輸出是一串數字,可以用列表的結構存儲。開始時,列表中有兩個值,即0&#xf…

【PyQt5學習】——顏色面板使用(QcolorDialog)

from PyQt5.QtGui import * from PyQt5.QtCore import * from PyQt5.QtWidgets import * BB = QDialogButtonBox# 顏色窗口 class ColorDialog(QColorDialog):def __init__(self, parent=None):super(ColorDialog, self).__init__(parent)self.setOption(QColorDialog.ShowAlph…

PropertyPlaceholderConfigurer實現配置文件讀取

PropertyPlaceholderConfigurer實現配置文件讀取 PropertyPlaceholderConfigurer類的主要的用法是將BeanFactory里定義的內容放在一個.properties的文件中. PropertyPlaceholderConfigurer是個bean工廠后置處理器的實現,也就是BeanFactoryPostProcessor接口的一個實…

算法練習5---快速排序Java版

基本思想:通過一趟排序將要排序的數據分割成獨立的兩部分,其中一部分的所有數據都比另外一部分的所有數據都要小,然后再按此方法對這兩部分數據分別進行快速排序,整個排序過程可以遞歸進行,以此達到整個數據變成有序序…

OPENCV回調函數

OPENCV回調函數 回調函數 回調函數就是一個通過函數指針調用的函數。如果你把函數的指針(地址)作為參數傳遞給另一個函數,當這個指針被用來調用其所指向的函數時,我們就說這是回調函數。回調函數不是由該函數的實現方法直接調用…

PostCSS自學筆記(二)【番外篇二】

圖解PostCSS的插件執行順序 文章其實是一系列的早就寫完了. 才發現忘了發在SegmentFault上面, 最早發布于https://gitee.com/janking/Inf... 這次我繼續研究PostCSS的插件的執行順序。 之前有研究過做過假設,在插件列表中,PostCSS的插件執行順序自上而下…

【Python學習】——實現文本的朗讀(pyttsx3)

import pyttsx3engine = pyttsx3.init() engine.say(三角形)engine.runAndWait() 1、導入第三方庫 import pyttsx32、創建朗讀器 engine = pyttsx3.init() 3、輸入需要朗讀的文本 engine.say(三角形) 4、開始朗讀并且發聲(這一步不能少,不然沒有聲音) engine.runAndWait() 參…

linux命令詳解——iostat

簡介 iostat主要用于監控系統設備的IO負載情況,iostat首次運行時顯示自系統啟動開始的各項統計信息,之后運行iostat將顯示自上次運行該命令以后的統計信息。用戶可以通過指定統計的次數和時間來獲得所需的統計信息。 安裝 yum install -y sysstat 語法 i…

highgui基礎 OpenCV trackbar

在調試程序或者程序執行時需要調整某個變量的值亦或是參數的值,我們需要一個簡單方便的操作,滾動條就是一個非常使用的工具。通過鼠標點擊對滾動條進行拖動操作以期實現調整某個參數的值。下面例程參見Opencv 安裝目錄 samples tutorial_code文件夾。 #i…

匯編 if else

知識點: ?if else ?逆向還原代碼一、了解if else結構 sub esp,8 00401029 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] 0040102C |. 3B45 F8 CMP EAX,DWORD PTR SS:[EBP-8] 0040102F |. 7E 10 JLE SHORT ifelse01.00401041 //表示 else部…

chrome瀏覽器開發模式實現跨域

2019獨角獸企業重金招聘Python工程師標準>>> 增加如下參數, --disable-web-security --user-data-dir 啟動項變為: "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-web-security --user-data-dir 轉載于…

【糾錯】——QThread: Destroyed while thread is still running

目錄 錯誤 出現場景 解決方案 原始代碼 修改后的代碼 錯誤 QThread: Destroyed while thread is still running 出現場景 在對目標缺陷檢測的GUI設計的時候,為了避免界面的卡頓,于是想著利用線程QThread來解決這個問題,但是做好后&#xf…

Java怎樣處理EXCEL的讀取

須要包:poi-3.5.jar、poi-ooxml-3.5.jar 實例: [java] view plaincopy public class ProcessExcel { private Workbook wb null; private Sheet s null; private Row row null; public ProcessExcel(String filePath) …

C#替換字符串起始/結尾指定的字符串

#region 替換字符串起始位置(開頭)中指定的字符串/// <summary> /// 替換字符串起始位置(開頭)中指定的字符串 /// </summary> /// <param name"s">源串</param> /// <param name"searchStr">查找的串</param> /…

腐蝕函數cvErode 和 膨脹函數cvDilate

Erode腐蝕&#xff0c; Dilate膨脹&#xff0c;這兩個形態學函數總是成對出現&#xff0c;前者可以消除較小的點如噪音&#xff0c;后者可以使不連通的圖像合并成塊。 void cvErode( const CvArr* src, CvArr* dst, IplConvKernel* elementNULL, int iterations1 ); void cvDi…