赞
踩
python数据预处理方式
一、数据标准化
StandardScaler (基于特征矩阵的列,将属性值转换至服从正态分布)
标准化是依照特征矩阵的列处理数据,即转换为均值为0,方差为1的正态分布
将样本的特征值转换到同一量纲下
常用与基于正态分布的算法,比如回归
- from sklearn.ensemble import RandomForestClassifier
- from sklearn.preprocessing import StandardScaler
- import pandas as pd
-
- data = [[0, 0, 2], [0, 0, 1], [1, 3, 1], [1, 2, 1]]
- scaler = StandardScaler()
- train_data = pd.DataFrame(data=scaler.fit_transform(data), columns=["a", "b", "c"]) # 转化DataFrame数据类型,用于模型训练
- model = RandomForestClassifier(max_depth=3, n_estimators=10) # 随机森林的构造
- model.fit(train_data, [1, 2, 1, 2]) # 传入训练数据与模拟标签数据
- print(model.predict([[1, 2, 3], [2, -1, 1]])) # 传入测试数据,支持传递DataFrame类型也支持传递二维数组
二、数据归一化
MinMaxScaler (区间缩放,基于最大最小值,将数据转换到0,1区间上的)
提升模型收敛速度,提升模型精度
常见用于神经网络
- from sklearn.preprocessing import MinMaxScaler
- import pandas as pd
-
- data = [[1, 2, 10], [3, 2, 7], [5, 6, 4, ], [7, 8, 1]]
- scaler = MinMaxScaler(feature_range=(0, 1), copy=True) # feature_range 手动指定范围为0到1之间
- train_data = pd.DataFrame(data=scaler.fit_transform(data), columns=["a", "b", "c"]) # 转化DataFrame数据类型,用于模型训练
1.随机森林
- import pandas as pd
- from sklearn.ensemble import RandomForestClassifier
- data_values = pd.DataFrame(data=[[1, 2], [2, 3], [3, 4]], columns=["k1", "k2"]) # data表示数据, columns表示列字段名称
- model = RandomForestClassifier(max_depth=3, n_estimators=10) # max_depth 树的最大深度,n_estimators 树的数量
- model.fit(data_values, pd.Series(data=[0, 1, 1]))
- predict = model.predict([[1, 2], [2, 3]])
- print(predict)
2.决策树
- import pandas as pd
- from sklearn.tree import DecisionTreeClassifier
-
- model = DecisionTreeClassifier() # 随机森林
- data_values = pd.DataFrame(data=[[1, 2, 3, 0], [1, 4, 2, 1]], columns=["a", "b", "c", "label"]) # 构造模拟数据
- train_label_data = data_values["label"] # 获取标签列
- train_feature_data = data_values.drop(["label"], axis=1) # 删除标签列
- model.fit(train_feature_data, train_label_data) # 开始训练
- test_data = pd.DataFrame(data=[[1, 2, 3], [1, 4, 2]]) # 使用模型
- print(model.predict(test_data)) #使用模型检测数据
3.逻辑回归
- from sklearn.linear_model import LogisticRegression
- model = LogisticRegression() #定义模型对象,使用模型参考之前的步骤
4.SVM支持向量机
- from sklearn import svm
- model = svm.SVC()
5.python服务封装
- from flask import Flask, request, jsonify
- app = Flask(__name__)
-
- if __name__ == '__main__':
- app.config['JSON_AS_ASCII'] = False # 设置中文响应格式不乱码
- app.run(host="0.0.0.0", port=5000)
-
- def format_request():
- """
- 格式化请求参数
- :return: 将参数以key和value的形式返回
- """
- param = {}
- for k, v in request.args.items():
- param[k] = eval(v)
- data = request.get_data()
- if data != b'':
- for k, v in json.loads(data.decode('utf-8')).items():
- param[k] = v
- return param
-
- @app.route('/test', methods=['POST', 'GET'])
- def test():
- """
- 测试入口
- :return:
- """
- param = format_request()
- logger.info(param)
- response = {}
- for k, v in param.items():
- response[k] = v
- return jsonify(response)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。