数据探索与分析
from sklearn.datasets import load_breast_cancer
breast_cancer = load_breast_cancer()
print(breast_cancer.DESCR)
运行结果
数据分析
数据集包含了
30
个特征,包括肿瘤的半径、纹理、对称性等,以及目标变量,即肿瘤的性质(
0
:良性,
1
:恶 性)。
解题提示
1.
数据预处理:
在构建模型之前,记得对数据进行标准化,以确保不同特征的尺度一致。
2.
选择合适的算法:
考虑使用
K
近邻算法(
KNN
)进行分类任务。
3.
调参优化:
使用交叉验证来选择最优的
K
值,以提高模型的性能。
4.
模型评估:
使用准确率作为评估标准,评估模型的性能。
from sklearn.datasets import load_breast_cancer
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import GridSearchCV
# 加载乳腺癌数据集
mydata = load_breast_cancer()
# 将特征数据和标签数据存储到 DataFrame 中,并添加列名称
mydata2 = pd.DataFrame(mydata['data'], columns=mydata.feature_names)
mydata2['target'] = mydata.target
# 实例化 StandardScaler 对象进行特征数据标准化处理
transfer = StandardScaler()
# 划分数据集为训练集和测试集,其中训练集占总数据的 70%
x_train, x_test, y_train, y_test = train_test_split(mydata.data, mydata.target, train_size=0.7, random_state=22)
# 对训练集和测试集的特征数据进行标准化处理
x_train = transfer.fit_transform(x_train)
x_test = transfer.transform(x_test)
# 实例化 K 近邻分类器对象
model = KNeighborsClassifier()
# 使用网格搜索交叉验证进行参数调优
model2 = GridSearchCV(estimator=model, param_grid={'n_neighbors':[3,4,5,6]}, cv=5)
model2.fit(x_train, y_train)
# 使用最佳模型对测试集进行评估,得到模型准确率
score2 = model2.score(x_test, y_test)
# 打印模型准确率和最佳参数
print(score2)
print(model2.best_params_)
运行结果