机器学习python入门


机器学习Python实战

库导入

python三大件

np : 数据计算 pd : 数据库 plt : 画图

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

图形可视化库:sns

import seaborn as sns

教程链接:https://zhuanlan.zhihu.com/p/49035741

算法模型库:sklearn

from sklearn.ensemble import RandomForestClassifier

数据导入

  • pandas库用于读入原始数据

    path = 'LogiReg_data.txt'
    pdData=pd.read_csv(path, header=None,names=['Exam1','Exam2','Admitted'])
    pdData.head()
    

数据命名

  • 训练集 train_data
  • 测试集 test_data
  • 处理过后 通常将train_data赋值给X, test_data赋值给X_test
  • 目标结果集 target
训练集 测试集 目标值
train_data test_data target
X X_test y

随机划分数据集

sklearn库中的 train_test_split()函数随机划分训练集和测试集

X_train,x_test = train_test_split(x)
X_train, X_test, y_train, y_test = train(X,y, random_state = 0)
  • random_state: 随机数的编号,在需要重复试验的时候,保证得到一组一样的随机数。
    • 每次都填1,其他参数一样的情况下得到的随机数组是一样的。
    • 填0或不填,每次都会不一样。

数据预处理

缺失值处理

  1. 使用pandas中的fillna()函数填充NaN空缺值

    • 通常情况下,可以填充为0
    • 但比如年龄这类数值不建议填充为0时,将其填充为一个无意义数值,如:-1
    X = pd.get_dummies(train_data[features].fillna(-1))
    X_test = pd.get_dummies(test_data[features].fillna(-1))
    
  1. 使用Pandas中dropna(axis=0)函数直接去除缺失值所在记录

    • 比如训练数据的目标值值缺失时,y为NaN, 可以直接扔掉该记录
    • axis:轴。
      • 0或’index’,表示按行删除;
      • 1或’columns’,表示按列删除。
    filtered_data = origin_data.dropna(axis=0)
    

非数值型属性处理

  • 将分类型字符串转换为数值

  • 离散化独热编码one-hot

    pd.get_dummies(train_data[])
    

    有几种属性状态就生成几列0-1判别值,是该类为1,其他列全为0,实现以数字分类

    如:Sex属性状态有:male、female

    ​ 分别分为两列:Sex_male、Sex_female

    ​ 通过列内0-1取值实现数值化字符串

原创文章,作者:dweifng,如若转载,请注明出处:https://blog.ytso.com/275938.html

(0)
上一篇 2022年7月22日
下一篇 2022年7月22日

相关推荐

发表回复

登录后才能评论