肝了半天再加一个晚上。。
之前学了一小段时间的TensorFlow,但是今天练习赛时发现根本没啥用。。。第一阶段早就做完了,今天做的都是第二阶段,都是啥玩意题

又是偏度,又是求系数,又是拟合KNN,真的把人看吐了,基本上都是现学现用,查阅了半天资料,翻了无数遍csdn才有些头绪
结构化数据的题应该做出八道(做出八道才可以开启第三阶段)
其中有四个题是蒙出来的。。。因为这四个题基本上输出就是0或1,虽然有提交次数,但还是顽强的试出来了。。。
做出四个1,2,3,5
求偏度和boxcox1p变化都是有固定函数的,直接套用即可
偏度:skew()
第二题:计算体重的偏度
import scipy.stats as st import pandas as pd pd.options.display.max_columns =
None pd.options.display.max_rows = None path1 =
"/home/kesci/input/liver_df9751/结构化数据训练营.csv" # chipotle.tsv df = pd.read_csv(
path1) df.head(30) aveTime = df['Weight\n体重'].median() chipo['Weight\n体重'].
nunique() df2 = df.fillna(aveTime) col = df2.iloc[:, 3] arrs = col.values ##
print(arrs) w=st.skew(arrs) # 计算偏度 ## 0.7565543738808015 print('%.4f'%w)
boxcox1p变换:boxcox1p()
用boxcox1p对体重做变换,lambda=0.1,变化后的数据的偏度是多少?
import scipy.stats as st import pandas as pd from scipy.special import
boxcox1p pd.options.display.max_columns = None pd.options.display.max_rows =
None path1= "/home/kesci/input/liver_df9751/结构化数据训练营.csv" # chipotle.tsv df = pd
.read_csv(path1) aveTime = df['Weight\n体重'].median() wt = df['Weight\n体重'].
fillna(aveTime) lam=0.1 wt = boxcox1p(wt, lam) w=st.skew(wt.values) # 计算偏度 ##
0.7565543738808015 print('%.4f'%w)
第五题我真的要好好说说,真的绝了,线上题:
用上题同样的数据拟合KNN(K=5),分类结果和真实结果不一致的有多少个?
上题同样的数据指的是:只选取年龄、体重和 ALF(缺失值用中位数填充,不做任何额外处理)

我一遍一遍的翻资料,看了无数个KNN的文章,重要在一个文章找到KNN的用法,KNN也是有函数的KNeighborsClassifier(n_neighbors=5),里面的n_neighbors也就是题目中的K

我们得到了分类结果,但是并不够,真实结果是什么?我们一直没想明白,因为我们把所有数据都作为训练集来训练KNN,就是KNN的生成是需要数据的,然后还需要数据来测试,但是题目只给了一套数据,后来我在想会不会是自身生成的KNN来检测自身?也就是用训练集生成的分类结果来检验自身的分类结果
于是我和同学输出了分类结果和原数据自身的结果,发现不相等,差值即为答案
import scipy.stats as st import pandas as pd import regex as re pd.options.
display.max_columns = None pd.options.display.max_rows = None path1 =
"/home/kesci/input/liver_df9751/结构化数据训练营.csv" # chipotle.tsv #
path2="/home/kesci/inputver_df9751/结构化数据训练营测试集.csv" data = pd.read_csv(path1) #
data_test=pd.read_csv(path1) col_names=list(data.columns) col=[] for i in range(
len(col_names)): if re.findall(r"\u2028(.+)",col_names[i])!=[]: col.append(re.
findall(r"\u2028(.+)",col_names[i])[0]) elif re.findall(r"\n(.+)",col_names[i])
!=[]: col.append(re.findall(r"\n(.+)",col_names[i])[0]) else: col.append(
col_names[i]) ## 修改dataframe列名 data.columns=col feature1 = ['体重','年龄','ALF'] for
i in feature1: ave=data[i].median() data[i] = data[i].fillna(ave) print(data[i]
.values) a_zi=[] for i in range(len(data)): c=[data['体重'][i],data['年龄'][i]] a_zi
.append(c) from sklearn.neighbors import KNeighborsClassifier neigh =
KNeighborsClassifier(n_neighbors=5) neigh.fit(a_zi, data['ALF']) cnt=0 for i in
range(len(a_zi)): if(neigh.predict([a_zi[i]])==data['ALF'][i]): cnt+=1 print(len
(a_zi),cnt,len(a_zi)-cnt)
真的是绝了绝了。。。
明天继续肝

技术
©2019-2020 Toolsou All rights reserved,
Vue.js入门(五)---在vue中使用echarts词云Pandas统计分析基础_数据处理(DataFrame常用操作)element UI dialog点击dialog区域外会关闭dialog应届毕业生看过来!Java面试经典77问,看完离工作就不远了关于蓝桥杯大赛,你应该了解的那些事!mysql 分区-key分区(五)海康威视-嵌入式软件笔试题PHP Redis 监听过期的 key 事件C语言循环语句笔记详解以及练习-折半查找算法、猜数字游戏JVM概述