我是機器學習的新手,并試圖做一些練習來弄清楚一些東西。
我正在將 csv 檔案讀入資料框,如下所示:
df = pd.read_csv(path "tweets.csv", header=None)
df.head()
然后我想使用這個資料框(實際上只是我的所有資料)來做一個train_test_split. 我正在調查它,發現這樣做的方法是這樣的:
# create dataset
X, y = make_blobs(n_samples=500)
# split into train test sets
X_train, X_test, y_train, y_test = train_test_split(n_samples, test_size=0.20)
print(X_train.shape, X_test.shape, y_train.shape, y_test.shape)
但是,我嘗試np_array通過n_samples = df.to_numpy()在該make_blobs方法之前執行操作來使我的資料集為 a,但是,當我嘗試執行此操作時,我收到以下錯誤:
ValueError:沒有足夠的值來解包(預期 4,得到 2)
我認為這是因為變數不夠大,但確實如此。所以我有點失落。我知道它期望能夠得到 4 個值,但只接收 2 個,但是,我直接從docs獲取代碼,所以我想我遺漏了一些東西或者我誤解了。
有人可以指出我正確的方向嗎?
uj5u.com熱心網友回復:
要解決您的問題,您必須提供資料框的樣本。
對于您的資料框,您需要確定哪些列是資料 (X),哪些列是標簽 (y)
X_cols = ['feat1', 'feat2', 'feat3']
y_cols = ['label']
X_train, X_test, y_train, y_test = \
train_test_split(df[X_cols], df[y_cols], test_size=0.2)
在操作結束時:
X_train有 80%df[X_cols]X_test有 20%df[X_cols]y_train有 80%df[y_cols]y_test有 20%df[y_cols]
更新
如果要使用由 創建的資料make_blob,請使用:
X, y = make_blobs(n_samples=500)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
uj5u.com熱心網友回復:
好像您只提供了一個輸入陣列,train_test_split這意味著它只是根據測驗比率將該陣列分成 2 個。在檔案中給出的示例中,train_test_split(X 和 y)有兩個輸入,函式將它們中的每一個拆分為兩個陣列(產生 4 個值)。
sklearn 函式對所提供的陣列一無所知。它根據提供的比率將您提供的任意數量的陣列隨機拆分為 2 個陣列(訓練和測驗),同時保證每個陣列的行拆分順序相同(即您維護 taining 資料、其標簽和您在其他陣列中擁有的任何其他元資料)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/450699.html
上一篇:洗掉與條件關聯的所有資料框行
