微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

交叉验证错误 DataConversionWarning:当需要一维数组时传递了列向量 y

如何解决交叉验证错误 DataConversionWarning:当需要一维数组时传递了列向量 y

""" 当我尝试获取数据集的 de cv 时遇到问题,de process 给我一个结果,但也显示这些错误“DataConversionWarning:当需要一维数组时传递了列向量 y。请将y的形状更改为(n_samples,),例如使用ravel()"。我不知道是什么错误,希望有人可以帮助我。"""

import graphviz
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import confusion_matrix
from sklearn.metrics import accuracy_score
from sklearn import metrics
from sklearn import  tree
from io import StringIO
from sklearn.tree import export_graphviz
from sklearn import svm
from sklearn.model_selection import cross_val_score
from IPython.display import Image
import pydotplus

df = pd.read_csv("C:/Users/geras/PycharmProjects/pythonProject/pima-data.csv")
df.isnull().values.any()
df_clean = df.dropna()

df_map = {True:1,False:0}
df["diabetes"] = df["diabetes"].map(df_map)

feature_columns = ['num_preg','glucose_conc','diastolic_bp','insulin','bmi','diab_pred','age','skin']
predicted_class = ['diabetes']

X = df[feature_columns].values
y = df[predicted_class].values
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=.3)


Tree = DecisionTreeClassifier()
Tree.fit(X_train,y_train)
DecisionTreeClassifier(criterion='gini',splitter='best',max_depth=None,min_samples_split=2,min_samples_leaf=1,min_weight_fraction_leaf=0.0,max_features=None,random_state=0,max_leaf_nodes=None,min_impurity_split=None,class_weight="Balanced",ccp_alpha=0.0)
predic = Tree.predict(X_test)

############  CV (CROSS VALIDATION) ##################

clf = svm.SVC(kernel='linear',C=1,random_state=42).fit(X_train,y_train)
scores = cross_val_score(clf,X,cv=10)
print("%0.2f accuracy with a standard deviation of %0.2f" % (scores.mean(),scores.std()))
scores = cross_val_score(
    clf,cv=5,scoring='f1_macro')
print("score is: ",scores)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。