python随身笔记

笔记

    • 类中添加静态方法
    • 机器学习——决策树
        • 工程优化
        • 集合算法
        • 正向激励
      • 随机深林预测
    • 常用Python函数
    • keras 笔记
    • Python3.7 和 3.6 使用pandas的问题
    • Python装饰器、metaclass、abc模块学习笔记
      • SQL
    • psycopg2 查询列表名
  • 处理xml文件
    • [python 程序打包](https://www.cnblogs.com/valorchang/p/11357358.html).
  • 大数据处理
      • 数据分块读取
    • 队列
    • linux命令后台执行python脚本
    • python 查看进程ID 并 Kill
    • python GET IP
    • 安装anaconda后,在ipython里导入某些模块的时候报错

https://blog.csdn.net/chenzhanhai/article/details/85334919?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

Measurement report 测量报告
Systemln for ma tion 计算系统
connectivity request MSQ 连接请求MSQ
UL nformation Transfer UL信息传输
RRC connection Reconfiguration RRC连接重新配置
activate default 激活默认
bearer context request MSQ 承载上下文请求MSQ
bearer context accept MSQ   承载上下文接受MSQ
register informal response 注册非正式的响应
register unauthorized 未经授权的注册
authentication request  身份验证请求
capability enquiry 功能查询
capability information 
 能力的信息

类中添加静态方法

	# @staticmethod 在类中添加静态方法
	class Pizza(object):
	    def __init__(self):
	        self.cheese = 10
	        self.vegetables = 30
	    @staticmethod
	    def mix_ingredients(x, y):
	        return x + y
	    def cook(self):
	        return self.mix_ingredients(self.cheese, self.vegetables)

机器学习——决策树

import sklearn.tree as st
# 创建决策树回归器模型  决策树的最大深度为4
model = st.DecisionTreeRegressor(max_depth=4)
model.fit(train_x, train_y)  # 训练模型  
pred_test_y = model.predict(test_x)  # 测试模型

案例:预测波士顿地区房屋价格

1、读取数据,打断原始数据集。 划分训练集和测试集。

import sklearn.datasets as sd
import sklearn.utils as su
import sklearn.tree as st
import sklearn.metrics as sm

# 加载波士顿地区房价数据集
boston = sd.load_boston()
print(boston.data.shape)  # (506, 13)
print(boston.data[0])  # [6.320e-03 1.800e+01 ... 1.530e+01 3.969e+02 4.980e+00]
print(boston.target.shape)  # (506,)
print(boston.target[0])  # 24.0

print(boston.feature_names)
# |CRIM|ZN|INDUS|CHAS|NOX|RM|AGE|DIS|RAD|TAX|PTRATIO|B|LSTAT|
# 犯罪率|住宅用地比例|商业用地比例|是否靠河|空气质量|房间数|年限|距中心区距离|路网密度|房产税|师生比|黑人比例|低地位人口比例|

# 打乱原始数据集的输入和输出
x, y = su.shuffle(boston.data, boston.target, random_state=7)
# 划分训练集与测试集
train_size = int(len(x) * 0.8)
train_x, test_x, train_y, test_y = x[:train_size], x[train_size:], y[:train_size], y[train_size:]

# 构建决策树模型, 训练模型
model = st.DecisionTreeRegressor(max_depth=4)
model.fit(train_x, train_y)
# 预测
pred_test_y = model.predict(test_x)
print(sm.r2_score(test_y, pred_test_y))     # 0.8202560889408635

工程优化

不必用尽所有的特征,叶级子表中允许混杂不同的特征值,以此降低决策树的层数,在精度牺牲可接受的前提下,提高模型的性能。通常情况下,可以优先选择使信息熵减少量最大的特征作为划分子表的依据。

集合算法

根据多个不同模型给出的预测结果,利用平均(回归)或者投票(分类)的方法,得出最终预测结果。

基于决策树的集合算法,就是按照某种规则,构建多棵彼此不同的决策树模型,分别给出针对未知样本的预测结果,最后通过平均或投票得到相对综合的结论。

正向激励

首先为样本矩阵中的样本随机分配初始权重,由此构建一棵带有权重的决策树,在由该决策树提供预测输出时,通过加权平均或者加权投票的方式产生预测值。将训练样本代入模型,预测其输出,对那些预测值与实际值不同的样本,提高其权重,由此形成第二棵决策树。重复以上过程,构建出不同权重的若干棵决策树。

正向激励相关API:

import sklearn.tree as st
import sklearn.ensemble as se
# model: 决策树模型(一颗)
model = st.DecisionTreeRegressor(max_depth=4)
# 自适应增强决策树回归模型  
# n_estimators:构建400棵不同权重的决策树,训练模型
model = se.AdaBoostRegressor(model, n_estimators=400, random_state=7)
model.fit(train_x, train_y)
pred_test_y = model.predict(test_x)

链接: 原创链接:https://www.cnblogs.com/LXP-Never/p/11426627.html

随机深林预测

优缺点分析

就像我之前提到的那样,随机森林的一个优点是它可以用于回归和分类任务,并且很容易查看模型的输入特征的相对重要性。

随机森林同时也被认为是一种非常方便且易于使用的算法,因为它是默认的超参数通常会产生一个很好的预测结果。超参数的数量也不是那么多,而且它们所代表的含义直观易懂。

机器学习中的一个重大问题是过拟合,但大多数情况下这对于随机森林分类器而言不会那么容易出现。因为只要森林中有足够多的树,分类器就不会过度拟合模型。

随机森林的主要限制在于使用大量的树会使算法变得很慢,并且无法做到实时预测。一般而言,这些算法训练速度很快,预测十分缓慢。越准确的预测需要越多的树,这将导致模型越慢。在大多数现实世界的应用中,随机森林算法已经足够快,但肯定会遇到实时性要求很高的情况,那就只能首选其他方法。

当然,随机森林是一种预测性建模工具,而不是一种描述性工具。也就是说,如果您正在寻找关于数据中关系的描述,那建议首选其他方法。

常用Python函数

enumerate :函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中
	enumerate(sequence, [start=0])
	参数
	sequence -- 一个序列、迭代器或其他支持迭代对象。
	start -- 下标起始位置。.

keras 笔记

Python3.7 和 3.6 使用pandas的问题

注意:使用pandas 定位表格元素会有偏差

Python装饰器、metaclass、abc模块学习笔记

在Python 2.x

import six
Meta = "SUN"
class MyClass(object):
    __metaclass__ = Meta
    pass
M = MyClass()
M.__metaclass__
#'SUN'

SQL

ALTER TABLE Persons ADD DateOfBirth date #Persons表中添加DateOfBirth列	
alter table b modify `user_id` int(10) DEFAULT NULL; #修改user_id数据类型。
ALTER TABLE Persons DROP COLUMN DateOfBirth # Persons表中删除DateOfBirth列

下面在index17表中的name和address字段上建立名为index17_na的多列索引。SQL代码如下:
ALTER  TABLE  index17  ADD  INDEX  index17_na( name, address ) ; 
该索引创建好了以后,查询条件中必须有name字段才能使用索引。

psycopg2 查询列表名

conn = psycopg2.connect(database = ‘’, user = ‘’, password = ‘’, host = ‘’, port = ‘’)
cursor = conn.cursor()
cursor.execute(“Select * FROM cnopqa_cq_alps_copqa5”)
colnames = [desc[0] for desc in cursor.description]
colnames

处理xml文件

链接: 处理xml文件https://www.cnblogs.com/apple2016/p/6207962.html.

		import re
	    import xml.etree.ElementTree as ET
	    tree = ET.parse(word_file_path)
	    # 取出最外层的所有节点
	    p = tree.findall('./Info')
	    # 遍历每一个节点中的所有元素属性
	     for i in p:
        if i.attrib["suffix"] == "Failed " or i.attrib["suffix"] == "Pass ":
        info_i = i.attrib["Description"]
        Result = "Invalid"
         Mean = ""
         Criteria = ""
         # 获取所有 时间 和 日期 最后取出 开始时间 和 结束时间
         list1 = []
         list2 = []

python 程序打包.

大数据处理

数据分块读取

import pandas as pd
file = r'E:\py3\test.txt'
data = pd.read_table(file, iterator=True,)
loop =True
dflst = []
i = 0
while loop:
    try:
        i+=1
        df0 = data.get_chunk(5)
        print(df0)
        dflst.append(df0)
    except StopIteration:
        loop = False
#        print 'stop'
df = pd.concat(dflst,ignore_index =True,)

队列

import queue
from queue import Queue
q = queue.Queue(5)
if not q.full(): # 判断是否为空
    q.put((2, '2'))
    q.put((2, '2'))
    q.put((2, '2'))
    q.put((2, '2'))
    q.put((2, '2'))
    print(111)
if not q.empty():# 判断是否为空
    print(q.get())
# 判断数量
q.qsize()

linux命令后台执行python脚本

		nohup python xxx.py > nohup.log 2>&1 &
		
		程序将于后台运行。

python 查看进程ID 并 Kill

import psutil
import os
import signal
print("----------------------------- show all processes info --------------------------------")
# show processes info
pids = psutil.pids()
for pid in pids:
    p = psutil.Process(pid)
    # get process name according to pid
    process_name = p.name()
    print("Process name is: %s, pid is: %s" %(process_name, pid))
 
print("----------------------------- kill specific process --------------------------------")
pids = psutil.pids()
for pid in pids:
    p = psutil.Process(pid)
    # get process name according to pid
    process_name = p.name()
    print(process_name)
    # p = psutil.Process(pid)
cmd = 'taskkill /F /IM ' + "5760"
os.system(cmd)

python GET IP


	import socket
	def get_host_ip():
	    try:
	        s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
	        s.connect(('8.8.8.8', 80))
	        ip = s.getsockname()[0]
	    finally:
	        s.close()
	 
	    return ip

安装anaconda后,在ipython里导入某些模块的时候报错

解决方法:

先配置三个环境变量,缺一不可
在window 添加task任务,使用环境变量
本人完成添加三个环境变量就可以

**D:\Anaconda3

D:\Anaconda3\Scripts

D:\Anaconda3\Library\bin**

将D:\Anaconda3\Library\bin下

libcrypto-1_1-x64.dll

libssl-1_1-x64.dll

以上两个文件复制到

D:\Anaconda3\DLLs

你可能感兴趣的:(python)