假期作业1

代码展示:

from sklearn.model_selection import train_test_split,GridSearchCV
from sklearn.datasets import load_iris
import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.neighbors import KNeighborsClassifier
from sklearn.preprocessing import MinMaxScaler

#获取数据集
iris = load_iris()
# print("鸢尾花的特征值:\n",iris['data'])
# print("鸢尾花的目标值:\n",iris['target'])
# print("鸢尾花的特征的名字:\n",iris['feature_names'])
# print("鸢尾花的目标值的名字:\n",iris['target_names'])
# print("鸢尾花的描述:\n",iris['DESCR'])

#数据可视化--仅仅为了可视化
#1.表格化数据,便于操作
iris_data =pd.DataFrame(data = iris['data'],columns=['Sepal_Length', 'Sepal_Width', 'Petal_Length', 'Petal_Width'])
#2.填充目标值
iris_data['target'] = iris.target

#3.绘制
def iris_plot(data,col1,col2):
    sns.lmplot(x= col1,y= col2,data= iris_data,hue='target',fit_reg=False)
    plt.title(r'data show')
    plt.xlabel(col1)
    plt.ylabel(col2)
    plt.show()
iris_plot(iris_data,'Sepal_Length','Petal_Width')
#划分数据集
x_train,x_test,y_train,y_test = train_test_split(iris['data'],iris['target'],test_size=0.2,random_state=42)

#特征处理
#这里用归一化处理
transfer = MinMaxScaler(feature_range=(0,1))
ret_train_data = transfer.fit_transform(x_train)
ret_test_data = transfer.fit_transform(x_test)

#机器学习--构建KNN
#1.构建KNN,并实例化
k = 5
knn_model = KNeighborsClassifier(n_neighbors=k)
#2.调用交叉验证,网格搜索API
param_grid = {'n_neighbors':[1,3,5,7,9]}
knn_model =  GridSearchCV(knn_model,param_grid=param_grid,cv = 10,n_jobs=-1)
#3.模型训练
knn_model.fit(ret_train_data,y_train)
#4.模型评估
y_pre = knn_model.predict(ret_test_data)
print('预测值是\n',y_pre)
print("预测值和真实值的对比是:\n",y_pre==y_test)
#准确率计算,注意如果是归一化后的数据就得用归一化后的数据进行预测计算准确率,不然效果很差
score=knn_model.score(ret_test_data,y_test)
print(f'准确率是:{score}')
#其他评价指标
print('最好的模型:\n',knn_model.best_estimator_)
print('最好的结果:\n',knn_model.best_score_)
print('整体模型结果:\n',knn_model.cv_results_)

结果展示: 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值