机器学习相关问题与资源下载。

版权声明:转载请标注出处与作者,写文不易,相互尊重从小事做起。 https://blog.csdn.net/JasonRaySHD/article/details/82940771

资源分享:

1、po一篇免费的停用字下载:
https://blog.csdn.net/u010533386/article/details/51458591
复制以后,粘贴保存到txt文件。然后利用python读取该txt文件时注意使用语句:

stpwrdlst = open(stopword_path).read().replace('\n', ' ').split()

来调整格式,否则程序会出现警告:

UserWarning: Your stop_words may be inconsistent with your preprocessing. Tokenizing the stop words generated tokens [·····] not in stop_words. sorted(inconsistent))

博客笔记:

一、机器学习相关:
1、关于矩阵求协方差详细讲解
http://www.elecfans.com/dianzichangshi/20171205594693.html
2、马氏距离与欧氏距离讲解:
https://blog.csdn.net/sinat_27652257/article/details/80483325
3、关于读取的文件永久转化为对象,方便下次读取讲解:
https://blog.csdn.net/lanqiu5ge/article/details/25136909


二、python语法相关:
1、关于multiply()、dot()、*三者应用于数组与矩阵的区别,虽然排版我觉得别扭,内容倒是写的挺清楚明白:
https://blog.csdn.net/orangefly0214/article/details/80262164
2、pickle模块讲解:
https://blog.csdn.net/dcrmg/article/details/78180692
3、.readline() .readlines() .read() .write() .writeline() 区别
.readline() 配合for使用,对文件内容逐行读取,而不是一次性将文件存入内存中,速度很慢,通常只在内存不足的情况下使用。
.readlines() 配合for使用,对文件内容一次性读取结束后,逐行输出。
.read() 返回文件的所有文本内容
.writeline() 写入文件结束后,在文件最后输入换行符,下次再输入时从新行开始
.write() 写入文件结束后,不在文件最后输入换行符,下次输入从上次结束位置继续。
4、python3 中的dist类型数据的.items()方法,替换了原来python2中的items()与iteritems()。
5、zip()函数用法:(通过实际例子深化理解)

p = {'art':'2', 'math':'3', 'eng':'5'}
a = ones([3, 2])  
print(zip(a,p))   
print(zip(a))   
print(list(zip(a, p)))   
print(list(zip(a))) 

输出结果分别是:

<zip object at 0x00000195C2D55D88>
<zip object at 0x00000195C227AD08>
[(array([1., 1.]),), (array([1., 1.]),), (array([1., 1.]),)]
[(array([1., 1.]), 'art'), (array([1., 1.]), 'math'), (array([1., 1.]), 'eng')]

6、显示自己程序的运行时间:
datetime.datetime.now() 即将在python3.8废弃,推荐使用time.perf_counter(),使用方法相同
具体说明:
调用一次perf_counter(),从计算机系统里随机选一个时间点A,计算其距离当前时间点B1有多少秒。当第二次调用该函数时,默认从第一次调用的时间点A算起,距离当前时间点B2有多少秒。两个函数取差,即实现从时间点B1到B2的计时功能。

然后自己出于好(zhuang)奇(bi)心理,去学习了一下如何展示程序运行的进度条。
https://blog.csdn.net/Bolong_/article/details/79764664
对了,上面那句话也是截取自这篇博客。
这篇比较全:
https://blog.csdn.net/btujack/article/details/79321278

优化:
使用python提供的用于显示进度条的module: tqdm

错误笔记:

1、执行如下代码:

import numpy
from numpy import *
import matplotlib.pyplot as plt
dataset = [[-0.017612,14.053064],[-1.395634,4.662541],[-0.752157,6.538620],[-1.322371,7.152853],
           [0.423363,11.054677],[0.406704,7.067335],[0.667394,12.741452],[-2.460150,6.866805],
           [0.569411,9.548755],[-0.026632,10.427743],[0.850433,6.920334],[1.347183,13.175500],
           [1.176813,3.167020],[-1.781871,9.097953]]
dataMat = mat(dataset).T
plt.scatter(dataMat[0], dataMat[1], c='red', marker='o')
X = numpy.linspace(-2, 2, 100)
Y = 2.8*X+9
plt.plot(X, Y)
plt.show()

报错:ValueError: Masked arrays must be 1-D
解决方法:
将语句:plt.scatter(dataMat[0], dataMat[1], c=‘red’, marker=‘o’)
改为:plt.scatter(dataMat[0].tolist(), dataMat[1].tolist(), c='red', marker='o')

详见博客:https://blog.csdn.net/grinandbearit/article/details/78944738

猜你喜欢

转载自blog.csdn.net/JasonRaySHD/article/details/82940771