分类5:机器学习处理帕尔默企鹅数据

目录

  • 1 介绍
  • 2 导入包
  • 3 导入数据,打印数据信息
  • 4 缺失值处理,使用impute
  • 5 特征编码
  • 6 划分标签特征,训练集测试集
  • 7 归一化
  • 8 模型训练和验证

1 介绍

帕尔默企鹅数据集是分类问题,每一列的含义如下:

  • species 离散值 标签信息,值为 Adelie|Chinstrap|Gentoo 之一
  • island 离散值 岛屿,值为 Torgersen|Biscoe|Dream 之一
  • culmen_length_mm 连续值 喙的长度(mm)
  • culmen_depth_mm 连续值 喙的高度(mm)
  • flipper_length_mm 连续值 脚蹼长度(mm)
  • body_mass_g 连续值 体重(克)
  • sex 离散值 性别,值为 MALE| FEMALE 之一
  • 数据集地址:https://download.csdn.net/download/ww596520206/87512899

2 导入包

import numpy as np
import pandas as pd
from sklearn.tree import DecisionTreeClassifier
from sklearn.svm import SVC
from sklearn.neighbors import KNeighborsClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
from sklearn.model_selection import train_test_split
np.random.seed(123)

3 导入数据,打印数据信息

data = pd.read_csv("penguins_size.csv")

print(data.head())
print(data.info())
print(data.shape)

# 查看相关系数
print(data.corr())

4 缺失值处理,使用impute

print(data.isnull().sum())

#缺失值填补
from sklearn.impute import SimpleImputer
imputer = SimpleImputer(strategy='most_frequent')
data.iloc[:,:] = imputer.fit_transform(data)

处理前:
分类5:机器学习处理帕尔默企鹅数据_第1张图片
处理后:
分类5:机器学习处理帕尔默企鹅数据_第2张图片

5 特征编码

from sklearn.preprocessing import LabelEncoder
data["species"] = LabelEncoder().fit_transform(data["species"])
data["island"] = LabelEncoder().fit_transform(data["island"])
data["sex"] = LabelEncoder().fit_transform(data["sex"])

6 划分标签特征,训练集测试集

x = data.drop(["species"],axis=1)
y = data["species"]
X_train, X_test, y_train, y_test = train_test_split(x, y,train_size=0.7,shuffle = True, random_state=123)

7 归一化

from sklearn.preprocessing import  MinMaxScaler
scaler = MinMaxScaler() #归一化
scaler.fit(X_train)
X_train = scaler.transform(X_train)
X_test = scaler.transform(X_test)

8 模型训练和验证

model_list = [DecisionTreeClassifier(), SVC(),KNeighborsClassifier(),RandomForestClassifier()]
for model in model_list:
    model.fit(X_train, y_train)
    y_pred = model.predict(X_test)
    acc = round(accuracy_score(y_test, y_pred), 4)
    print("model:{} acc:{}".format(model, acc))
model:DecisionTreeClassifier() acc:0.9327
model:SVC() acc:0.9904
model:KNeighborsClassifier() acc:0.9904
model:RandomForestClassifier() acc:0.9904

你可能感兴趣的:(数据分析,机器学习,python,sklearn)