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í)。
下面寫一個(gè)較為完整的案例:
引入必要的庫(kù)
在開始之前,我們需要引入一些必要的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é)果是否正確。
這可以通過打印訓(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é)
通過使用sklearn庫(kù)的train_test_split函數(shù),我們可以很方便地將數(shù)據(jù)集拆分為訓(xùn)練集和測(cè)試集。
同時(shí),我們還提到了調(diào)整拆分比例和設(shè)置隨機(jī)種子的一些技巧。希望這些技巧能幫助你更好地進(jìn)行模型訓(xùn)練和測(cè)試,也希望大家多多支持腳本之家。
相關(guān)文章
python中數(shù)據(jù)爬蟲requests庫(kù)使用方法詳解
本篇文章主要介紹了python中數(shù)據(jù)爬蟲requests庫(kù)使用方法詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2018-02-02
Python實(shí)現(xiàn)輕松合并doc為txt的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用Python編程語(yǔ)言和wxPython模塊,打開指定文件夾中的DOC文檔,并將它們的內(nèi)容合并成一個(gè)便捷的TXT文檔,需要的可以參考下2024-03-03
詳解python定時(shí)簡(jiǎn)單爬取網(wǎng)頁(yè)新聞存入數(shù)據(jù)庫(kù)并發(fā)送郵件
這篇文章主要介紹了python定時(shí)簡(jiǎn)單爬取網(wǎng)頁(yè)新聞存入數(shù)據(jù)庫(kù)并發(fā)送郵件,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
Python?Type?Hints?學(xué)習(xí)之從入門到實(shí)踐
Type?Hints(類型注解)進(jìn)一步強(qiáng)化了Python是一門強(qiáng)類型語(yǔ)言的特性,它在?Python3.5?中第一次被引入。使用Type?Hints可以讓我們編寫出帶有類型的Python代碼,本文將詳細(xì)介紹一下Type?Hints,感興趣的小伙伴可以關(guān)注一下2021-11-11
Python Locust負(fù)載測(cè)試工具安裝配置使用詳解
本文將提供有關(guān)Python Locust的全面指南,包括安裝和配置、基本概念、性能測(cè)試、任務(wù)編寫、報(bào)告生成以及實(shí)際應(yīng)用場(chǎng)景,將通過豐富的示例代碼來(lái)幫助深入理解Locust的使用2024-01-01
python兩個(gè)list[]相加的實(shí)現(xiàn)方法
這篇文章主要介紹了python兩個(gè)list[]相加的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
python使用pynput捕獲單個(gè)按鍵的步驟詳解(包括組合鍵和功能鍵)
在數(shù)字時(shí)代,鍵盤是與計(jì)算機(jī)交流的主要工具,鍵盤的每一次敲擊都承載著信息,而在某些場(chǎng)景下,可能需要記錄這些信息,這時(shí)候,pynput庫(kù)就派上了大用場(chǎng),它可以輕松地幫捕獲并記錄鍵盤上的每一個(gè)操作,所以本文給大家介紹了python使用pynput捕獲鍵的操作步驟2024-05-05
python基礎(chǔ)while循環(huán)及if判斷的實(shí)例講解
下面小編就為大家?guī)?lái)一篇python基礎(chǔ)while循環(huán)及if判斷的實(shí)例講解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2017-08-08
python實(shí)現(xiàn)定時(shí)發(fā)送qq消息
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)定時(shí)發(fā)送qq消息,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01

