国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

阿里云做網(wǎng)站經(jīng)費(fèi)免費(fèi)網(wǎng)站建設(shè)

阿里云做網(wǎng)站經(jīng)費(fèi),免費(fèi)網(wǎng)站建設(shè),javacms,寧波找網(wǎng)站建設(shè)企業(yè)碼到三十五 : 個(gè)人主頁(yè) 機(jī)器學(xué)習(xí)庫(kù)scikit-learn(簡(jiǎn)稱sklearn)是Python中一個(gè)功能強(qiáng)大的機(jī)器學(xué)習(xí)庫(kù),它提供了大量用于數(shù)據(jù)挖掘和數(shù)據(jù)分析的工具,包括分類、回歸、聚類、降維等算法。文中我們一起簡(jiǎn)單探討sklearn的一些基…
碼到三十五 : 個(gè)人主頁(yè)

機(jī)器學(xué)習(xí)庫(kù)scikit-learn(簡(jiǎn)稱sklearn)是Python中一個(gè)功能強(qiáng)大的機(jī)器學(xué)習(xí)庫(kù),它提供了大量用于數(shù)據(jù)挖掘和數(shù)據(jù)分析的工具,包括分類、回歸、聚類、降維等算法。文中我們一起簡(jiǎn)單探討sklearn的一些基礎(chǔ)知識(shí),總結(jié)梳理下sklean的結(jié)構(gòu)脈絡(luò),算是一個(gè)小小的入門教程吧。

目錄

    • 一、安裝sklearn
    • 二、數(shù)據(jù)預(yù)處理
      • 2.1 特征縮放
        • 1. StandardScaler
        • 2. MinMaxScaler
        • 3. MaxAbsScaler
        • 4. RobustScaler
        • 5. Normalizer
      • 2.2 數(shù)據(jù)清洗
        • 處理缺失值
      • 2.3 編碼分類特征
        • 獨(dú)熱編碼(One-Hot Encoding)
        • 標(biāo)簽編碼(Label Encoding)
      • 2.3. 特征選擇和降維
        • 方差閾值
        • 單變量特征選擇
        • 主成分分析(PCA)
      • 2.4. 數(shù)據(jù)拆分
      • 2.5. 數(shù)據(jù)轉(zhuǎn)換
        • 多項(xiàng)式特征
    • 三、分類算法
      • 邏輯回歸分類
    • 四、回歸算法
      • 線性回歸預(yù)測(cè)
    • 五、模型評(píng)估與調(diào)優(yōu)
      • 交叉驗(yàn)證和網(wǎng)格搜索
    • 結(jié)語

一、安裝sklearn

先安裝Python環(huán)境??梢允褂胮ip來安裝sklearn庫(kù):

pip install scikit-learn

二、數(shù)據(jù)預(yù)處理

在使用sklearn進(jìn)行機(jī)器學(xué)習(xí)之前,需要對(duì)數(shù)據(jù)進(jìn)行預(yù)處理。sklearn提供了一系列的數(shù)據(jù)預(yù)處理工具,如StandardScaler用于特征縮放,OneHotEncoder用于處理類別特征等。

2.1 特征縮放

在數(shù)據(jù)預(yù)處理中,特征縮放是一個(gè)非常重要的步驟,它可以幫助提升機(jī)器學(xué)習(xí)算法的性能和穩(wěn)定性。在sklearn庫(kù)中,提供了多種特征縮放和預(yù)處理的工具:

在這里插入圖片描述

1. StandardScaler
  • 作用:用于特征的標(biāo)準(zhǔn)化,即將特征值縮放到均值為0,方差為1的分布。
  • 栗子
from sklearn.preprocessing import StandardScaler
import numpy as np# 創(chuàng)建一個(gè)數(shù)據(jù)集
X = np.array([[1, 2], [3, 4], [5, 6]])# 初始化StandardScaler
scaler = StandardScaler()# 使用fit_transform方法對(duì)數(shù)據(jù)進(jìn)行縮放
X_scaled = scaler.fit_transform(X)print(X_scaled)
2. MinMaxScaler
  • 作用:將特征數(shù)據(jù)縮放到一個(gè)指定的范圍(通常是0到1),或者也可以將每個(gè)特征的最大絕對(duì)值縮放到單位大小。
  • 栗子
from sklearn.preprocessing import MinMaxScalerdata = [[-1, 2], [-0.5, 6], [0, 10], [1, 18]]
scaler = MinMaxScaler()# 使用fit_transform方法對(duì)數(shù)據(jù)進(jìn)行縮放
scaled_data = scaler.fit_transform(data)print(scaled_data)
3. MaxAbsScaler
  • 作用:將每個(gè)特征縮放到[-1, 1]的范圍內(nèi),通過除以每個(gè)特征的最大絕對(duì)值來實(shí)現(xiàn)。
  • 栗子
from sklearn.preprocessing import MaxAbsScalerX = np.array([[1, -1, 2], [2, 0, 0], [0, 1, -1]])
scaler = MaxAbsScaler()# 使用fit_transform方法對(duì)數(shù)據(jù)進(jìn)行縮放
X_scaled = scaler.fit_transform(X)print(X_scaled)
4. RobustScaler
  • 作用:使用中位數(shù)和四分位數(shù)范圍(IQR)來縮放特征。這對(duì)于有許多離群點(diǎn)的數(shù)據(jù)集特別有用。
  • 栗子
from sklearn.preprocessing import RobustScalerX = np.array([[1, -2, 2], [2, -1, 0], [0, 1, -1]])
scaler = RobustScaler()# 使用fit_transform方法對(duì)數(shù)據(jù)進(jìn)行縮放
X_scaled = scaler.fit_transform(X)print(X_scaled)
5. Normalizer
  • 作用:將每個(gè)樣本縮放到單位范數(shù),即使得每個(gè)樣本的L1或L2范數(shù)為1。
  • 栗子
from sklearn.preprocessing import NormalizerX = np.array([[1, 2], [3, 4], [5, 6]])
normalizer = Normalizer(norm='l2')  # 可以選擇'l1'或'l2'范數(shù)# 使用fit_transform方法對(duì)數(shù)據(jù)進(jìn)行縮放
X_normalized = normalizer.fit_transform(X)print(X_normalized)

在這里插入圖片描述

2.2 數(shù)據(jù)清洗

數(shù)據(jù)清洗包括處理缺失值、異常值、重復(fù)值等。

處理缺失值
  • 栗子:使用SimpleImputer填充缺失值。
from sklearn.impute import SimpleImputer
imputer = SimpleImputer(strategy='mean')  # 可以選擇'mean'、'median'、'most_frequent'等策略
X_train_imputed = imputer.fit_transform(X_train)

2.3 編碼分類特征

對(duì)于分類數(shù)據(jù),需要將其轉(zhuǎn)換為機(jī)器學(xué)習(xí)模型可以理解的數(shù)值形式。

獨(dú)熱編碼(One-Hot Encoding)
  • 栗子:使用OneHotEncoder進(jìn)行獨(dú)熱編碼。
from sklearn.preprocessing import OneHotEncoder
encoder = OneHotEncoder()
X_train_encoded = encoder.fit_transform(X_train)
標(biāo)簽編碼(Label Encoding)
  • 雖然sklearn不直接提供標(biāo)簽編碼的類,但可以使用LabelEncoder對(duì)目標(biāo)變量進(jìn)行編碼。
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
y_train_encoded = le.fit_transform(y_train)

2.3. 特征選擇和降維

選擇重要的特征或降低數(shù)據(jù)的維度可以幫助提高模型的效率和準(zhǔn)確性。

方差閾值
  • 栗子:使用VarianceThreshold刪除方差低于閾值的特征。
from sklearn.feature_selection import VarianceThreshold
selector = VarianceThreshold(threshold=0.1)
X_train_selected = selector.fit_transform(X_train)
單變量特征選擇
  • 栗子:使用SelectKBest選擇與目標(biāo)變量相關(guān)性最高的K個(gè)特征。
from sklearn.feature_selection import SelectKBest, f_regression
selector = SelectKBest(score_func=f_regression, k=5)
X_train_selected = selector.fit_transform(X_train, y_train)
主成分分析(PCA)
  • PCA是一種常用的降維技術(shù),雖然它不屬于預(yù)處理步驟,但經(jīng)常在數(shù)據(jù)預(yù)處理后使用。
from sklearn.decomposition import PCA
pca = PCA(n_components=2)  # 指定要保留的主成分?jǐn)?shù)量
X_train_reduced = pca.fit_transform(X_train)

2.4. 數(shù)據(jù)拆分

在機(jī)器學(xué)習(xí)中,通常需要將數(shù)據(jù)集拆分為訓(xùn)練集和測(cè)試集。

  • 栗子:使用train_test_split拆分?jǐn)?shù)據(jù)集。
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

2.5. 數(shù)據(jù)轉(zhuǎn)換

數(shù)據(jù)轉(zhuǎn)換包括將數(shù)據(jù)集轉(zhuǎn)換為更適合機(jī)器學(xué)習(xí)模型的形式。

多項(xiàng)式特征
  • 栗子:使用PolynomialFeatures生成多項(xiàng)式特征。
from sklearn.preprocessing import PolynomialFeatures
poly = PolynomialFeatures(degree=2)  # 指定多項(xiàng)式的度數(shù)
X_train_poly = poly.fit_transform(X_train)

這些預(yù)處理工具和技術(shù)在sklearn庫(kù)中都有提供,可以根據(jù)具體的數(shù)據(jù)集和機(jī)器學(xué)習(xí)任務(wù)來選擇合適的預(yù)處理步驟。

三、分類算法

分類算法是機(jī)器學(xué)習(xí)領(lǐng)域的一個(gè)重要分支,旨在根據(jù)輸入數(shù)據(jù)的特征將其劃分為不同的類別。下面勒是一些常用的分類算法:
在這里插入圖片描述

  1. 邏輯回歸(Logistic Regression)

    • 邏輯回歸是一種線性分類算法,通過邏輯函數(shù)預(yù)測(cè)概率,根據(jù)概率決定分類的閾值。
    • 適用于二分類問題,如預(yù)測(cè)郵件是否為垃圾郵件。
  2. 決策樹(Decision Tree)

    • 通過遞歸地選擇最佳特征并對(duì)特征進(jìn)行分割,構(gòu)建樹形結(jié)構(gòu)進(jìn)行分類。
    • 易于理解和解釋,能處理數(shù)值型和類別型數(shù)據(jù)。
    • 可用于銀行決定是否給客戶貸款等場(chǎng)景。
  3. 支持向量機(jī)(Support Vector Machine, SVM)

    • SVM通過尋找最大邊際超平面來分隔不同的類別。
    • 在高維空間表現(xiàn)良好,適用于小樣本數(shù)據(jù)集,但對(duì)大規(guī)模數(shù)據(jù)集的訓(xùn)練效率較低。
    • 可應(yīng)用于手寫數(shù)字識(shí)別等任務(wù)。
  4. 樸素貝葉斯(Naive Bayes)

    • 基于貝葉斯定理的分類算法,假設(shè)特征之間相互獨(dú)立。
    • 簡(jiǎn)單、高效,特別適用于文本分類,如新聞文章分類。
  5. K-近鄰算法(K-Nearest Neighbors, KNN)

    • 基于實(shí)例的學(xué)習(xí)方法,通過計(jì)算待分類樣本與訓(xùn)練樣本的距離來進(jìn)行分類。
    • 簡(jiǎn)單直觀,但計(jì)算成本隨數(shù)據(jù)集增大而增加。
    • 可用于房地產(chǎn)價(jià)格評(píng)估等場(chǎng)景。
  6. 隨機(jī)森林(Random Forest)

    • 一種集成學(xué)習(xí)方法,通過構(gòu)建多個(gè)決策樹并進(jìn)行投票來提高分類準(zhǔn)確性。
    • 能有效減少過擬合,提高模型的穩(wěn)定性。
    • 可應(yīng)用于信用卡欺詐檢測(cè)等任務(wù)。
  7. 梯度提升樹(Gradient Boosting Trees, GBT)

    • 另一種集成學(xué)習(xí)算法,通過逐步添加新的弱分類器來糾正前一個(gè)模型的錯(cuò)誤。
    • 在許多機(jī)器學(xué)習(xí)競(jìng)賽中表現(xiàn)優(yōu)異,但訓(xùn)練時(shí)間可能較長(zhǎng)。
    • 可用于優(yōu)化用戶行為預(yù)測(cè)等場(chǎng)景。
  8. 神經(jīng)網(wǎng)絡(luò)(Neural Networks)

    • 神經(jīng)網(wǎng)絡(luò)是通過模擬人腦神經(jīng)元連接方式而建立的一種復(fù)雜網(wǎng)絡(luò)模型。
    • 適用于圖像識(shí)別、語音識(shí)別、自然語言處理等復(fù)雜任務(wù)。
    • 常見的神經(jīng)網(wǎng)絡(luò)類型包括前饋神經(jīng)網(wǎng)絡(luò)、反饋神經(jīng)網(wǎng)絡(luò)和圖神經(jīng)網(wǎng)絡(luò)等。其中前饋神經(jīng)網(wǎng)絡(luò)(如多層感知機(jī))是應(yīng)用最廣泛的類型之一。

這些分類算法各有特點(diǎn)和適用場(chǎng)景,下面整一個(gè)使用邏輯回歸進(jìn)行分類的例子吧:

邏輯回歸分類

from sklearn.datasets import load_iris
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score# 加載iris數(shù)據(jù)集
iris = load_iris()
X = iris.data
y = iris.target# 劃分訓(xùn)練集和測(cè)試集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 初始化邏輯回歸模型
logreg = LogisticRegression()# 訓(xùn)練模型
logreg.fit(X_train, y_train)# 預(yù)測(cè)測(cè)試集
y_pred = logreg.predict(X_test)# 計(jì)算準(zhǔn)確率
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy}")

四、回歸算法

回歸算法是用于預(yù)測(cè)連續(xù)數(shù)值輸出的監(jiān)督學(xué)習(xí)算法。下面是一些常用的回歸算法:

  1. 線性回歸(Linear Regression)

    • 線性回歸用于建立連續(xù)數(shù)值輸出與一個(gè)或多個(gè)輸入特征之間的線性關(guān)系。
    • 它假設(shè)輸出與輸入特征之間存在線性關(guān)系,即可以用一條直線或平面來擬合數(shù)據(jù)。
    • 線性回歸的目標(biāo)是找到一條最佳擬合直線,以最小化預(yù)測(cè)值與真實(shí)值之間的誤差。
  2. 多項(xiàng)式回歸(Polynomial Regression)

    • 多項(xiàng)式回歸是線性回歸的擴(kuò)展,通過引入多項(xiàng)式特征來處理非線性關(guān)系。
    • 它能夠擬合更復(fù)雜的數(shù)據(jù)分布,特別是當(dāng)數(shù)據(jù)呈現(xiàn)非線性趨勢(shì)時(shí)。
  3. 嶺回歸(Ridge Regression)

    • 嶺回歸是一種正則化的線性回歸方法,用于處理共線性問題(即特征之間高度相關(guān))。
    • 通過在損失函數(shù)中加入L2正則化項(xiàng),嶺回歸能夠收縮回歸系數(shù),減少模型的復(fù)雜度,防止過擬合。
  4. Lasso回歸(Lasso Regression)

    • Lasso回歸也是一種正則化的線性回歸方法,與嶺回歸類似,但使用的是L1正則化。
    • Lasso回歸傾向于產(chǎn)生稀疏的回歸系數(shù),即某些系數(shù)會(huì)變?yōu)榱?#xff0c;從而實(shí)現(xiàn)特征的自動(dòng)選擇。
  5. 彈性網(wǎng)絡(luò)回歸(Elastic Net Regression)

    • 彈性網(wǎng)絡(luò)回歸是嶺回歸和Lasso回歸的折中方法。
    • 它同時(shí)使用了L1和L2正則化,通過調(diào)整兩者的權(quán)重來平衡模型的稀疏性和穩(wěn)定性。
  6. 支持向量回歸(Support Vector Regression, SVR)

    • 支持向量回歸是支持向量機(jī)在回歸問題上的應(yīng)用。
    • 它試圖找到一個(gè)超平面,使得所有數(shù)據(jù)點(diǎn)到該超平面的距離之和最小。
    • SVR對(duì)異常值具有一定的魯棒性,并且適用于高維數(shù)據(jù)。
  7. 決策樹回歸(Decision Tree Regression)

    • 決策樹回歸使用樹形結(jié)構(gòu)來表示輸入特征與輸出值之間的關(guān)系。
    • 通過遞歸地將數(shù)據(jù)劃分為不同的子集,并基于某些準(zhǔn)則(如信息增益)選擇最佳劃分點(diǎn)。
    • 決策樹易于理解和解釋,但可能容易過擬合。
  8. 隨機(jī)森林回歸(Random Forest Regression)

    • 隨機(jī)森林回歸是一種集成學(xué)習(xí)方法,通過構(gòu)建多個(gè)決策樹并對(duì)它們的預(yù)測(cè)結(jié)果進(jìn)行平均來提高預(yù)測(cè)精度。
    • 隨機(jī)森林能夠減少模型的方差,提高泛化能力,并且相對(duì)不容易過擬合。
  9. 梯度提升回歸樹(Gradient Boosting Regression Trees, GBRT)

    • 梯度提升回歸樹是一種迭代的決策樹算法,通過逐步添加新的樹來修正前面樹的預(yù)測(cè)錯(cuò)誤。
    • 每棵新樹都嘗試預(yù)測(cè)前面所有樹的殘差(真實(shí)值與當(dāng)前預(yù)測(cè)值之間的差)。
    • GBRT通常具有較高的預(yù)測(cè)精度,但也可能容易過擬合。

這些回歸算法各有優(yōu)勢(shì)和適用場(chǎng)景,以下是一個(gè)使用線性回歸進(jìn)行預(yù)測(cè)的簡(jiǎn)單例子:

線性回歸預(yù)測(cè)

from sklearn.datasets import make_regression
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error# 生成一個(gè)簡(jiǎn)單的回歸數(shù)據(jù)集
X, y = make_regression(n_samples=100, n_features=1, noise=0.1)# 劃分訓(xùn)練集和測(cè)試集(略)
# ...# 初始化線性回歸模型
linreg = LinearRegression()# 訓(xùn)練模型
linreg.fit(X_train, y_train)# 預(yù)測(cè)測(cè)試集
y_pred = linreg.predict(X_test)# 計(jì)算均方誤差
mse = mean_squared_error(y_test, y_pred)
print(f"Mean Squared Error: {mse}")

五、模型評(píng)估與調(diào)優(yōu)

sklearn還提供了豐富的模型評(píng)估工具和調(diào)優(yōu)方法??梢允褂媒徊骝?yàn)證來評(píng)估模型的性能,使用網(wǎng)格搜索來找到最佳的模型參數(shù)。

交叉驗(yàn)證和網(wǎng)格搜索

from sklearn.model_selection import cross_val_score, GridSearchCV
from sklearn.svm import SVC
from sklearn.datasets import load_iris# 加載iris數(shù)據(jù)集(略)
# ...# 初始化SVC模型
svc = SVC()# 使用5折交叉驗(yàn)證評(píng)估模型性能
scores = cross_val_score(svc, X, y, cv=5)
print(f"Cross-validation scores: {scores}")
print(f"Mean cross-validation score: {scores.mean()}")# 使用網(wǎng)格搜索找到最佳參數(shù)
parameters = {'kernel':('linear', 'rbf'), 'C':[1, 10]}
clf = GridSearchCV(svc, parameters, cv=5)
clf.fit(X_train, y_train)
print(f"Best parameters: {clf.best_params_}")
print(f"Best score: {clf.best_score_}")

結(jié)語

這篇博客,介紹了解了sklearn庫(kù)的基礎(chǔ)知識(shí),通過幾個(gè)簡(jiǎn)單的例子展示了如何使用它進(jìn)行數(shù)據(jù)處理、分類、回歸以及模型評(píng)估與調(diào)優(yōu)。當(dāng)然,sklearn還提供了更多高級(jí)的功能和算法,如聚類、降維、異常檢測(cè)等,這些都有待我們?nèi)ヌ剿骱蛯W(xué)習(xí)。希望這篇博客能作為學(xué)習(xí)sklearn的起點(diǎn),助你在機(jī)器學(xué)習(xí)的道路上越走越遠(yuǎn)!


聽說...關(guān)注下面公眾號(hào)的人都變牛了,純技術(shù),純干貨 !

http://m.aloenet.com.cn/news/32744.html

相關(guān)文章:

  • 遂寧市網(wǎng)站建設(shè)最近發(fā)生的新聞
  • 信譽(yù)好的o2o網(wǎng)站建設(shè)關(guān)鍵詞網(wǎng)絡(luò)推廣企業(yè)
  • 家庭室內(nèi)裝修設(shè)計(jì)公司杭州seo網(wǎng)
  • 建站之星設(shè)計(jì)師站優(yōu)云seo優(yōu)化
  • 汽車保險(xiǎn)網(wǎng)站crm系統(tǒng)
  • 免費(fèi)的自助設(shè)計(jì)網(wǎng)站百度風(fēng)云榜官網(wǎng)
  • 電子商務(wù)網(wǎng)站開發(fā)相關(guān)技術(shù)全網(wǎng)線報(bào) 實(shí)時(shí)更新
  • 嘉興做網(wǎng)站費(fèi)用重慶百度推廣電話
  • 免費(fèi)視頻網(wǎng)站制作自己如何制作一個(gè)網(wǎng)頁(yè)
  • 濟(jì)南網(wǎng)站建設(shè)山東酷風(fēng)seo關(guān)鍵詞怎么優(yōu)化
  • 怎么做瀏覽器網(wǎng)站嗎推廣計(jì)劃
  • 網(wǎng)站建設(shè)是什么樣的百度關(guān)鍵詞排行榜
  • 怎么弄個(gè)人網(wǎng)站優(yōu)幫云排名自動(dòng)扣費(fèi)
  • 網(wǎng)站設(shè)計(jì)規(guī)劃書例子微信客戶管理
  • 上饒建設(shè)培訓(xùn)中心網(wǎng)站網(wǎng)絡(luò)營(yíng)銷公司熱線電話
  • 中國(guó)十大電商做的好的網(wǎng)站seo推廣是什么意懌
  • 專業(yè)微信網(wǎng)站建設(shè)公司首選公司哪家好互聯(lián)網(wǎng)推廣公司排名
  • 建網(wǎng)站前期設(shè)計(jì)用那軟件花都網(wǎng)絡(luò)推廣seo公司
  • wordpress注冊(cè)去掉電子郵件上海網(wǎng)站seo診斷
  • 做網(wǎng)站后臺(tái)域名備案官網(wǎng)
  • 鄭州專業(yè)網(wǎng)站制作服務(wù)報(bào)價(jià)濟(jì)南網(wǎng)絡(luò)推廣公司電話
  • 寧波網(wǎng)站建設(shè)在線智慧軟文網(wǎng)站
  • 南昌有限公司 網(wǎng)站灰色詞排名代做
  • wordpress地址和站點(diǎn)url金華百度seo
  • python做網(wǎng)站快么鄭州外貿(mào)網(wǎng)站推廣
  • 百度做網(wǎng)站的電話百度置頂廣告多少錢
  • 德陽哪里有做網(wǎng)站的windows優(yōu)化大師是官方的嗎
  • 網(wǎng)站微信建設(shè)運(yùn)營(yíng)經(jīng)驗(yàn)分享沈陽疫情最新消息
  • 鄭州做裝飾的網(wǎng)站友情鏈接交易網(wǎng)
  • 公司做網(wǎng)站讓我們銷售百度點(diǎn)擊排名收費(fèi)軟件