当前位置:   article > 正文

python 常用机器学习算法demo_python机器学习demo

python机器学习demo

python数据预处理方式

一、数据标准化
StandardScaler (基于特征矩阵的列,将属性值转换至服从正态分布)
标准化是依照特征矩阵的列处理数据,即转换为均值为0,方差为1的正态分布
将样本的特征值转换到同一量纲下
常用与基于正态分布的算法,比如回归

  1. from sklearn.ensemble import RandomForestClassifier
  2. from sklearn.preprocessing import StandardScaler
  3. import pandas as pd
  4. data = [[0, 0, 2], [0, 0, 1], [1, 3, 1], [1, 2, 1]]
  5. scaler = StandardScaler()
  6. train_data = pd.DataFrame(data=scaler.fit_transform(data), columns=["a", "b", "c"]) # 转化DataFrame数据类型,用于模型训练
  7. model = RandomForestClassifier(max_depth=3, n_estimators=10) # 随机森林的构造
  8. model.fit(train_data, [1, 2, 1, 2]) # 传入训练数据与模拟标签数据
  9. print(model.predict([[1, 2, 3], [2, -1, 1]])) # 传入测试数据,支持传递DataFrame类型也支持传递二维数组

 

二、数据归一化
MinMaxScaler (区间缩放,基于最大最小值,将数据转换到0,1区间上的)
提升模型收敛速度,提升模型精度
常见用于神经网络
 

  1. from sklearn.preprocessing import MinMaxScaler
  2. import pandas as pd
  3. data = [[1, 2, 10], [3, 2, 7], [5, 6, 4, ], [7, 8, 1]]
  4. scaler = MinMaxScaler(feature_range=(0, 1), copy=True) # feature_range 手动指定范围为0到1之间
  5. train_data = pd.DataFrame(data=scaler.fit_transform(data), columns=["a", "b", "c"]) # 转化DataFrame数据类型,用于模型训练

 

 

1.随机森林

  1. import pandas as pd
  2. from sklearn.ensemble import RandomForestClassifier
  3. data_values = pd.DataFrame(data=[[1, 2], [2, 3], [3, 4]], columns=["k1", "k2"]) # data表示数据, columns表示列字段名称
  4. model = RandomForestClassifier(max_depth=3, n_estimators=10) # max_depth 树的最大深度,n_estimators 树的数量
  5. model.fit(data_values, pd.Series(data=[0, 1, 1]))
  6. predict = model.predict([[1, 2], [2, 3]])
  7. print(predict)

 

2.决策树

  1. import pandas as pd
  2. from sklearn.tree import DecisionTreeClassifier
  3. model = DecisionTreeClassifier() # 随机森林
  4. data_values = pd.DataFrame(data=[[1, 2, 3, 0], [1, 4, 2, 1]], columns=["a", "b", "c", "label"]) # 构造模拟数据
  5. train_label_data = data_values["label"] # 获取标签列
  6. train_feature_data = data_values.drop(["label"], axis=1) # 删除标签列
  7. model.fit(train_feature_data, train_label_data) # 开始训练
  8. test_data = pd.DataFrame(data=[[1, 2, 3], [1, 4, 2]]) # 使用模型
  9. print(model.predict(test_data)) #使用模型检测数据

3.逻辑回归

  1. from sklearn.linear_model import LogisticRegression
  2. model = LogisticRegression() #定义模型对象,使用模型参考之前的步骤

4.SVM支持向量机

  1. from sklearn import svm
  2. model = svm.SVC()

 

5.python服务封装

  1. from flask import Flask, request, jsonify
  2. app = Flask(__name__)
  3. if __name__ == '__main__':
  4. app.config['JSON_AS_ASCII'] = False # 设置中文响应格式不乱码
  5. app.run(host="0.0.0.0", port=5000)
  6. def format_request():
  7. """
  8. 格式化请求参数
  9. :return: 将参数以key和value的形式返回
  10. """
  11. param = {}
  12. for k, v in request.args.items():
  13. param[k] = eval(v)
  14. data = request.get_data()
  15. if data != b'':
  16. for k, v in json.loads(data.decode('utf-8')).items():
  17. param[k] = v
  18. return param
  19. @app.route('/test', methods=['POST', 'GET'])
  20. def test():
  21. """
  22. 测试入口
  23. :return:
  24. """
  25. param = format_request()
  26. logger.info(param)
  27. response = {}
  28. for k, v in param.items():
  29. response[k] = v
  30. return jsonify(response)

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/955459
推荐阅读
相关标签
  

闽ICP备14008679号