機器學習①【機器學習的定義以及核心思想、數據集:機器學習的“燃料”(組成和獲取)】

文章目錄

  • 先言
  • 一、什么是機器學習
    • 1.機器學習的定義以及核心思想
    • 2.機器學習的四大類型
      • 2.1監督學習(Supervised Learning)
      • 2.2半監督學習(Midsupervised Learning)
      • 2.3無監督學習(Unsupervised Learning)
      • 2.4強化學習(Reinforcement Learning)
    • 3.機器學習的基本流程
    • 4.機器學習工具庫sklearn的安裝
  • 二、數據集:機器學習的“燃料”
    • 1.數據集的組成(特征、標簽)
    • 2.獲取數據集(Sklearn庫本地獲取、網絡下載、文本數據)
      • 2.1sklearn加載玩具數據集(紅酒、乳腺癌)
      • 2.2sklearn加載現實網絡數據集
      • 2.3pandas實現本地數據的創建和訪問
    • 3.數據集的劃分(train_test_split)
  • 結語


先言

人工智能(AI)正在重塑我們的世界,而 機器學習(Machine Learning, ML) 作為其核心驅動力,讓計算機能夠從數據中自動學習規律,并做出智能決策。無論是人臉識別、推薦系統,還是自動駕駛,機器學習技術都發揮著關鍵作用。

本文將從 機器學習的定義入手,介紹其基本概念,并深入探討 數據集 的組成、類型及預處理方法。通過這篇文章,你將理解機器學習的基本框架,并學會如何準備高質量的數據集,為后續的模型訓練打下堅實基礎。


一、什么是機器學習

1.機器學習的定義以及核心思想

機器學習(Machine Learning)是一種通過算法和模型使計算機從數據中自動學習并進行預測或決策的技術,屬于人工智能的一個分支。其核心目標是讓計算機在沒有明確編程指令的情況下,通過對大量數據的分析,識別模式和規律,從而構建適應新數據的模型。機器學習廣泛應用于圖像識別、自然語言處理、推薦系統和自動駕駛等領域,具備自適應、自動化和泛化能力,是數據驅動的技術創新。
機器學習的本質是讓計算機自己在數據中學習規律,并根據所得到的規律對未來數據進行預測
機器學習包括如聚類、分類、決策樹、貝葉斯、神經網絡、深度學習(Deep Learning)等算法。
機器學習的基本思路是模仿人類學習行為的過程,如我們在現實中的新問題一般是通過經驗歸納,總結規律,從而預測未來的過程。

2.機器學習的四大類型

2.1監督學習(Supervised Learning)

監督學習(Supervised Learning)是從有標簽的訓練數據中學習模型,然后對某個給定的新數據利用模型預測它的標簽。如果分類標簽精確度越高,則學習模型準確度越高,預測結果越精確。
監督學習主要用于回歸和分類。
常見算法包括線性回歸、支持向量機、決策樹和神經網絡。監督學習廣泛應用于分類(如圖像、文本分類)與回歸(如房價、股價預測)任務,適用于金融、醫療、電子商務等多個領域。其性能高度依賴于標注數據的數量與質量。

2.2半監督學習(Midsupervised Learning)

半監督學習(Semi-Supervised Learning)是利用少量標注數據和大量無標注數據進行學習的模式。
半監督學習側重于在有監督的分類算法中加入無標記樣本來實現半監督分類。

常見的半監督學習算法有Pseudo-Label、Π-Model、Temporal Ensembling、Mean Teacher、VAT、UDA、MixMatch、ReMixMatch、FixMatch無監督學習適用于客戶細分、異常檢測、推薦系統、數據壓縮和基因分析等場景,尤其在數據標注困難或成本高的領域中具有重要價值。等。

2.3無監督學習(Unsupervised Learning)

無監督學習(Unsupervised Learning)是從未標注數據中尋找隱含結構的過程。

無監督學習主要用于關聯分析、聚類和降維。

常見的無監督學習算法有稀疏自編碼(Sparse Auto-Encoder)、主成分分析(Principal Component Analysis, PCA)、K-Means算法(K均值算法)、DBSCAN算法(Density-Based Spatial Clustering of Applications with Noise)、最大期望算法(Expectation-Maximization algorithm, EM)

2.4強化學習(Reinforcement Learning)

在這里插入圖片描述

強化學習(Reinforcement Learning)類似于監督學習,但未使用樣本數據進行訓練,是是通過不斷試錯進行學習的模式。

在強化學習中,有兩個可以進行交互的對象:智能體(Agnet)和環境(Environment),還有四個核心要素:策略(Policy)、回報函數(收益信號,Reward Function)、價值函數(Value Function)和環境模型(Environment Model),其中環境模型是可選的。

強化學習常用于機器人避障、棋牌類游戲、廣告和推薦等應用場景中。

3.機器學習的基本流程

在這里插入圖片描述

有5個基本步驟用于執行機器學習任務:

  1. 收集數據:無論是來自excel,access,文本文件等的原始數據,這一步(收集過去的數據)構成了未來學習的基礎。相關數據的種類,密度和數量越多,機器的學習前景就越好。
  2. 準備數據:任何分析過程都會依賴于使用的數據質量如何。人們需要花時間確定數據質量,然后采取措施解決諸如缺失的數據和異常值的處理等問題。探索性分析可能是一種詳細研究數據細微差別的方法,從而使數據的質量迅速提高。
  3. 練模型:此步驟涉及以模型的形式選擇適當的算法和數據表示。清理后的數據分為兩部分 - 訓練和測試(比例視前提確定); 第一部分(訓練數據)用于開發模型。第二部分(測試數據)用作參考依據。
  4. 評估模型:為了測試準確性,使用數據的第二部分(保持/測試數據)。此步驟根據結果確定算法選擇的精度。檢查模型準確性的更好測試是查看其在模型構建期間根本未使用的數據的性能。
  5. 提高性能:此步驟可能涉及選擇完全不同的模型或引入更多變量來提高效率。這就是為什么需要花費大量時間進行數據收集和準備的原因。

無論是任何模型,這5個步驟都可用于構建技術,當我們討論算法時,您將找到這五個步驟如何出現在每個模型中

4.機器學習工具庫sklearn的安裝

根據之前我們所有環境都是利用conda創建的,這里我們可以創建一個新環境
(在conda終端):

conda create -n sklearn python=3.12
activate sklearn

在此環境下下載scikit-learn包執行下面代碼:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple scikit-learn

之后通過conda list指令查看環境就可以看到scikit-learn庫就安裝成功了

在這里插入圖片描述

二、數據集:機器學習的“燃料”

數據集是 Sklearn 最基本的概念之一。

機器學習的核心任務是從數據中學習模式,數據的表示方式至關重要。

數據集(Dataset)
在 scikit-learn 中,數據通常通過兩個主要的對象來表示: 特征矩陣 和 目標向量。

特征矩陣(Feature Matrix):每一行代表一個數據樣本,每一列代表一個特征(即輸入變量)。它是一個二維的數組或矩陣,通常使用 NumPy 數組或 pandas DataFrame 來存儲。

1.數據集的組成(特征、標簽)

  • 特征(Features):是數據集中用于訓練模型的輸入變量。在上面的例子中,X 是特征矩陣,包含了所有的輸入變量。

  • 標簽(Labels):是機器學習模型的目標輸出。在監督學習中,標簽是我們希望模型預測的結果。在上面的例子中,y 是標簽或目標向量,包含了每個樣本的類別。

2.獲取數據集(Sklearn庫本地獲取、網絡下載、文本數據)

2.1sklearn加載玩具數據集(紅酒、乳腺癌)

通過導入sklearn庫包獲取本地數據

from sklearn.datasets import load_wine
from sklearn.datasets import load_breast_cancer
#加載數據集
#紅酒數據集
wine =load_wine()
#紅酒的全部數據
print(wine.data)
#返回的是紅酒的品種
print(wine.target)
#獲取紅酒特征的描述
print(wine.feature_names)
#獲取紅酒標簽(品種)的描述
print(wine.target_names)
#加載乳腺癌病數據集
breast_data = load_breast_cancer()
print(breast_data.feature_names)

紅酒特征向量含義以及標簽含義:

#紅酒和特征向量含義
wine_feature_descriptions = {'alcohol': '酒精含量','malic_acid': '蘋果酸含量','ash': '灰分含量','alcalinity_of_ash': '灰分堿度','magnesium': '鎂含量','total_phenols': '總酚含量','flavanoids': '黃酮類化合物含量','nonflavanoid_phenols': '非黃酮類酚類化合物含量','proanthocyanins': '原花青素含量','color_intensity': '顏色強度','hue': '色調','od280/od315_of_diluted_wines': '稀釋葡萄酒的OD280/OD315吸光度比值','proline': '脯氨酸含量'
}
#標簽含義
wine_target_dict = {'class_0': 'Cv品種','class_1': 'Ec品種','class_2': 'Sc品種'
}

乳腺癌中的特征向量以及標簽含義:

#特征含義
breast_feature_descriptions='''
均值特征 (Mean features)
mean radius: 半徑均值(從中心到邊緣的平均距離)
mean texture: 紋理均值(灰度值的標準差)
mean perimeter: 周長均值
mean area: 面積均值
mean smoothness: 平滑度均值(半徑變化的局部變化)
mean compactness: 緊湊度均值(周長2/面積 - 1.0)
mean concavity: 凹度均值(輪廓凹陷的嚴重程度)
mean concave points: 凹點均值(輪廓上的凹點數量)
mean symmetry: 對稱度均值
mean fractal dimension: 分形維度均值(海岸線近似值 - 1)
標準誤差特征 (Standard error features)
radius error: 半徑標準誤差
texture error: 紋理標準誤差
perimeter error: 周長標準誤差
area error: 面積標準誤差
smoothness error: 平滑度標準誤差
compactness error: 緊湊度標準誤差
concavity error: 凹度標準誤差
concave points error: 凹點標準誤差
symmetry error: 對稱度標準誤差
fractal dimension error: 分形維度標準誤差
最差值特征 (Worst features)
worst radius: 最大半徑(最差區域的半徑)
worst texture: 最差紋理
worst perimeter: 最大周長
worst area: 最大面積
worst smoothness: 最差平滑度
worst compactness: 最差緊湊度
worst concavity: 最大凹度
worst concave points: 最大凹點數
worst symmetry: 最差對稱度
worst fractal dimension: 最差分形維度
'''
#標簽含義
breast_target_dict='''
malignant:惡性腫瘤,表示該腫瘤具有侵襲性,可能會擴散到身體其他部位
benign:良性腫瘤,表示該腫瘤不具有侵襲性,通常不會擴散到身體其他部位
'''

這里給出特征和標簽含義是為了方便對數據集的理解,可以讓你快速熟悉數據集的特征和標簽的含義

2.2sklearn加載現實網絡數據集

對現實網絡20條新聞數據進行下載保存

from sklearn.datasets import fetch_20newsgroups
from sklearn import datasets
import pandas as pd
#獲取現實數據存放路徑
download_file_path = datasets.get_data_home()
print(download_file_path)
#獲取現實數據斌保存到指定的路勁
news = fetch_20newsgroups(subset='all',data_home="./src/20news-bydate_py3.pkz")
#保存后news可以對數據進行訪問
print(len(news.data)) #18846
print(news.target.shape) #(18846,)
print(len(news.target_names)) #20
print(len(news.filenames)) #18846

2.3pandas實現本地數據的創建和訪問

數據創建
創建csv文件:打開計事本,寫出如下數據,數據之間使用英文下的逗號, 保存文件后把后綴名改為csv
數據訪問
使用pandas的read_csv(“文件路徑”)函數可以加載csv文件,得到的結果為數據的DataFrame形式

#導入pandas模塊
import pandas as pd
#調用pandas方法訪問文件
pd.read_csv("./src/ss.csv")

注:csv文件可以使用excel打開

3.數據集的劃分(train_test_split)

在實際應用中,通常需要將數據集分割成訓練集和測試集
scikit-learn 提供了一個方便的函數 train_test_split() 來實現這一點。

劃分函數:

sklearn.model_selection.train_test_split(*arrays,**options)

參數
(1) *array
這里用于接收1到多個"列表、numpy數組、稀疏矩陣或padas中的DataFrame"。
(2) **options, 重要的關鍵字參數有:
test_size 值為0.0到1.0的小數,表示劃分后測試集占的比例
random_state 值為任意整數,表示隨機種子,使用相同的隨機種子對相同的數據集多次劃分結果是相同的。否則多半不同
strxxxx 分層劃分,填y
2 返回值說明
返回值為列表list, 列表長度與形參array接收到的參數數量相關聯, 形參array接收到的是什么類型,list中對應被劃分出來的兩部分就是什么類型
示例代碼如下:

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
  • 以上代碼調用 train_test_split 函數,并將結果賦值給四個變量:X_train、X_test、y_train 和 y_test。
  • X 和 y 是傳入 train_test_split 函數的參數,它們分別代表特征數據集和目標變量(標簽)。通常 X 是一個二維數組,y 是一個一維數組。
  • test_size=0.3 參數指定了測試集的大小應該是原始數據集的 30%。這意味著 70% 的數據將被用作訓練集,剩下的 30% 將被用作測試集。
  • random_state=42 參數是一個隨機數種子,用于確保每次分割數據集時都能得到相同的結果。這在實驗和模型驗證中非常有用,因為它確保了結果的可重復性。

結語

機器學習的世界浩瀚而精彩,而 數據 是這一切的起點。本文介紹了機器學習的基本概念,并詳細講解了數據集的組成與預處理方法,幫助你邁出 AI 開發的第一步。

🔍 動手實踐建議:嘗試加載一個公開數據集(如 sklearn.datasets.load_iris),并用 pandas 進行初步分析,觀察特征分布情況!

🚀 下期預告:我們將深入探討 特征工程,學習如何從原始數據中提取更有價值的特征,讓模型表現更上一層樓!

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

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

相關文章

GaussDB 數據庫架構師(十二) 資源規劃

1 硬件和軟件要求 1)硬件配置示例 硬件配置示例設備類型 設備型號 數量 備注 計算節點 CPU: 2*64 Cores,Kunpeng 920 內存:32*32GB 系統盤:2*960GB SATA SSD 數據盤:24*960GB SATA SSD RAID卡&#x…

Linux系統文件與目錄內容檢索(Day.2)

一、文件和目錄內容檢索處理命令1、uniq去重語法uniq [options] [input_file [output_file]]選項選項作用-c進行計數,并刪除文件中重復出現的行-d僅顯示連續的重復行-u僅顯示出現一次的行-i忽略大小寫案例1、刪除輸入文件中的重復行sort input.txt | uniq2、僅顯示重…

如何選擇一個容易被搜索引擎發現的域名?

在這個數字化時代,域名不僅是企業線上身份的標識,更是影響網站搜索曝光率的關鍵因素。一個精心挑選的域名能為品牌帶來更多自然流量,下面我們就來探討幾個實用技巧。一、簡潔易記是王道好域名首先要讓人過目不忘。想象一下,當用戶…

樹形DP進階:結合dfn序的線性化樹問題求解技巧

樹形DP進階:結合dfn序的線性化樹問題求解技巧一、dfn序與樹的線性化1.1 dfn序的基本概念1.2 樹形DP結合dfn序的優勢二、核心應用:子樹區間的DP優化2.1 子樹權值和的快速查詢與更新問題描述結合dfn序的解法代碼實現(前綴和版本)優化…

九、Maven入門學習記錄

Maven介紹Maven作用統一項目結構Maven安裝(注意配置阿里云私服時url要跟換成最新的)IDEA創建Meavn項目Maven坐標介紹IDEA導入Maven項目依賴配置依賴傳遞依賴傳遞-排除依賴依賴范圍生命周期生命周期-執行特定生命周期生命周期-總結

中標喜訊 | 安暢檢測再下一城!斬獲重慶供水調度測試項目

安暢檢測在第三方檢測領域持續深耕,再傳捷報!公司于2025年7月30日正式收到中標通知,成功拿下重慶水資源產業股份有限公司 “重慶西部科學城多水廠分區分壓供水優化調度研究項目(軟件測試標段)”。 此次中標不僅是市場…

銀河麒麟V10一鍵安裝DM8的腳本及高階運維SQL分享

介質下載地址名稱網址銀河麒麟高級服務器操作系統V10(SP3)用戶手冊https://www.kylinos.cn/support/document/60.htmlDM8 安裝手冊https://eco.dameng.com/document/dm/zh-cn/pm/install-uninstall.htmlDM 數據庫安裝(Linux安裝)h…

cobalt strike(CS)與Metasploit(MSF)聯動

CS —> MSF首先cs上創建一個http的外部監聽器。此時在CS服務端查看監聽的ip,發現并沒有開啟,需要到成功移交會話后才會啟動。netstat -tunlp | grep 7000在MSF中使用handler模塊,配置監聽。注意:目標機器的地址是rhost&#xf…

C# 類型

原文:C# 類型_w3cschool C#類型 類型定義值的藍圖。有不同的操作與不同類型相關聯。 在下面的示例中,我們使用兩個類型為int的常量,值為2 和 3。 static void Main() {int x 2 * 3;Console.WriteLine (x); } int 是一個表示整數值的構建…

確保TDesign Vue Next中t-color-picker組件在彈出顏色拾取面板時保證該面板不抖動方法參考

使用TDesign Vue Next中的組件t-color-picker時,在顏色面板彈出后,如果修改里面的顏色,發現這個顏色拾取面板會隨著顏色的改變位置不斷抖動,該問題由顯示顏色的數值文本的長度變化引起,因此要覆蓋組件內部顏色值文本的…

bypass

代碼解析修改自身bypass&#xff1a;第一句話$s"Declaring file object\n";定義一個s&#xff0c;值為Declaring file object第二句話$d$_SERVER[DOCUMENT_ROOT].$_SERVER[DOCUMENT_URI]; 不知道$_SERVER是什么&#xff0c;那就打印出來看看。輸入echo <pre>;…

C語言:構造類型學習

內容提要 構造類型 枚舉類型typedef 綜合案例&#xff1a;斗地主 構造類型 枚舉類型 建議&#xff1a;如果定義不相干的常理&#xff0c;使用宏定義&#xff08;符號常量&#xff09;&#xff1b;如果需要定義一組相關聯的常量&#xff0c;如月份0~11&#xff0c;星期0~6&#…

Prometheus-3--Prometheus是怎么抓取Java應用,Redis中間件,服務器環境的指標的?

1、Prometheus抓取Java應用的指標 1、數據來源&#xff1a;Java應用自身暴露的指標 Java應用的指標數據來源于應用代碼中定義的指標對象&#xff08;如Counter、Gauge、Histogram等&#xff09;&#xff0c;通過Prometheus客戶端庫&#xff08;如io.prometheus:client_java&…

42.安卓逆向2-補環境-unidbg安裝和簡單使用

免責聲明&#xff1a;內容僅供學習參考&#xff0c;請合法利用知識&#xff0c;禁止進行違法犯罪活動&#xff01; 內容參考于&#xff1a;圖靈Python學院 工具下載&#xff1a; 鏈接&#xff1a;https://pan.baidu.com/s/1bb8NhJc9eTuLzQr39lF55Q?pwdzy89 提取碼&#xff1…

數據結構與算法:哈希函數的應用及一些工程算法

前言這篇里的東西可以說了解了解就行了。一、哈希函數均勻性展示原本讓deepseek轉了一下老師的java代碼&#xff0c;但發現復刻起來太麻煩了。又因為這個理解就好&#xff0c;競賽不會有&#xff0c;所以就直接貼老師的java代碼了……import java.security.MessageDigest; impo…

交叉編譯ARM環境

ARM交叉編譯 可以采用交叉編譯工具鏈&#xff1a; sudo apt-get install aarch64-linux-gnu-gcc sudo apt-get install aarch64-linux-gnu-g sudo apt-get install gcc-arm-linux-gnueabi sudo apt-get install g-arm-linux-gnueabi 上面兩個是64位&#xff0c;下面兩個是…

算法思想 之 拓撲排序問題

歡迎拜訪&#xff1a;霧里看山-CSDN博客 本篇主題&#xff1a;算法思想 之 拓撲排序問題 發布時間&#xff1a;2025.8.4 隸屬專欄&#xff1a;算法 目錄算法介紹核心原理適用場景實現步驟(Kahn 算法)例題課程表題目鏈接題目描述算法思路代碼實現課程表 II題目鏈接題目描述算法思…

機器學習 入門——決策樹分類

決策樹是一種直觀且強大的機器學習算法&#xff0c;適用于分類和回歸任務。本文將全面介紹決策樹分類的原理、實現、調優和實際應用。一、什么是決策樹分類1.概念決策樹分類是一種樹形結構的分類模型&#xff0c;它通過遞歸地將數據集分割成更小的子集來構建決策規則。就像我們…

虛擬機中查看和修改文件權限

在虛擬機中管理文件權限是系統管理的重要部分&#xff0c;無論是在Linux還是Windows虛擬機中。下面我將詳細介紹兩種主要系統的權限管理方法。Linux虛擬機中的文件權限管理查看文件權限使用ls命令&#xff1a;ls -l 文件名輸出示例&#xff1a;-rwxr-xr-- 1 user group 1024 Ju…

圖像處理拉普拉斯算子

AI對話記錄&#xff0c;還沒有來得及仔細驗證和推導&#xff0c;目前只是記錄 當然可以&#xff01;我們來一步步推導拉普拉斯算子在旋轉變換下保持不變的數學過程。這里以二維情況為例&#xff0c;最直觀也最常見。&#x1f9ee; 拉普拉斯算子旋轉不變性的推導&#xff08;二維…