用分类算法预测手机价格区间,用网格搜索调参

本文使用二手手机性能数据,通过逻辑回归、KNN、决策树和随机森林等分类算法预测价格区间。通过网格搜索进行参数调优,发现KNN在默认参数下表现良好,而逻辑回归调参后效果显著。
摘要由CSDN通过智能技术生成


前言

数据为二手手机的各个性能的数据,最后根据这些性能得到3个价格区间,作为这些二手手机售出的价格区间。

注意:该数据集已经经过预处理,可以直接用于预测价格区间。


一、了解数据

battery_power:电池一次可储存的总能量,单位为毫安时
blue :是否有蓝牙
clock_speed:微处理器执行指令的速度
dual_sim:是否支持双卡
fc:前置摄像头百万像素
four_g:是否有4G
int_memory:内存(GB)
m_dep:移动深度(cm)
mobile_wt:手机重量
n_cores:处理器内核数
pc:主摄像头百万像素
px_height:像素分辨率高度
px_width:像素分辨率宽度
ram:随机存取存储器(兆字节)
sc_h:手机屏幕高度(cm)
sc_w:手机屏幕宽度(cm)
talk_time:一次电池充电持续时间最长的时间
three_g:是否有3G
touch_screen:是否有触控屏
wifi:是否能连wifi
price_range:价格区间(0,1,2,3)

用describe()看每个特征的描述统计:
在这里插入图片描述

在这里插入图片描述

二、建立模型前准备

1.分训练集测试集


from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report,confusion_matrix

#X为特征数据,y为结果数据
X=df.drop('price_range',axis=1)
y=df['price_range']

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=101)

2.定义一个函数输出每个算法的结果

#定义模型计算,之后调用模型,输出预测结果和预测准确性分数
def model_evl(algo):
    algo_model = algo.fit(X_train, y_train)
    global y_pred
    y_pred = algo_model.predict(X_test)

	#confusion_matrix混淆矩阵,主要用于比较分类结果和实际测的值
    print('\nConfusion Matrix:\n {}'
      .format(confusion_matrix(y_test,y_pred)))

    print("--"*20)
    print
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值