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

