西南财经大学python期末考试_西南财经大学“新银行杯”数据科学竞赛总结与学习笔记,Mooplab,网,小结...

本文记录了作者参加西南财经大学“新网银行杯”数据科学竞赛的过程,从安装PyCharm和配置环境开始,到学习SVM和逻辑回归模型,再到使用随机森林分类器进行预测。作者强调数据处理的重要性,并分享了代码示例,包括数据读取、转换和模型应用,最后提及将采用交叉验证方法进一步优化模型。
摘要由CSDN通过智能技术生成

Mooplab“新网银行杯”个人小结与学习笔记

一、前期准备

安装pycharm并配置环境

链接:

link

.

在pycharm中安装第三方库

1.在pycharm中安装:

File>>Other Settings>>Setting for new porjects>>Porject Interpreter 选择自己的环境,然后点右边的‘+’,搜索自己需要的包,然后下载就ok了。

2.在电脑终端安装:

有时候会出现一些异常情况,诸如下载失败、下载后依然显示没有这个库。这时候就需要在电脑终端下载:win+R>>输入cmd>>pip install +’ '(引号内为要添加的库)。

当然这里不是一定要选择pycharm作为编译环境,诸如此类的软件还有很多。

二、个人小结

比赛链接:

link

.

由于是第一次参加此类数据挖掘比赛,拿到题目看完之后并没有什么实际的想法,先是去参考了一下往届比赛获奖者的总结分析,这里是2018年“新网银行杯”第二名的总结与分享:链接:

link

.

之后像无头苍蝇一样去粗略学习了

SVM支持向量机

逻辑回归

等模型,但后来发现系统的学习这些模型的概念帮助并不大,我们这里需要的仅仅是引用一下这些模型的代码(基本只有几行代码)。

在此过程中学长提供了很多帮助,其中一个是随机生成5676个数(0或1),虽然只是一个简单的代码,但是它告诉了我们这个题需要我们提交的是什么样的答案(格式,数值…)。下面是具体代码:

import numpy as np

import pandas as pd

import random

a=[]

for i in range(1,5767):

a.append(random.randint(0,1))

a = np.array(a)

# prepare for data

data = a.reshape((5766,1))

print(data)

data_df = pd.DataFrame(data)

# change the index and column name

data_df.columns = ['target']

data_df.index = list(range(1,5767))

# create and writer pd.DataFrame to excel

writer = pd.ExcelWriter('Save_Excel.xlsx')

data_df.to_excel(writer,'page_1',float_format='%.5f') # float_format 控制精度

writer.save()

第一次开会过后,总算对思路有了一些更正确的理解,对于此类问题建模是比较简单的一个环节,具体操作为:调用pandas、numpy库读入数据,把字典型转化为矩阵,然后进行训练和预测。而之后进行的数据处理才是重中之重,并且经过实验,模型对于最终答案的影响结果不是很明显,即使是有比较好的模型,也可以在数据处理之后的环节来进行调试。下面是具体代码

import pandas as pd

import numpy as np

from sklearn.neighbors import KNeighborsClassifier

from sklearn.svm import SVC

from sklearn.linear_model import Perceptron

from sklearn.linear_model import LogisticRegression

from sklearn.tree import DecisionTreeClassifier

from sklearn.ensemble import RandomForestClassifier

# 读取数据

dfx_train = pd.read_csv(r"C:\Users\win10\Desktop\不对缺失值做处理\fx_train_nan.csv")

dfx_test = pd.read_csv(r"C:\Users\win10\Desktop\不对缺失值做处理\fx_test_nan.csv")

dfy_train = pd.read_csv(r"C:\Users\win10\Desktop\mooplab比赛数据\y_train.csv")

#print(dfx_train)

# 将数据转化为矩阵型

x_train = np.array(dfx_train)

x_test = np.array(dfx_test)

y_train = np.array(dfy_train['target'])

#下面是很多种模型

# KNN

#==================================

#knn = KNeighborsClassifier()

#knn.fit(x_train,y_train)

#y_test=knn.predict(x_test)

#print(len(y_test))

#==================================

# SVM

#==================================

#from sklearn.svm import SVC

#model = SVC(kernel='rbf', probability=True)#probability=False时,没办法调用 model.predict_proba()函数

#model.fit(x_train,y_train)

#pre = model.predict_proba(C)

#print(pre)

#y_test = model.predict(x_test)

#print(y_test)

#pnn

#from sklearn.linear_model import Perceptron

#ppn = Perceptron()

#ppn.fit(x_train, y_train)

#y_test = ppn.predict(x_test)

#==================================

# 随机森林分类

forest = RandomForestClassifier(criterion='entropy', n_estimators=10, random_state=1, n_jobs=2)

forest.fit(x_train, y_train)

y_test = forest.predict(x_test)

# 导出

#==================================

data_df = pd.DataFrame(y_test)

# change the index and column name

data_df.columns = ['target']

data_df.index = list(range(0,5767))

# create and writer pd.DataFrame to excel

writer = pd.ExcelWriter(r'C:\Users\win10\Desktop\mooplab结果\y_test.xlsx')

data_df.to_excel(writer,'page_1',float_format='%.5f') # float_format 控制精度

writer.save()

有了模型和代码之后,就进入重头戏数据分析和处理了,但是目前为止进度还是很慢,只把两个表合并了。之前对为-99的特征值进行处理之后的效果并不好,之后考虑了很多种小的变动,得分也不理想,目前准备把数据按8:2的比例分为两部分进行交叉验证,找出一些特征值。具体代码部分可以参考另一位不愿透露姓名的同学的文章,非常的详细:

链接:

link

.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值