Python如何實(shí)現(xiàn)拆分?jǐn)?shù)據(jù)集
前言
訓(xùn)練模型之前一般需要把數(shù)據(jù)集拆分為訓(xùn)練集和測(cè)試集,使用python代碼如何拆分的關(guān)鍵就是如何更方便的選擇出自變量X和因變量Y。
加載數(shù)據(jù)
# 導(dǎo)入第三方模塊 import pandas as pd # 讀入數(shù)據(jù) df = pd.read_csv(r'splitfeatures.csv') df.head()
如何選擇出X和Y
最簡(jiǎn)單的方式一個(gè)一個(gè)選擇
X = df[['age','sex','income','profession']] y = df['is_buy']
用iloc和loc選擇
X1 = df.iloc[:,[0,1,2,4]] y1 = df.iloc[:,[3]] X2 = df.loc[:,['age','sex','income','profession']] y2 = df.loc[:,['is_buy']]
用drop選擇
X3 = df.drop(['is_buy'],axis=1) y3 = df.is_buy
使用dataframe的colunms方法
col = df.columns[[0,1,2,4]] X4 = df.loc[:,col] X5 = df.iloc[:, df.columns != 'is_buy'] y5 = df.iloc[:, df.columns == 'is_buy']
使用model_selection拆分?jǐn)?shù)據(jù)集
from sklearn import model_selection # 將數(shù)據(jù)集拆分為訓(xùn)練集和測(cè)試集 X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size = 0.2, random_state = 1234)
后記
看完上面的內(nèi)容,應(yīng)該對(duì)拆分?jǐn)?shù)據(jù)集有了一個(gè)基本認(rèn)識(shí)。
下面寫(xiě)一個(gè)較為完整的案例:
引入必要的庫(kù)
在開(kāi)始之前,我們需要引入一些必要的Python庫(kù),包括numpy和sklearn。
Numpy庫(kù)用于處理數(shù)組和矩陣,而sklearn庫(kù)則提供了數(shù)據(jù)集拆分的函數(shù)。
import numpy as np from sklearn.model_selection import train_test_split
加載數(shù)據(jù)集
首先,我們需要加載我們的數(shù)據(jù)集。
這里以一個(gè)簡(jiǎn)單的鳶尾花數(shù)據(jù)集為例。
from sklearn.datasets import load_iris iris = load_iris() X = iris.data y = iris.target
數(shù)據(jù)集
拆分使用sklearn庫(kù)的train_test_split函數(shù)可以很方便地拆分?jǐn)?shù)據(jù)集。
該函數(shù)會(huì)將數(shù)據(jù)集按一定的比例拆分為訓(xùn)練集和測(cè)試集。
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
這里的test_size參數(shù)表示要分割測(cè)試集所占的比例,通常約定為0.2或0.3。
而random_state參數(shù)用于設(shè)置隨機(jī)種子,保證每次運(yùn)行代碼時(shí)得到的拆分結(jié)果是相同的。
拆分結(jié)果的驗(yàn)證
在完成數(shù)據(jù)集拆分后,我們可以驗(yàn)證拆分的結(jié)果是否正確。
這可以通過(guò)打印訓(xùn)練集和測(cè)試集的長(zhǎng)度來(lái)實(shí)現(xiàn)。
print("訓(xùn)練集長(zhǎng)度:", len(X_train)) print("測(cè)試集長(zhǎng)度:", len(X_test))
拆分結(jié)果的應(yīng)用
最后,我們可以將拆分后的數(shù)據(jù)集用于模型的訓(xùn)練和測(cè)試。
# 在訓(xùn)練集上訓(xùn)練模型 model.fit(X_train, y_train) # 在測(cè)試集上測(cè)試模型性能 accuracy = model.score(X_test, y_test) print("模型準(zhǔn)確率:", accuracy)
總結(jié)
通過(guò)使用sklearn庫(kù)的train_test_split函數(shù),我們可以很方便地將數(shù)據(jù)集拆分為訓(xùn)練集和測(cè)試集。
同時(shí),我們還提到了調(diào)整拆分比例和設(shè)置隨機(jī)種子的一些技巧。希望這些技巧能幫助你更好地進(jìn)行模型訓(xùn)練和測(cè)試,也希望大家多多支持腳本之家。
相關(guān)文章
Python中TypeError: unhashable type: ‘list‘錯(cuò)誤的解
在Python編程的領(lǐng)域中,數(shù)據(jù)類型的正確使用是確保程序正常運(yùn)行的關(guān)鍵要素之一,然而,開(kāi)發(fā)者們常常會(huì)遇到一些由于數(shù)據(jù)類型使用不當(dāng)而引發(fā)的報(bào)錯(cuò),其中TypeError: unhashable type: 'list’就是一個(gè)比較典型的錯(cuò)誤,那么,讓我們深入探究這個(gè)報(bào)錯(cuò)問(wèn)題,為大家提供全面的解決方案2024-10-10通過(guò)python的matplotlib包將Tensorflow數(shù)據(jù)進(jìn)行可視化的方法
今天小編就為大家分享一篇通過(guò)python的matplotlib包將Tensorflow數(shù)據(jù)進(jìn)行可視化的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01python的urllib.parse用法及說(shuō)明
這篇文章主要介紹了python的urllib.parse用法及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09pycharm 使用心得(九)解決No Python interpreter selected的問(wèn)題
PyCharm 是由JetBrains打造的一款 Python IDE。具有智能代碼編輯器,能理解 Python 的特性并提供卓越的生產(chǎn)力推進(jìn)工具:自動(dòng)代碼格式化、代碼完成、重構(gòu)、自動(dòng)導(dǎo)入和一鍵代碼導(dǎo)航等。這些功能在先進(jìn)代碼分析程序的支持下,使 PyCharm 成為 Python 專業(yè)開(kāi)發(fā)人員和剛起步人員使用的有力工具。2014-06-06pandas中concatenate和combine_first的用法詳解
本文主要介紹了pandas中concatenate和combine_first的用法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01Python簡(jiǎn)單獲取網(wǎng)卡名稱及其IP地址的方法【基于psutil模塊】
這篇文章主要介紹了Python簡(jiǎn)單獲取網(wǎng)卡名稱及其IP地址的方法,結(jié)合實(shí)例形式分析了Python基于psutil模塊針對(duì)本機(jī)網(wǎng)卡硬件信息的讀取操作簡(jiǎn)單使用技巧,需要的朋友可以參考下2018-05-05基于Python數(shù)據(jù)可視化利器Matplotlib,繪圖入門(mén)篇,Pyplot詳解
下面小編就為大家?guī)?lái)一篇基于Python數(shù)據(jù)可視化利器Matplotlib,繪圖入門(mén)篇,Pyplot詳解。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10