日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

阿里云天池大赛——机器学习篇赛题解析(赛题一)上

發布時間:2023/12/31 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 阿里云天池大赛——机器学习篇赛题解析(赛题一)上 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

根據《阿里云天池大賽賽題解析》整理,建議配合閱讀效果更好
1.賽題理解
(1)賽題
火力發電的基本原理是燃料燃燒生產蒸汽,蒸汽推動汽輪機旋轉帶動發電機旋轉,產生電能,影響火力發電效率的核心是鍋爐的燃燒效率(每單位時間內產生的蒸汽量),影響鍋爐燃燒效率的因素很多,包括鍋爐的可調參數,如燃燒給量、一二次風、引風、返料風、給水水量;以及鍋爐的工況,如鍋爐床溫、床壓、爐膛溫度、壓力,過熱器的溫度等。
本賽題目標為根據給定的鍋爐傳感器采集的數據(燃燒給量、鍋爐工況等),預測產生的蒸汽量。
(2)數據概覽
根據阿里云天池官網的賽題提供的訓練數據顯示,一共有38個特征變量(字段名為V0~V37),1個目標變量(字段名為target)。
(3)評估指標
預測誤差以均方誤差MSE(Mean Squared Error)作為評判標準,MSE值越小,說明預測模型描述實驗數據具有越高的準確度。
(4)賽題模型
常用的模型包括回歸預測模型和分類預測模型,回歸預測模型包括線性回歸、嶺回歸、決策樹回歸、梯度提升樹回歸,分類預測模型包括二類分類、多類別分類。
本賽題中,預測值蒸汽量為連續型數值變量,因此使用回歸預測模型。
2.數據探索
(1)單變量分析
對于連續型變量,需要對其進行描述性統計,統計其的中心分布趨勢和變量分布,包括平均值、中位數、最大值、最小值、方差、標準差等。
對于類別型變量,一般使用頻次或占比表示每一個類別的分布情況??捎弥狈綀D、箱線圖來表示可視化分布情況。
(2)雙變量分析
包括連續型與連續型、類別型與類別型、類別型與連續型三種雙變量分析組合,使用不同的統計算法和圖像表達來描述雙變量之間的關系。
①連續型與連續型
統計分析算法:計算相關性
圖形表達:散點圖
②類別型與類別型
統計分析算法:
雙向表——通過建立頻次(次數)和頻率(占比)的雙向表來分析變量之間的關系。
卡方檢驗——主要用于兩個和兩個以上樣本率(構成比)及兩個二值型離散變量的關聯性分析
圖形表達:堆疊柱狀圖
③類別型和連續型
圖形表達:小提琴圖,分析類別變量在不同類別時,另一個連續變量的分布情況
3.特征工程
從原始數據中,找出、構建特征(就是對變量的處理),能很好地描述數據,并且預測表現性能達到最優的過程。
處理流程:去掉無用特征、去掉冗余特征、生成新特征、特征轉換、特征處理
3.1特征轉換
變量形態處理,對變量的取值區間等進行轉換,使其分布在合理的區間內或者更好地描述特征形態和特點或者使其更方便代入模型計算。
包括標準化、歸一化、定量特征二值化、定性特征啞變量、缺失值處理和數據轉換等。
(1)標準化
通過求標準分數的方法,將特征轉換為標準正態分布。
(2)歸一化
將樣本的特征值轉換到同一量綱下,把數據映射到[0,1]或者[a,b]區間內。
歸一化與標準化的使用場景
如果對輸出結果范圍有要求,則用歸一化
如果數據較為穩定,不存在極端的最大值或者最小值,則用歸一化。
如果數據存在異常值和較多噪聲,則用標準化,這樣可以通過中心化間接避免異常值和極端值的影響。
支持向量機K近鄰、主成分分析等模型必須進行歸一化或標注努哈操作。
(3)定量特征二值化
設定一個閾值,大于閾值的賦值為1,小于等于閾值的賦值為0.
(4)定性特征啞變量
也被稱為虛擬變量,通常是人為虛擬的變量,取值為0或1,用來反映某個變量的不同屬性。將類別變量轉換為啞變量的過程就是啞編碼。而對于有n個類別屬性的變量,通常會以1個類別特征為參照,產生n-1個啞變量。
引入啞變量的目的是把原本不能定量處理的變量進行量化,從而評估定性因素對因變量的影響。
通常會將原始的多變量變量轉換為啞變量,在構建回歸模型時,每一個啞變量都能得出一個估計的回歸系數,這樣使得回歸的結果更易于解釋。
(5)缺失值和異常值處理
①缺失值處理
處理方法:刪除,平均數、眾數、中位數填充,預測模型填充
②異常值處理
檢測:箱線圖、直方圖、散點圖檢測異常值
處理方法:刪除、轉換、填充、區別對待等方法
(6)數據轉換
在使用直方圖、核密度估計等工具對特征分布進行分析的過程中,可能會有一些變量的取值分布不平均,這將會極大影響估計,因此,需要對變量的取值區間等進行轉換,使其分布在合理的區間內。
常用的轉換方法:
①對數變換:對變量取對數,可以更改變量的分布形狀。
②取平方根或立方根:變量的平方根和立方根對其分布有波形的影響。
③變量分組:可以基于原始值、百分比或頻率等對變量分類。
3.2特征降維
變量維度處理,降維指的是采用某種映射方法,將高維向量空間的數據點映射到低維的空間中。
在原始的高維空間中,向量數據包含冗余信息及噪聲信息,其在實際應用中會對模型識別造成誤差。因此,需要減少無用或冗余的信息,減少誤差,進行特征選擇或進行線性降維。
(1)特征選擇
直接將不重要的特征刪除
特征選擇的方法:過濾法、包裝法、嵌入法
①過濾法:根據特征變量和目標變量的關系進行特征選擇,包括方差選擇法,相關系數法,卡方檢驗,最大信息系數法等。
②包裝法:使用遺傳算法、退火算法等算法,每次選擇若干特征
③嵌入法:使用機器學習的決策樹、深度學習等算法和模型進行訓練,得到各個特征的權值系數,并根據系數從大到小選擇特征。
(2)線性降維
常用的方法有主成分分析法和線性判別分析法
①主成分分析法
將高維數據映射到低維空間中表示,并期望在所投影的維度上數據的方差最大,以較少的維度保留較多的原數據點特性。
②線性判別分析法
與主成分分析法盡可能多地保留數據信息不同,線性判別分析法的目標是使降維后的數據點盡可能地容易被區分。
4.模型訓練
回歸是一種來自統計的技術,用于在目標數量連續時預測所需目標數量的值。
步驟:導入需要的工具庫——數據預處理——訓練模型——預測結果
(1)線性回歸模型
假定因變量Y與自變量X呈線性相關,則可以采用線性模型找出自變量X和因變量Y的關系,以便預測新的自變量X的值。
首先,需要導入數據

import os #讀取數據 os.chdir(r"E:\\") data = pd.read_csv(r'./data.csv') #選取自變量 train=data.columns[0:38] #選取因變量 target=data['target']

在使用任何機器學習模型之前,都需要對數據集進行切分,將其且分為訓練數據(訓練集)和驗證數據(測試集)。
切分數據代碼如下:

#切分數據集 from sklearn.model_selection import train_test_split #切分數據 #切分數據,訓練數據為80%,驗證數據為20% train_data,test_data,train_target,test_target=train_test_split(train,target,test_size=0.2,random_state=0)

使用sklearn調用線性回歸模型進行預測,代碼如下:

from sklearn.metrics import mean_squared_error #評價指標 #從sklearn算法庫中導入線性回歸模型 from sklearn.linear_model import LinearRegression #定義線性回歸模型 clf=LinearRegression() #將訓練集的自變量和因變量代入到線性回歸模型中訓練 clf.fit(train_data,train_target) #將測試集的因變量代入線性回歸模型中得到測試集的預測值 test_pred=clf.predict(test_data) #得到本次模型準確率得分 score=mean_squared_error(test_target,test_pred) print("LinearRegression: ",score)

(2)K近鄰回歸模型
K近鄰算法可用于分類和回歸。通過找出某個樣本的k個最近鄰居,將這些鄰居的某個(些)屬性的平均值賦給該樣本,就可以得到該樣本對應屬性的值。
K近鄰回歸調用方法:

from sklearn.metrics import mean_squared_error #評價指標 #從sklearn算法庫中導入k近鄰回歸模型算法 from sklearn.neighbors import KNeighborsRegressor #定義K近鄰回歸模型 clf=KNeighborsRegressor(n_neighbors=3) #選取最近的3個“鄰居”的因變量的值的平均值賦值給因變量 #將訓練集的自變量和因變量代入到K近鄰回歸模型中訓練 clf.fit(train_data,train_target) #將測試集的因變量代入線性回歸模型中得到測試集的預測值 test_pred=clf.predict(test_data) #得到本次模型準確率得分 score=mean_squared_error(test_target,test_pred) print("KNeighborsRegressor: ",score)

(3)決策樹回歸模型
決策樹回歸可以理解為根據一定準則,將一個空間劃分為若干子空間,然后利用子空間內所有點的信息表示這個子空間的值。設定劃分次數,可以使用最小二乘法進行分割點選擇,得到所對應的子空間,然后用子空間內均值作為輸出值。
決策樹回歸調用方法:

from sklearn.metrics import mean_squared_error #評價指標 #從sklearn算法庫中導入決策樹回歸算法 from sklearn.tree import DecisionTreeRegressor #定義決策樹回歸回歸模型 clf=DecisionTreeRegressor(max_depth=3, min_samples_leaf = 4, min_samples_split=2) #決策樹最大深度取3,葉子節點最少樣本數取4,內部節點再劃分所需最小樣本數取2 #更多決策樹參數可看https://blog.csdn.net/qq_41577045/article/details/79844709 #將訓練集的自變量和因變量代入到決策樹回歸回歸模型中訓練 clf.fit(train_data,train_target) #將測試集的因變量代入線性回歸模型中得到測試集的預測值 test_pred=clf.predict(test_data) #得到本次模型準確率得分 score=mean_squared_error(test_target,test_pred) print("DecisionTreeRegressor: ",score)

(4)隨機森林回歸模型
隨機森林就是通過集成學習的思想將多棵樹集成的一種算法,基本單元是決策樹,而它的本質屬于機器學習的一個分支——集成學習。
在回歸問題中,隨機森林輸出所有決策樹輸出的平均值
隨機森林回歸模型調用方法:

from sklearn.metrics import mean_squared_error #評價指標 #從sklearn算法庫中導入隨機森林回歸算法 from sklearn.ensemble import RandomForestRegressor #定義隨機森林回歸模型 clf=RandomForestRegressor(n_estimators=200) #選擇200棵決策樹 #將訓練集的自變量和因變量代入到隨機森林回歸模型中 clf.fit(train_data,train_target) #預測測試集的因變量預測值 test_pred=clf.predict(test_data) #得到本次模型準確率得分 score=mean_squared_error(test_target,test_pred) print("RandomForestRegressor: ",score)

(5)LightGBM回歸模型
LightGBM是Microsoft開發的一個GBDT算法框架,支持高效率的并行訓練,具有更快的訓練速度、更低的內存消耗、更好的準確率、分布式支持、可以快速處理海量數據等特征。
LightGBM回歸模型調用方法:

from sklearn.metrics import mean_squared_error #評價指標 #從sklearn算法庫中導入LightGBM回歸模型 import lightgbm as lgb #定義LightGBM回歸模型 clf=lgb.LGBMRegressor( learning_rate=0.01, max_depth=-1, n_estimators=5000, boosting_type='gbdt', random_state=2019, objective='regression') #更多LGB模型參數可看https://www.cnblogs.com/jiangxinyang/p/9337094.html或https://blog.csdn.net/qq_24591139/article/details/100085359 #將訓練集的自變量和因變量代入到LightGBM回歸模型中 clf.fit(train_data,train_target,eval_metric='MSE',verbose=50) #預測測試集的因變量預測值 test_pred=clf.predict(test_data) #得到本次模型準確率得分 score=mean_squared_error(test_target,test_pred) print("lightgbm: ",score)

總結

以上是生活随笔為你收集整理的阿里云天池大赛——机器学习篇赛题解析(赛题一)上的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。