机器学习手撕代码(0)数据

机器学习手撕代码(0)数据

  • 后面连续几篇博客把之前没写完的几个经典机器学习算法代码补了补,尽量精简了代码量,欢迎找bug。
  • 这第0篇主要是说一下一些数据格式之类的准备,保证代码复制回去就能跑通。

文件树就是下面这个样子,不必须,import数据集文件没问题就行。
在这里插入图片描述

数据来源:kaggle葡萄酒预测
datasets文件夹下面放一个dataset.py文件,后面所有的模型都用这一个数据集。

dataset.py

import pandas as pd
import numpy as np


class DataSet:
    def __init__(self,path,mode='cla',rad_seed = 2021):
        data = pd.read_csv(path).dropna(axis=0, how='any')
        data1 = data[:2000]
        data2 = data[-2000:]
        data = pd.concat([data1, data2]).reset_index().drop(['index'], axis=1)
        data = data.replace('white', 0).replace('red', 1)
        if mode == 'cla':
            self.target_head = 'type'
        elif mode == 'reg':
            self.target_head = 'residual sugar'
        self.data_head = data.columns.to_list()
        self.data_head.remove(self.target_head)
        self.target = data[self.target_head].to_numpy()
        self.data = data[self.data_head].to_numpy()
        if rad_seed is not False:
            np.random.seed(rad_seed)
        permutation = list(np.random.permutation(len(self.data)))
        self.data = self.data[permutation]
        self.target = self.target[permutation]

    def get_data(self):
        return self.data,self.target,self.target_head,self.data_head

后面文章的模型原理就不详述了,看我的不如看书,分享一下自己手撕的代码,做了最大简化,个人感觉简洁一些。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值