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