将两段代码合成一个完整的df = df.iloc[:,:7].copy() for col_name in df.columns: # 取列名for col_name in X_copy.columns: col_data = df[[col_name]] # 根据列名拿列数据,两个方括号是因为要二维数组 stand_data = StandardScaler().fit_transform(col_data.values) # 标准化 df[col_name] = stand_data # 将数据替换成标准化后的数据 return X_copy def run_classifier(): # 将数据集分为训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=test, random_state=random) # 训练分类器 knn.fit(X_train, y_train) # 在训练集上计算分类器的准确率 score = knn.score(X_train, y_train) # 更新结果标签的文本 result_label5.config(text="训练集分类器的准确率为:{:.2f}".format(score))
时间: 2024-03-10 12:49:47 浏览: 59
这段代码可以合并成一个完整的代码如下:
```
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
# 加载数据集
data = pd.read_csv("data.csv")
# 获取特征和标签
X = data.iloc[:,:7]
y = data.iloc[:,7]
# 对数据进行标准化处理
def standardize_data(df):
df = df.iloc[:,:7].copy()
for col_name in df.columns:
col_data = df[[col_name]]
stand_data = StandardScaler().fit_transform(col_data.values)
df[col_name] = stand_data
return df
# 将数据集分为训练集和测试集
X_copy = standardize_data(X)
X_train, X_test, y_train, y_test = train_test_split(X_copy, y, test_size=test, random_state=random)
# 训练KNN分类器
knn = KNeighborsClassifier(n_neighbors=5)
knn.fit(X_train, y_train)
# 在训练集上计算分类器的准确率
score = knn.score(X_train, y_train)
# 更新结果标签的文本
result_label5.config(text="训练集分类器的准确率为:{:.2f}".format(score))
```
这段代码加载数据集,获取特征和标签,对数据进行标准化处理,将数据集分为训练集和测试集,训练KNN分类器,并在训练集上计算分类器的准确率。
阅读全文