python機器學習——新手入門學習筆記

一,概論

1.什么是機器學習
定義:
機器學習是從數據中自動分析獲得模型,并利用模型對未知數據進行預測。
其實就是通過問題和數據,發現規律,并進行預測,與人腦相似。目的就是從歷史數據當中獲得規律,以及歷史數據是什么樣的格式
數據集由特征值和目標值構成,每一行數據可以稱為樣本,有些數據可以沒有目標值。
例:
監督學習:
? ? ?目標值——類別——演變成分類問題
? ? ?目標值——連續型的數據——演變成回歸問題
目標值——無——無監督學習

注:無監督學習的定義:輸入數據是由輸入特征值所組成
機器學習開發流程:
1.獲取數據
2.數據處理
3.特征工程
4.機器學習算法訓練到模型
5.模型評估
6.應用

2.數據集
可用數據集
學習階段可用的數據集:

sklearn
kaggle
ucI
2.1.2 sklearn數據集
(一) scikit-learn數據集API介紹
(1)sklearn.datasets
加載獲取流行數據集
(2)datasets.load_*()
獲取小規模數據集,數據包含在datasets里?

(3)datasets.fetch_*(data_home=None)
獲取大規模數據集,需要從網絡上下載,函數的第一個參數是 data_home,表示數據集下載的目錄,默認是~/scikit_learn_data/

(二)sklearn小數據集
sklearn.datasets.load_iris()3 3sklearn大數據集
sklearn.datasets.fetch_20newsgroups(data home=None,subset='train')
sklearn數據集返回值介紹
load和fetch返回的數據類型datasets.base.Bunch(字典格式)
(1)?data:特征數據數組,是[n_samples* n_features]的二維 numpy.ndarray 數組
(2) target:標簽數組,是n_samples的一維numpy.ndarray數組。 DESCR:數據描述
(3)feature_names:特征名,新聞數據,手寫數字、回歸數據集沒有。 target_names:標簽名

datasets.base.Bunch(繼承自字典)
dict["key"l = values bunch.key = values

(三)機器學習一般的數據集會劃分為兩個部分:
訓練數據:用于訓練,構建模型
測試數據:在模型檢驗時使用,用于評估模型是否有效
劃分比例:
訓練集:70%80%75%
測試集:30%20% 30%

(四)數據集劃分:
sklearn.model_selection.train_test_split(arrays, "options)
x數據集的特征值
y數據集的標簽值
test_size測試集的大小,一般為float
random_state 隨機數種子,不同的種子會造成不同的隨機采樣結果。相同
的種子采樣結果相同。
return訓練集特征值,測試集特征值,訓練集目標值,測試集目標值

2.2.2 什么是特征工程
特征工程是使用專業背景知識和技巧處理數據,使得特征能在機器學習算法上發揮更好的作用的過程。
意義:會直接影響機器學習的效果。
2.2.3特征工程的位置與數據處理的比較
pandas:一個數據讀取非常方便以及基本的處理格式的工具?
sklearn:對于特征的處理提供了強大的接口
特征工程包含內容:

特征抽取 :
機器學習算法-統計方法
文本類型 -> 數值類型 -> 數值
2.3.1特征提取

sklearn.feature extraction
2.3. 2 字典特征提取->類別 ->one-hot 編碼

sklearn.feature_extraction.DictVectorizer(sparse= True,…)
vector 數學:向量。? ? ? ?物理:矢量
? ??矩陣 matrix二維數組

? ? 向量 vector 一維數組

父類:轉換器類

返回sparse矩陣

? ? ?spare稀疏:將非0值 表示出來:節省內存—提高加載效率

應用場景:

(1)pclass,sex數據及當中類別特征比較多

? ? ?1 將數據集的特征->字典類型

? ? ? 2 DictVectorizer轉換

(2)本身拿到的數據就是字典類型

2.3.3? 文本特征提取

單詞作為特征?

特征:特征詞

方法1:CountVectorizer

? ? ? ? ? ?統計每個樣本特征出現的個數

? ? ? ? ? ?stop_words停用的

? ? ? ? ? ?停用詞表

關鍵詞:在某一個類別的文章中,出現的次數很多,但是在其他類別的文章當中出現很少

作用:對文本數據進行特征值化
(1)sklearn.feature_extraction.text.CountVectorizer(stop_words=0)? ? 返回詞頻矩陣
(2)CountVectorizer.fit_transform(X) X:文本或者包含文本字符串的可迭代對象返回值:返回sparse矩陣
(3)CountVectorizer.inverse_transform(X) X:array數組或者sparse矩陣返回值:轉換之前數據格
(4)CountVectorizer.get_feature_names()返回值:單詞列表
(5)sklearn.feature_extraction.text.TfidfVectorizer

該如何處理某個詞或短語在多篇文章中出現的次數高這種情況

方法二:

TfidfVectorizer

Tf-idf文本特征提取
TF-IDF的主要思想是:如果某個詞或短語在一篇文章中出現的概率高,并且在其他文章中很少出現,則認為此詞或者短語具有很好的類別區分能力,適合用來分類。

TF-IDF作用:用以評估一字詞對于一個文件集或一個語料庫中的其中一份文件的重要程度。
公式:詞頻(term frequency,tf)指的是某一個給定的詞語在該文件中出現的頻率

逆向文檔頻率(inverse document frequency,idf)是一個詞語普遍重要性的度量。某一特定詞語的idf,可以由總文件數目除以包含該詞語之文件的數目再將得到的商取以10為底的對數得到

tfidf?,j= tfi,jx idf?

最終得出結果可以理解為重要程度

特征預處理 :

2.4.1定義:通過一些轉換函數將特征數據轉換成更加適合算法模型的特征數據過程

(1)包含內容
數值型數據的無量綱化:
歸一化

標準化

特征預處理API:

sklearn.preprocessing

為什么我們要進行歸一化/標準化?
特征的單位或者大小相差較大,或者某特征的方差相比其他的特征要大出幾個數量級,容易影響(支配)目標結果,使得一些算法無法學習到其它的特征

2.4.2歸一化

定義:通過對原始數據進行變換把數據映射到(默認為[0,1])之間

公式:

歸一化API:

sklearn.preprocessing.MinMaxScaler (feature_range=(0,1)...)

MinMaxScalar.fit_transform(X)
X:numpy array格式的數據[n_samples,n_features]

返回值:轉換后的形狀相同的array

2.4.3標準化:

1.定義:對原始數據進行變換把數據變換到均值為0,標準差為1范圍內

2.公式:

即標準差:集中程度3.標準化API

sklearn.preprocessing.StandardScaler( )
? ? 處理之后,對每列來說,所有數據都聚集在均值為0附近,標準差為1。? ? ? ? ? ? StandardScaler.fit_transform(X)
? ? X:numpy array格式的數據[n_samples,n_features]

返回值:轉換后的形狀相同的array

4.標準化應用場景:

在已有樣本足夠多的情況下,適合現代嘈雜的大數據場景。

總結:

對于歸一化來說:如果出現異常點,影響了最大值和最小值,那么結果顯然會發生改變。
對于標準化來說:如果出現異常點,由于具有一定數據量,少量的異常點對于平均值的影響并不大,從而方差改變較小。

特征降維:

2.5降維->降低緯度

降維是指在某些限定條件下,降低隨機變量(特征)個數,得到一組“不相關”主變量的過程。

2.5.1: ndarray

維數:嵌套的層數

0維? 標量

1維? 向量

2維? 矩陣

3維...n維

處理對象:二維數組

此處的降維:降低隨機變量(特征)個數。

效果:特征與特征之間互不相關


2.5.2 特征選擇

1定義:數據中包括冗余或相關變量(或稱特征屬性指標等),旨在從原有特征中找出主要特征。

2方法
Filter(過濾式):主要探究特征本身特點、特征與特征和目標值之間關聯
方差選擇法:低方差特征過濾

相關系數:特征與特征之間的相關程度

取值范圍為[-1,+1]

如皮爾遜相關系數
Embedded(嵌入式):算法自動選擇特征(特征與目標值之間的關聯)
決策樹:信息熵、信息增益

正則化:L1、L2

深度學習:卷積等

3模塊:

sklearn.feature_selection

4過濾式

4.1低方差特征過濾

4.1.1 API

sklearn.feature_selection.VarianceThreshoid(threshold=0.0)
? ? ? 刪除所有低方差特征
? ? ? Variance.fit_transform(X)
? ? ? ? ? ? ? X:numpy array格式的數據[n_samples,n_features]
? ? ? ? ? ? ? 返回值:訓練集差異低于threshold的特征將被刪除。默認值是保留所有非。零方差特征,即刪除所有樣本中具有相同值的特征。

4.2相關系數
4.2.3相關系數特點:
相關系數的值介于-1與+1之間,即-1≤r≤+1。其性質如下:

當r>0時,表示兩變量正相關,r<0時,兩變量為負相關
當|r|=1時,表示兩變量為完全相關,當r=0時,表示兩變量間無相關關系

當0<|r|<1時,表示兩變量存在一定程度的相關。且|r|越接近1,兩變量間線性關系越密切;|r越接近于0,表示兩變量的線性相關越弱
一般可按三級劃分:|r|<0.4為低度相關;0.4≤|r|<0.7為顯著性相關;0.7≤|r|<1為高度線性相關
這個符號:|r|為r的絕對值,|-5|=5
4.2.4 API
from scipy.stats import pearsonr
x:(N,) array_like

?y :(N,) array_like Returns: (Pearson's correlation coefficient, p- value)


?

? ? ? ? ??

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

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

相關文章

Jackson使用ArrayNode對象實現JSON列表數據(二):增、刪、改、查

JSON數據的操作,系列文章: 《Jackson的核心類與API方法:ObjectMapper、JsonNode、ObjectNode、ArrayNode》 《Jackson的使用與創建Jackson工具類》 《Jackson使用ObjectNode對象實現JSON對象數據(一):增、刪、改、查》 《Jackson使用ArrayNode對象實現JSON列表數據(二)…

Packaging Process

Packaging Process 軟包裝流程&#xff0c;在我們自動化設備的情況下&#xff0c;最后實現自動化工具 一小盒2袋&#xff0c;一大盒3小盒&#xff0c;一大盒6袋

地理信息系統(GIS)在智慧城市中的40個應用場景案例

在智慧城市發展進程中&#xff0c;地理信息系統&#xff08;GIS&#xff09;作為關鍵技術之一&#xff0c;正扮演著不可或缺的角色&#xff0c;堪稱智慧城市的神經中樞。通過空間數據分析優化城市管理&#xff0c;GIS技術為智慧城市的構建提供了強大的支持。 本文分享了GIS在智…

在 Jenkins Pipeline 中利用 Groovy 的閉包特性創建自定義語法糖

在 Jenkins Pipeline 中利用 Groovy 的閉包特性創建自定義語法糖&#xff0c;可以讓流水線代碼更簡潔易讀。以下是實現思路和示例&#xff1a; 1. 基礎閉包方法定義 // 定義一個優雅的 stage 語法 def elegantStage(String name, Closure body) { stage(name) { ec…

【藍橋杯】每日練習 Day11 逆序對問題和多路歸并

目錄 前言 超快速排序 分析 代碼 小朋友排隊 分析 代碼 魚塘釣魚 分析 代碼 前言 本來計劃今天寫五道題的&#xff0c;結果計劃趕不上變化&#xff0c;誰能告訴我我的時間都去哪了。。。 今天給大家帶來三道題目&#xff0c;兩道逆序對問題&#xff0c;分別用歸并排…

OpenCV 圖像基本操作

之前幾篇文章介紹了OpenCV的一些模塊概念,并沒有細說每個模塊具體的方法和使用。接下來就會詳細介紹每個模塊模塊包含的方法和使用。 本文將詳細介紹圖像的四種基本操作:訪問和修改像素值、圖像 ROI (Region of Interest) 操作、圖像通道分離與合并、以及圖像的縮放、旋轉、…

酷淘商場項目【從零到一詳解】Web端

?博客主頁&#xff1a; https://blog.csdn.net/m0_63815035?typeblog &#x1f497;《博客內容》&#xff1a;.NET、Java.測試開發、Python、Android、Go、Node、Android前端小程序等相關領域知識 &#x1f4e2;博客專欄&#xff1a; https://blog.csdn.net/m0_63815035/cat…

Gemini 2.0 Flash 圖片去水印測試

Gemini 2.0 Flash 模型不僅會生成包含名人和受版權保護角色的圖像&#xff0c;還會去除現有照片中的水印。 據 X 和 Reddit 上的多位用戶指出&#xff0c;Gemini 2.0 Flash 模型不僅會去除水印&#xff0c;還會嘗試填補因水印刪除而產生的空白區域。其他基于人工智能的工具也能…

STM32學習筆記之keil使用記錄

&#x1f4e2;&#xff1a;如果你也對機器人、人工智能感興趣&#xff0c;看來我們志同道合? &#x1f4e2;&#xff1a;不妨瀏覽一下我的博客主頁【https://blog.csdn.net/weixin_51244852】 &#x1f4e2;&#xff1a;文章若有幸對你有幫助&#xff0c;可點贊 &#x1f44d;…

MQTT消息服務器新玩法:EMQX結合內網穿透的實戰配置指南

文章目錄 前言1. 查看EMQX本地WS端口2. Linux安裝Cpolar工具3. 配置WS公網連接地址4. WS公網地址連接測試5. 配置WSS公網連接地址6. WSS公網地址連接測試 前言 隨著物聯網技術的不斷發展&#xff0c;MQTT作為一種輕量級的消息發布/訂閱協議&#xff0c;在物聯網通信中扮演著越…

編程題記錄3

九宮幻方 題目鏈接&#xff1a;https://www.lanqiao.cn/problems/100/learning/?page1&first_category_id1&second_category_id3&tags%E7%9C%81%E8%B5%9B&tag_relationintersection 先旋轉、鏡像得到所有的情況&#xff0c;可以發現情況是可以暴力得出的。…

電機控制常見面試問題(十八)

文章目錄 一.電機控制高級拓撲結構1.LLC 二.談談電壓器飽和后果三.電壓器繞組連接方式的影響四.有源逆變的條件 一.電機控制高級拓撲結構 1.LLC LLC是什么&#xff1f;—— 一個會"變魔術"的電源盒子 想象你有一個魔法盒子&#xff0c;能把電池的電壓變大或變小&…

C#設計模式快速回顧

知識點來源&#xff1a;人間自有韜哥在&#xff0c;豆包 目錄 一、七大原則1. 單一職責原則 (Single Responsibility Principle)2. 開放封閉原則 (Open-Closed Principle)3. 里氏替換原則 (Liskov Substitution Principle)4. 接口隔離原則 (Interface Segregation Principle)5…

匯編語言高級編程技巧:從基礎到進階

前言 匯編語言作為底層編程語言&#xff0c;直接操作硬件&#xff0c;執行效率高&#xff0c;但編寫復雜邏輯時往往顯得繁瑣。通過使用匯編偽指令和宏&#xff0c;我們可以實現類似于高級語言的結構&#xff0c;如條件判斷、循環、結構體和函數等&#xff0c;從而提升代碼的可讀…

XSS跨站腳本攻擊漏洞(Cross Site Scripting)

前提概要 本文章主要用于分享XSS跨站腳本攻擊漏洞基礎學習&#xff0c;以下是對XSS跨站腳本攻擊漏洞的一些個人解析&#xff0c;請大家結合參考其他文章中的相關信息進行歸納和補充。 XSS跨站腳本攻擊漏洞描述 跨站腳本攻擊&#xff08;XSS&#xff09;漏洞是一種常見且危害較…

2、pytest核心功能(進階用法)

目錄 1、標記&#xff08;Markers&#xff09;&#xff1a; 自定義插件 內置標記 2、夾具&#xff08;Fixtures&#xff09;&#xff1a; 夾具得用法 夾具作用域 3、鉤子&#xff08;hook&#xff09;&#xff1a; 這篇是最重要的 測試文件中需要用到的 總的來說 有以下…

恒流源電路深度解析:各類架構的優缺點與應用場景

點擊下面圖片&#xff0c;為您提供全新的嵌入式學習路線 文章目錄 ①. 單晶體管恒流源②. NPNPNP組合恒流源③. 雙晶體管恒流源④. 鏡像電流源⑤. 比例電流源⑥. 微電流源⑦. 加射極輸出的鏡像電流源⑧. 威爾遜電流源⑨.綜合對比表⑩.選型建議 恒流源是電子電路中的基礎模塊&…

研究生入學前文獻翻譯訓練

文獻翻譯 人工智能《Meta - Learning with Memory - Augmented Neural Networks》one-shot learning:Neural Turing Machines,NTMs《Model - Agnostic Meta - Learning for Fast Adaptation of Deep Networks》Meta - learninggradient stepsfinetune《Attention Is All You …

在IDEA中快速注釋所有console.log

在IDEA中快速注釋所有console.log 在前端IDEA中&#xff0c;快速注釋所有console.log語句可以通過以下步驟實現2&#xff1a; 打開要修改的文件。使用快捷鍵CtrlF打開搜索框。點擊打開使用正則搜索的開關或者通過AltR快捷鍵來打開。在搜索框輸入[]*console.log[]*&#xff0c;…

#C8# UVM中的factory機制 #S8.2.1# factory 機制重載法則

factory機制最偉大的地方在于其具有重載功能。重載并不是factory機制的發明,前面已經介紹過的所有面向對象的語言都支持函數/任務重載,另外,SystemVerilog還額外支持對約束的重載。只是factory機制的重載與這些重載都不一樣。 一 問題引出 以8.1.1節的代碼清單8-1和代碼清…