基于SVM进行排序实验-相关函数笔记
解读源代码博客-https://github.com/chunyanyin11/SVMraninking/blob/master/code SVM_copd.ipynb
- python3的urlretrieve使用方法
urllib模块提供的urlretrieve()函数。urlretrieve()方法直接将远程数据下载到本地。
urlretrieve(url, filename=None, reporthook=None, data=None)
参数介绍:
参数filename指定了保存本地路径(如果参数未指定,urllib会生成一个临时文件保存数据。)参数reporthook是一个回调函数,当连接上服务器、以及相应的数据块传输完毕时会触发该回调,我们可以利用这个回调函数来显示当前的下载进度。
参数data指post导服务器的数据,该方法返回一个包含两个元素的(filename, headers) 元组,filename 表示保存到本地的路径,header表示服务器的响应头
urlopen()可以轻松获取远端html页面信息,然后通过Python正则对所需要的数据进行分析,匹配出想要用的数据,再利用urlretrieve()将数据下载到本地。对于访问受限或者对连接数有限制的远程url地址可以采用proxies(代理的方式)连接,如果远程连接数据量过大,单线程下载太慢的话可以采用多线程下载,这个就是传说中的爬虫
本部分来自 fengzhizi76506 的优快云 博客 ,全文地址请点击:https://blog.youkuaiyun.com/fengzhizi76506/article/details/59229846?utm_source=copy
-
Python os.chdir() 方法
os.chdir() 方法用于改变当前工作目录到指定的路径。
chdir()方法语法格式如下:
os.chdir(path)
参数
path – 要切换到的新路径。
返回值
如果允许访问返回 True , 否则返回False。查看当前工作目录
retval = os.getcwd()
print “当前工作目录为 %s” % retval -
Python 字典(Dictionary) values()方与 keys()方法
Python 字典(Dictionary) values() 函数以列表返回字典中的所有值。
values()方法语法:
dict.values()Python 字典(Dictionary) keys() 函数以列表返回一个字典所有的键。
keys()方法语法:
dict.keys() -
Python-Pandas 如何shuffle(打乱)数据
在Python里面,使用Pandas里面的DataFrame来存放数据的时候想要把数据集进行shuffle会许多的方法,本文介绍两种比较常用而且简单的方法。
实现方法:
最简单的方法就是采用pandas中自带的 sample这个方法。
假设df是这个DataFrame
df.sample(frac=1)
这样对可以对df进行shuffle。其中参数frac是要返回的比例,比如df中有10行数据,我只想返回其中的30%,那么frac=0.3。有时候,我们可能需要打混后数据集的index(索引)还是按照正常的排序。我们只需要这样操作
df.sample(frac=1).reset_index(drop=True)
本文来自 kingsam_ 的优快云 博客 ,全文地址请点击:https://blog.youkuaiyun.com/qq_22238533/article/details/70917102?utm_source=copy -
python选取特定列——pandas的iloc和loc以及icol使用(列切片及行切片)
一、选取标签为A和C的列,并且选完类型还是dataframe
df = df.loc[:, [‘A’, ‘C’]]
df = df.iloc[:, [0, 2]]
二、选取标签为A和C并且只取前两行,选完类型还是dataframe
df = df.loc[0:2, [‘A’, ‘C’]]
df = df.iloc[0:2, [0, 2]]
聪明的朋友已经看出iloc和loc的不同了:loc是根据dataframe的具体标签选取列,而iloc是根据标签所在的位置,从0开始计数。
",“前面的”:"表示选取整列,第二个示例中的的0:2表示选取第0行到第二行,这里的0:2相当于[0,2)前闭后开,2是不在范围之内的。
需要注意的是,如果是df = df.loc[0:2, [‘A’, ‘C’]]
或者df = df.loc[0:2, [‘A’, ‘C’]],切片之后类型依旧是dataframe,不能直接进行加减乘除等操作的。
比如dataframe的一列是数学成绩(shuxue),另一列为语文成绩(yuwen),现在需要求两门课程的总和。可以使用df[‘shuxue’] + df[‘yuwen’](选取完之后类型为series)来获得总分,而不能使用df.iloc[:,[2]]+df.iloc[:,[1]]或df.iloc[:,[‘shuxue’]]+df.iloc[:,[‘yuwen’]],这会产生错误结果
还有一种方式是使用df.icol(i)来选取列,选取完的也不是dataframe而是series,i为该列所在的位置,从0开始计数。如果你想要选取某一行的数据,可以使用df.loc[[i]]或者df.iloc[[i]]。
本文来自 chenKFKevin 的优快云 博客 ,全文地址请点击:https://blog.youkuaiyun.com/chenKFKevin/article/details/62049060?utm_source=copy
-
pandas映射,replace和map
replace
df[‘消费性别倾向’] = df[‘消费性别倾向’].replace(2,‘女’)
传入表示映射关系的字典作为参数
food = {’<=100’:‘1’,‘100-500’:‘2’,‘500-1000’:‘3’,‘1000-3000’:‘4’,’>3000’:‘5’}
df[‘工作日消费指数’] = df[‘工作日消费金额’].replace(food)
map
food = {’<=100’:‘1’,‘100-500’:‘2’,‘500-1000’:‘3’,‘1000-3000’:‘4’,’>3000’:‘5’}
df[‘工作日消费指数’] = df[‘工作日消费金额’].map(food)本文来自 SherryGo 的优快云 博客 ,全文地址请点击:https://blog.youkuaiyun.com/xueruixuan/article/details/80237481?utm_source=copy
-
y_lin_weight = svr_lin.fit(x_train, y_train, sample_weight=weights).predict(x_train)
sample_weight=weights:为样本设定权重,解决样本不平衡问题
y_lin = svr_lin.fit(x_train, y_train).predict(x_train):未设定权重的表达方式 -
sklearn 中 Logistics Regression 的 coef_ 和 intercept_ 的具体意义
coef_应该是一次项系数,而intercept_应该是截距
https://blog.youkuaiyun.com/u010099080/article/details/52933430
In [606]: svr_lin.coef_.shape
Out[606]:(1, 647)
In [607]:svr_lin.coef_#查看每个特征的权重系数 -
[Matplotlib] subplot相关博客 https://bookdata.readthedocs.io/en/latest/beginning/04_matplotlib.html
-
Python3 range() 函数用法
Python3 内置函数
Python3 range() 函数返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打印列表。
Python3 list() 函数是对象迭代器,可以把range()返回的可迭代对象转为一个列表,返回的变量类型为列表。
Python2 range() 函数返回的是列表。
函数语法
range(stop)
range(start, stop[, step])
参数说明:
start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
实例
>>>range(5)
range(0, 5)
>>> for i in range(5):
... print(i)
...
0
1
2
3
4
>>> list(range(5))
[0, 1, 2, 3, 4]
>>> list(range(0))
[]
-
Y.shape[0] The shape attribute for numpy arrays returns the dimensions of the array. If Y has n rows and m columns, then Y.shape is (n,m). So Y.shape[0] is n.Y.shape[1] is m.
-
Numpy库学习—squeeze()函数
语法:numpy.squeeze(a,axis = None)
1)a表示输入的数组;
2)axis用于指定需要删除的维度,但是指定的维度必须为单维度,否则将会报错;
3)axis的取值可为None 或 int 或 tuple of ints, 可选。若axis为空,则删除所有单维度的条目;
4)返回值:数组
5 ) 不会修改原数组;作用:从数组的形状中删除单维度条目,即把shape中为1的维度去掉 引用:https://docs.scipy.org/doc/numpy/reference/generated/numpy.squeeze.html 场景:在机器学习和深度学习中,通常算法的结果是可以表示向量的数组(即包含两对或以上的方括号形式[[]]),如果直接利用这个数组进行画图可能显示界面为空(见后面的示例)。我们可以利用squeeze()函数将表示向量的数组转换为秩为1的数组,这样利用matplotlib库函数画图时,就可以正常的显示结果了。
-
level3 = svr_lin.support_vectors_[2]
获得支持向量点,参考博客https://www.jianshu.com/p/4a386424fa5b获得支持向量点,参考博客https://www.jianshu.com/p/4a386424fa5b -
基于matplotlib画图讲解较好的博客:https://www.jianshu.com/p/78ba36dddad8 强烈推荐
5. 未读懂部分
In [612]:
import numpy as np
l3id = pd.DataFrame(list(zip(data.keys()[2:],level3,
svr_lin.coef_.squeeze())),
columns = ["chem", "SVC3", "SVC_coeff"]
)
In [614]:
l3id[l3id["SVC_coeff"]>0].sort_values(by="SVC3", ascending=False)