K近邻(KNN).zip

  • sherlock290
    了解作者
  • Python
    开发工具
  • 1KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 1
    下载次数
  • 2021-04-16 10:21
    上传日期
利用python实现K临近算法预测信用卡违约情况,使用的是海豚大数据大数据分析赛的数据
K近邻(KNN).zip
  • K近邻(KNN).py
    5.6KB
内容介绍
# -*- coding: utf-8 -*- """ Created on Sat Sep 19 19:28:29 2020 @author: 谢树鹏 """ import pandas as pd import numpy as np import matplotlib.pyplot as plt #%matplotlib inline import seaborn as sns import warnings import matplotlib warnings.filterwarnings('ignore') pd.set_option('display.max_columns',None) train_data= pd.read_csv(r'E:\文档\我的文档\大数据\题目和模板\Train.csv') train_data.rename(columns={'PAY_0':'PAY_1'},inplace= True) matplotlib.rcParams['font.sans-serif'] = ['KaiTi'] matplotlib.rcParams['font.serif'] = ['KaiTi'] sns.set_style("darkgrid",{"font.sans-serif":['KaiTi', 'Arial']}) matplotlib.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题,或者转换负号为字符串 #对LIMIT_BAL(信用额度)进行Bining化后再进行Factorize化 bins = [1,5,20,35,50,100]#如何分级比较好? train_data['LIMIT_BAL_bins'] = pd.cut(train_data['LIMIT_BAL'] / 10000,bins) by_bins = train_data.groupby('LIMIT_BAL_bins')['y'].mean() #print(by_bins) train_data['LIMIT_BAL_bins_id'] = pd.factorize(train_data['LIMIT_BAL_bins'])[0] train_data['LIMIT_BAL_bins_id'].unique() #对AGE进行scaling from sklearn import preprocessing scaler = preprocessing.StandardScaler() train_data['AGE'] = scaler.fit_transform(train_data['AGE'].values.reshape(-1,1)) train_data #对BILL_AMT1到BILL_AMT6,PAY_AMT1到PAY_AMT6进行Scaling train_data['BILL_AMT1'] = scaler.fit_transform(train_data['BILL_AMT1'].values.reshape(-1,1)) train_data['BILL_AMT2'] = scaler.fit_transform(train_data['BILL_AMT2'].values.reshape(-1,1)) train_data['BILL_AMT3'] = scaler.fit_transform(train_data['BILL_AMT3'].values.reshape(-1,1)) train_data['BILL_AMT4'] = scaler.fit_transform(train_data['BILL_AMT4'].values.reshape(-1,1)) train_data['BILL_AMT5'] = scaler.fit_transform(train_data['BILL_AMT5'].values.reshape(-1,1)) train_data['BILL_AMT6'] = scaler.fit_transform(train_data['BILL_AMT6'].values.reshape(-1,1)) train_data['PAY_AMT1'] = scaler.fit_transform(train_data['PAY_AMT1'].values.reshape(-1,1)) train_data['PAY_AMT2'] = scaler.fit_transform(train_data['PAY_AMT2'].values.reshape(-1,1)) train_data['PAY_AMT3'] = scaler.fit_transform(train_data['PAY_AMT3'].values.reshape(-1,1)) train_data['PAY_AMT4'] = scaler.fit_transform(train_data['PAY_AMT4'].values.reshape(-1,1)) train_data['PAY_AMT5'] = scaler.fit_transform(train_data['PAY_AMT5'].values.reshape(-1,1)) train_data['PAY_AMT6'] = scaler.fit_transform(train_data['PAY_AMT6'].values.reshape(-1,1)) #处理测试集 test_data=pd.read_csv(r'E:\文档\我的文档\大数据\题目和模板\Test0904.csv') #先bining化 bins = [0,5,20,35,50,100] test_data['LIMIT_BAL_bins'] = pd.cut(test_data['LIMIT_BAL'] / 10000,bins) #factorize化 test_data['LIMIT_BAL_bins_id'] = pd.factorize(test_data['LIMIT_BAL_bins'])[0] #删掉LIMIT_BAL_bins列 #test_data = test_data.drop(['LIMIT_BAL_bins'],axis=1) #AGE以及BILL_AMT1到BILL_AMT6,PAY_AMT1到PAY_AMT6进行Scaling test_data['AGE'] = scaler.fit_transform(test_data['AGE'].values.reshape(-1,1)) test_data['BILL_AMT1'] = scaler.fit_transform(test_data['BILL_AMT1'].values.reshape(-1,1)) test_data['BILL_AMT2'] = scaler.fit_transform(test_data['BILL_AMT2'].values.reshape(-1,1)) test_data['BILL_AMT3'] = scaler.fit_transform(test_data['BILL_AMT3'].values.reshape(-1,1)) test_data['BILL_AMT4'] = scaler.fit_transform(test_data['BILL_AMT4'].values.reshape(-1,1)) test_data['BILL_AMT5'] = scaler.fit_transform(test_data['BILL_AMT5'].values.reshape(-1,1)) test_data['BILL_AMT6'] = scaler.fit_transform(test_data['BILL_AMT6'].values.reshape(-1,1)) test_data['PAY_AMT1'] = scaler.fit_transform(test_data['PAY_AMT1'].values.reshape(-1,1)) test_data['PAY_AMT2'] = scaler.fit_transform(test_data['PAY_AMT2'].values.reshape(-1,1)) test_data['PAY_AMT3'] = scaler.fit_transform(test_data['PAY_AMT3'].values.reshape(-1,1)) test_data['PAY_AMT4'] = scaler.fit_transform(test_data['PAY_AMT4'].values.reshape(-1,1)) test_data['PAY_AMT5'] = scaler.fit_transform(test_data['PAY_AMT5'].values.reshape(-1,1)) test_data['PAY_AMT6'] = scaler.fit_transform(test_data['PAY_AMT6'].values.reshape(-1,1)) #建模前处理 train_data_X = train_data.drop(['y'],axis=1) train_data_Y = train_data['y'] test_data_X = test_data.drop(['y'],axis=1) test_data_Y = test_data['y'] #解决clf.fit()时的浮点类型错误 train_data_X['LIMIT_BAL_bins']= pd.cut(train_data_X['LIMIT_BAL'] , 4).cat.codes test_data_X['LIMIT_BAL_bins']= pd.cut(test_data_X['LIMIT_BAL'] , 4).cat.codes from sklearn.preprocessing import StandardScaler sc = StandardScaler() train_data_X = sc.fit_transform(train_data_X) test_data_X = sc.transform(test_data_X) #K近邻(KNN) #建立模型 from sklearn.neighbors import KNeighborsClassifier clf = KNeighborsClassifier(n_neighbors=5,p=2,metric="minkowski") clf.fit(train_data_X, train_data_Y) #模型预测与评价 from sklearn.metrics import roc_auc_score preds = clf.predict_proba(test_data_X)[:,1] print(roc_auc_score(test_data_Y, preds)) ''' #输出结果 test_data_ID = test_data['ID'] test_data_ID = pd.DataFrame(test_data_ID) test_proba=pd.DataFrame(preds) test_proba.columns=['proba'] test_re = pd.concat([test_data_ID,test_proba],axis=1) ''' #test_target = pd.DataFrame(test_data_Y) #test_target.columns = ['target'] #test_re = pd.concat([test_data_ID,test_proba,test_target],axis=1) ''' test_target = test_proba test_target[(test_target <= 0.5)] = 0 test_target[(test_target > 0.5)] = 1 test_target.columns=['target'] test_re = pd.concat([test_re,test_target],axis=1) test_re.to_csv("test_RandomForest0904a.csv",index=False,sep=',') '''
评论
    相关推荐
    • decision_tree.rar
      决策树是一种典型的机器学习。本文档详细介绍了决策树的建立、检测。
    • privacy-preserve.zip
      SVM保护隐私的分类器,不暴露隐私的情况下发布SVM分类器,改进了原始的SVM分类器。
    • leetcode分类-ARTS:1.Algorithm:每周至少做一个leetcode的算法题2.Review:阅读并点评至少一
      leetcode 分类 #ARTS 1.Algorithm:每周至少做一个 leetcode 的算法题 2.Review:阅读并点评至少一篇英文技术...k-means: 代码实现都保存在本地,未开放出来,等后续整理好一起提交。 第七周打卡: leetcode: 双链表
    • SIM800C_MQTT.rar
      使用SIM800C模块,使用MQTT协议,连接中国移动onenet平台,能实现数据的订阅、发布、存储等
    • 卷积神经网络
      这是卷积神经网络的一个实际用例,已经调试好了,能够在matlab上成功运行,适合从事卷积神经网络(CNN)研究的人员学习使用。
    • android从bootloader到launcher启动流程整理
      讲述android 开机流程 从boot rom---bootloader---init--zygote---systemserver---ams 并附上自己整理的每个流程的流程图 ,清晰熟悉android 启动流程
    • matlabpam代码-dsp-library:用于光通信的MATLABDSP函数库
      matlab pam代码 DSP库 该项目包含几种不同的功能,可将DSP算法应用于光通信。 这些功能适用于相干和非相干(PAM,DMT)光通信。 大多数功能是相互独立的。 因此,该代码中的功能可以轻松使用,并与其他DSP功能结合使用。 用法 功能列表以及简短说明在文件中。 输入和输出参数的描述在每个函数的标题中。 讯号 通常,输入(和输出)信号在第一维度上具有时间(例如,列向量),而第二维度用于一次管理多个信号(例如,不同的极化,不同的参数等)。 之所以选择这种约定,是因为MATLAB通过将列保留在内存的连续部分中来存储矩阵,因此,这种约定比其他方法(行向量)要快。 参数 大多数功能使用参数结构作为输入参数。 函数中使用的参数的描述通常在标头中,而coherent-dsp函数的默认参数在文件中。 参考 执照 此代码在下发布。
    • 有关多目标跟踪的PHD滤波的一些资料
      一些关于多目标跟踪的新的文献,主要是有关概率假设密度(PHD)的
    • 基于python开发的全国新工商采集工具 v1.2版本
      这个软件是通过scrapy爬虫框架结合代理IP池再加上request模拟请求技术以及验证码识别技术,可以做到日更新采集全国新工商信息。采集的数据自动存储在mysql数据库表里,可下载全量1.8亿多企业工商基本信息和36维度的详细信息.支持sql和excel导出数据包格式。
    • matlab匹配滤波代码-matlab_for_thesis:Matlab博士学位论文代码
      matlab匹配滤波代码博士论文的MATLAB代码 博士论文的MATLAB代码的一部分,“井田双色散水下声通道中的多载波通信”。 函数下的func_JingTian文件夹 FUNC_JINGTIAN包含多载波通信中一些通常需要的功能: OFDM调制/解调模块,包括几种数据辅助的信道估计方法和差分解调; 快速实现GFDM和C-FBMC调制/解调,分别包括时域和频域的迫零(ZF)和匹配滤波(MF)均衡; 为OFDM信道估计中使用的压缩感测方法计算字典的功能; 增加信道效应,施加宽带多普勒失真的功能; 通过线性调频Z变换(CZT)以任意精度对频域中的信号进行重采样; Hermite函数合成的信号之间的交叉歧义函数的计算。 演示文件夹 以下列出了四个演示 demo1:使用基本追踪(BP)算法形式的压缩感知方法对OFDM进行稀疏2-D信道估计; demo2:比较基本数据辅助OFDM信道估计算法,包括常规频域插值和基于IDFT的变换域方法; demo3:圆形滤波器组多载波(C-FBMC / OQAM)的基于DFT特征向量的原型滤波器合成; demo4:用于广义频分复用(GFDM)的辅助日期辅助无干