本文將從數據、數據處理、邏輯建模等多個方面詳細闡述 Cut 幾列。同時,提供完整的代碼示例,以便讀者深入理解。
一、數據切片
Cut 幾列是一個常用的數據處理工具,主要用於將數據按照某個條件進行劃分。在數據科學中,通常將數據分為訓練數據和測試數據。使用 Cut 幾列可以方便地將數據按照比例劃分為兩部分。
下面是一個示例,演示如何將數據按照比例 7:3 劃分為訓練數據和測試數據。
import pandas as pd data = pd.read_csv('data.csv') train_data = data.sample(frac=0.7, replace=False, random_state=1) test_data = data.drop(train_data.index)
以上代碼使用了 pandas 庫中的 read_csv() 函數讀取文件,並使用 sample() 函數按照比例進行劃分。注意,參數 replace=False 代表不重複採樣。
如果需要按照指定的數值進行劃分,可以使用 pandas 中的 cut() 函數。
import pandas as pd data = pd.read_csv('data.csv') bins = [0, 18, 30, 50, 80] labels = ['18以下', '18-30', '30-50', '50以上'] data['age_group'] = pd.cut(data['age'], bins=bins, labels=labels)
以上代碼演示了如何將年齡按照區間劃分,並將劃分結果存儲在新的列 age_group 中。這樣一來,就可以根據年齡的不同段落進行數據分析。
二、數據處理
除了數據切片,Cut 幾列還可以用於對數據進行處理。比如,可以使用 Cut 幾列將文本數據按照指定的分類進行編碼。
下面是以 iris 數據集為例演示如何使用 Cut 幾列對鳶尾花的品種進行編碼。
import pandas as pd from sklearn.datasets import load_iris iris = load_iris() data = pd.DataFrame(iris.data, columns=iris.feature_names) bins = [0, 3, 4, 5, 8] labels = ['setosa', 'versicolor', 'virginica', 'other'] data['species'] = pd.cut(iris.target, bins=bins, labels=labels)
以上代碼將 iris 數據集按照目標值(即鳶尾花的品種)進行切片,並將每個品種用一個整數代替。此時,可以使用獨熱編碼將數據進一步處理。
三、邏輯建模
除了數據處理,Cut 幾列還可以用於邏輯建模。比如,在機器學習中,可以使用 Cut 幾列對連續型數據進行分段,以適應一些基於區間的算法。
下面是其中一個用例示例,當然還有很多其他的用例。代碼使用決策樹算法,對鳶尾花數據集進行分類。
import pandas as pd from sklearn.datasets import load_iris from sklearn.tree import DecisionTreeClassifier from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score iris = load_iris() data = pd.DataFrame(iris.data, columns=iris.feature_names) bins = [0, 5, 6, 8] labels = ['small', 'medium', 'large'] data['petal_length'] = pd.cut(data['petal length (cm)'], bins=bins, labels=labels) data = pd.concat([data, pd.get_dummies(data['petal_length'], prefix='petal_length')], axis=1) X_train, X_test, y_train, y_test = train_test_split(data.drop(['petal length (cm)', 'petal_width (cm)', 'sepal length (cm)', 'sepal width (cm)'], axis=1), iris.target, test_size=0.3, random_state=1) clf = DecisionTreeClassifier(random_state=1) clf.fit(X_train, y_train) y_pred = clf.predict(X_test) accuracy = accuracy_score(y_test, y_pred) print(accuracy)
以上代碼將花瓣長度劃分為三個區間,每個區間用一個 dummies 變量代替。然後,使用 train_test_split() 函數將數據劃分為訓練集和測試集,使用 DecisionTreeClassifier() 函數對數據集進行分類,並計算準確率。
使用 Cut 幾列在邏輯上對數據進行建模,可以更好地適應各種算法的需求,提高算法的準確性。
原創文章,作者:AIEFW,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/373557.html