python實現機器學習筆記

2022-07-03 05:36:09 字數 4600 閱讀 1428

#

課程鏈結

一、機器學習介紹以及環境部署

1、機器學習介紹及其原理

1)什麼是人工智慧

人工智慧就其本質而言,是機器對人的思維資訊過程的模擬,讓它能像人一樣思考。根據輸入資訊進行模型結構、權重更新,實現最終優化

特點:資訊處理、自我學習、優化公升級。

2)核心方法

機器學習:一種實現人工智慧的方法,使用演算法來解析資料、從中學習,然後對真實世界中的事件做出決策和**。比如垃圾郵件檢測、房價**。

深度學習:一種實現機器學習的技術,模仿人嘞神經網路,建立模型,進行資料分析。比如人臉識別、語義理解、無人駕駛。

3)主要類別

監督學習:基於資料及結果進行**。一組輸入資料對應乙個正確的輸出結果

非監督學習:從資料中挖掘關聯性。不存在「正確的」答案

4)基本原理

監督學習核心步驟:1)使用標籤資料訓練機器學習模型;2)呼叫訓練好的機器學習模型,根據新的輸入資料**對應的結果

非監督學習:不需要標籤資料,而是通過引入預先設定的優化準則進行模型訓練,比如自動將資料分為三類

2、機器學習開發環境部署

1)python介紹

python是一種解釋性的、物件導向的、移植性強的高階程式語言。

2)scikit-learn介紹

python語言中專門針對機器學習而發展起來的一款開源框架,可以實現資料預處理、分類、回歸、降維、模型選擇等常用的機器學習演算法

3)jupyter notebook介紹

它是乙個開源的web應用程式,旨在方便開發者建立和共享**文件。

4)環境部署

#

第一步,安裝python

#第二步,安裝anaconda

#第三步,新建開發環境、安裝numpy、scikit-learn庫

conda create -n env_name

pip(conda) install package_name -i source_address

#第四步,jupter notebook介面優化

二、機器學習程式設計實戰

3、機器學習實現之資料預處理

1)iris資料集

iris鳶尾花資料集是乙個經典資料集,屬於監督式學習應用:根據花的四個特徵**鳶尾花卉屬於哪一品種。

2)使用scikit-learn進行資料處理的關鍵

區分屬性資料與結果資料;屬性資料與結果資料都是量化的;運算過程中,屬性資料與結果資料的型別都是numpy陣列;屬性資料與結果資料的維度是對應的

3)**

#

iris資料載入

from sklearn import

datasets

iris =datasets.load_iris()

展示iris資料

print

(iris.data)

print

(iris.feature_names)

print

(iris.target)

print

(iris.target_names)

print

(type(iris.data))

print

(type(iris.target))

print

(iris.data.shape)

#x輸入資料賦值,y輸出資料賦值

x =iris.data

y =iris.target

print

(x)print(y)

4、機器學習實現之模型訓練

1)分類問題介紹

定義:根據資料集目標的特徵或屬性,劃分到已有的類別中,常用的分類演算法:knn、邏輯回歸、決策樹、樸素貝葉斯

2)knn模型

給定乙個訓練資料集,對新的輸入例項,在訓練資料集中找到與該例項最相鄰的k個例項,這k個例項的多數屬於某個類,就把該輸入例項分類到這個類中

匯入iris資料集

from sklearn import

datasets

iris =datasets.load_iris()

#樣本資料與結果分別賦值到x,y

x =iris.data

y =iris.target

#確認樣本與輸出資料維度

print

(x.shape)

print

(y.shape)

'''使用scikit-learn建模四步驟

1、呼叫需要使用的模型類

2、模型初始化

3、模型訓練

4、模型**

'''from sklearn.neighbors import

kneighborsclassifier

knn = kneighborsclassifier(n_neighbors=1)

print

(knn)

knn.fit(x,y)

knn.predict([[1,2,3,4]])

x_test = [[1,2,3,4],[2,4,1,2]]

knn.predict(x_test)

#可設定新的k值

5、機器學習實現之模型評估(一)

1)評估流程

<1>將整個資料集用於訓練與測試:1'使用整個資料集進行模型訓練;2'使用相同的資料集進行測試,並通過對比**結果與實際結果來評估模型表現

準確率:正確**的比例;用於評估分類模型表現的常用指標

缺點:1'訓練模型的最終目標是為了**新資料對應的結果;2'最大化訓練準確率通常會導致模型複雜化(比如增加維度),因此將降低模型的通用性;3'過度複雜模型容易導致訓練資料的過度擬合

<2>分離訓練資料與測試資料:1'把資料分成兩部分:訓練集、測試集;2'使用訓練集資料進行模型訓練;3'使用測試集資料進行**,從而評估模型表現

優點:1'可實現在不同資料集上進行模型訓練和**;2'建立數學模型的目的是對新資料的**,基於測試資料計算的準確率能有效地評估模型表現

2)模型關鍵引數選擇

目標:確定合適的引數組,提高模型**準確率

方法:1、遍歷引數組合,建立對應的模型

2、使用訓練集資料進行模型訓練

3、使用測試集資料進行**,評估每個模型表現

4、通過圖形展示引數組與準確率的關係,確定合適的引數組

3)**

#將整個資料集用於訓練與測試

#資料載入 模型訓練與**

from sklearn import

datasets

iris =datasets.load_iris()

x =iris.data

y =iris.target

from sklearn.neighbors import

kneighborsclassifier

knn_5 = kneighborsclassifier(n_neighbors= 5)

knn_5.fit(x,y)

y_pred =knn_5.predict(x)

print

(y_pred)

print

(y_pred.shape)

#準確率計算

from sklearn.metrics import

accuracy_score

print

(accuracy_score(y, y_pred))

#knn(k=1)

knn_1 = kneighborsclassifier(n_neighbors = 1)

knn_1.fit(x, y )

y_pred =knn_1.predict(x)

print(accuracy_score(y, y_pred))

#

分離訓練資料與測試資料

#資料分離

from sklearn.model_selection import

train_test_split

x_train, x_test, y_train, y_test = train_test_split(x, y, test_size =0.4)

#分離後資料集的維度確認

print

(x_train.shape,x_test.shape,y_train.shape,y_test.shape)

#分離後資料集的訓練與評估

knn_5_s = kneighborsclassifier(n_neighbors = 5)

knn_5_s.fit(x_train, y_train)

y_train_pred =knn_5_s.predict(x_train)

y_test_pred =knn_5_s.predict(x_test)

#分離後模型**的準確率

print

(accuracy_score(y_train,y_train_pred))

print(accuracy_score(y_test,y_test_pred))

6、機器學習實現之模型評估(二)

Python學習筆記(機器學習 SVM)

1 思想 分類器 2 如何?尋求乙個最優的超平面 分類 3 核 line 4 資料 樣本 5 訓練 svm create train predict svm本質 尋求乙個最優的超平面 分類 svm 核 line 身高體重 訓練 import cv2 import numpy as np import...

Python 機器學習 學習筆記1

python基礎 作業1.1 編寫程式 用 0 在 0,1,2 和 0,1,2,3,4 中迴圈,生成 5行 3 列 的零陣列 0,0,0 0,0,0 0,0,0 0,0,0 0,0,0 a 0 b 0 1,2 c 0 1,2 3,4 t for a in b for a in c t a 0 pri...

python基礎 機器學習筆記

前言 機器學習以及資料分析的首選語言非python莫屬。python含有資料分析和機器學習大量的科學計算包 numpy,scipy,keras,pandas等工具包。想快速利用python進行資料分析,可以開始先掌握資料分析比較常用和實用的python基礎,以便快速展開機器學習,資料分析等相關工作。...