質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Q&A

解決済

1回答

187閲覧

データフレームの扱いについて

haru_f1

総合スコア2

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

0グッド

0クリップ

投稿2023/05/26 05:16

実現したいこと

プログラムを動作させ、正答率を算出する

前提

発生している問題・エラーメッセージ

'DataFrame' object has no attribute 'target'

該当のソースコード

import pandas as pd import seaborn as sns df= sns.load_dataset('penguins') from sklearn import datasets,model_selection,svm,metrics from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score df= sns.load_dataset('penguins') df['species']=df.target x,y=df.data,df.target x_train,x_test,y_train,y_test=train_test_split(x,y,random_state=1) model=svm.SVC() model.fit(x_train,y_train) pred=model.predict(x_test) print(accuracy_score(y_test,pred)) print(model.predict([[39.1,18.7,181,3750]]))

試したこと

データセットの読み込みに不備があるのかと思い試行錯誤しましたがうまくいきませんでした。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

can110

2023/05/26 05:49

df= sns.load_dataset('penguins') でよみこんだdfの内容 どのような列があるか、列のうちどれがtargetあるいはdataか は理解、把握されていますか?
meg_

2023/05/26 12:02

Python2.7でなければならないのでしょうか?
jbpb0

2023/05/27 01:50 編集

> df= sns.load_dataset('penguins') のすぐ下に dir(df) を追加して実行したら、たとえば「df.info()」のように「df.」に付けられるものの一覧が表示されますが、そこから探しても「data」と「target」はありませんから、 > df['species']=df.target で > 'DataFrame' object has no attribute 'target' となりますし、 > x,y=df.data,df.target の「df.data」も同様です 質問のコードで(存在してない)「df.data」と「df.target」を使おうとしてるのは、何かを参考にしたのでしょうか? 【追記】 たとえば df['species']=df.target x,y=df.data,df.target ↓ 変更 x = df[['bill_length_mm', 'bill_depth_mm', 'flipper_length_mm', 'body_mass_g']] y = df['species'] のように「df.data」と「df.target」を使わないようにして、さらにデータ中の「NaN」の対策をしたら、たぶんエラーは出なくなると思います
haru_f1

2023/05/27 14:45

NaN の対策とはどうしたら良いのでしょうか??
Pochitaro

2023/05/27 21:26

「データ欠損のチェックと対処」については教わっているかと思いますが,例えば下記のように処理すればエラーはなくなるはずです。頑張って下さい。 if True in df.isna().any().values: df = df.dropna()
jbpb0

2023/05/27 23:32

> NaN の対策とはどうしたら良いのでしょうか?? まずは自分で調べましょう データの前処理に付いて解説してるネットの記事や書籍はたくさんあります
guest

回答1

0

ベストアンサー

#このように分けてください。あなたが見本でみているirisとは違います。。いまのままだとまだエラーが出ると思いますが,大学の課題だと思うので少し頑張ってみてください。次のエラーは自力で解決できるかと思います。低い正答率が計算されると思いますが,「標準化」をすると改善すると思いますので,余裕があれば調べてください。

x = df.drop(columns = ['species','island','sex'])
y = df['species']

投稿2023/05/27 07:45

Pochitaro

総合スコア7

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問