文章目录
前言
数据为二手手机的各个性能的数据,最后根据这些性能得到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