机器学习入门

 (注:无基础可快速入门,想提高准确率还得多下功夫,文中各名词不做过多解释)

Python语言、pandas包、sklearn包   建议在Jupyter环境操作

操作步骤

1.pandas包加载给机器学习训练的表格

  依照机器学习领域的习惯,我们把特征叫做X,目标叫做y,通常一列数据最后一列作为目标列

2.映射数据列为整型(Python做决策树需要整型或者实数)

3.拆分训练集、测试集

4.sklearn创建训练模型、测试模型准确率等

5.预测结果导出

算法

1.PCA算法
2.LDA算法
3.线性回归
4.逻辑回归
5.朴素贝叶斯
6.决策树
7.SVM
8.神经网络
9.KNN算法

import pandas as pd
import matplotlib.pyplot as plt
X = pd.read_csv('x_train.csv') X = X.drop('target', axis=1)
y = df.target #print(X.shape,y.head(10),y.shape,y.head(10)) #处理转换为整型(存在优化空间)
from sklearn.preprocessing import LabelEncoder
from collections import defaultdict
d = defaultdict(LabelEncoder)
X_train = X.apply(lambda x: d[x.name].fit_transform(x)) #X_train.tail(10) #拆分训练集、测试集
from sklearn.cross_validation import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X_train, y,test_size=0.25, random_state=7)
#print(X_train.shape, X_test.shape, y_train.shape, y_test.shape) #决策树
from sklearn import tree
clf = tree.DecisionTreeClassifier(max_depth=3)
clf = clf.fit(X_train, y_train) #acc正确率
from sklearn.metrics import accuracy_score
print(accuracy_score(y_test, clf.predict(X_test))) #F1 score
#from sklearn import metrics
#predict_labels = clf.predict(X_test)
#F1_scores = metrics.f1_score(y_test, predict_labels, pos_label=0)
#print(F1_scores) #预测
X_pred = pd.read_csv('x_test') dx = defaultdict(LabelEncoder)
X_pred = X_pred.apply(lambda x: dx[x.name].fit_transform(x)) pred_list = clf.predict(X_pred)
pred_proba_list = clf.predict_proba(X_pred)
print(pred_list)
print(pred_proba_list)
print(type(pred_list),type(pred_proba_list)) tag_list =pred_list.tolist()
proba_list = []
for i in pred_proba_list.tolist():
proba_list.append(i[1]) X_pred["Proba"] = proba_list
X_pred["Tag"] = tag_list X_pred.head(10)
X_pred.to_csv('./predict.csv',index=False,encoding='utf-8') #from sklearn.svm import SVC
## 模型训练
#clf = SVC(kernel='linear')
#clf.fit(X_train, y_train)
## 模型存储
#joblib.dump(clf, './model/svm_mode.pkl')
#

Python sklearn拆分训练集、测试集及预测导出评分 决策树的更多相关文章

  1. Python数据预处理—训练集和测试集数据划分

    使用sklearn中的函数可以很方便的将数据划分为trainset 和 testset 该函数为sklearn.cross_validation.train_test_split,用法如下: > ...

  2. 机器学习基础:(Python)训练集测试集分割与交叉验证

    在上一篇关于Python中的线性回归的文章之后,我想再写一篇关于训练测试分割和交叉验证的文章.在数据科学和数据分析领域中,这两个概念经常被用作防止或最小化过度拟合的工具.我会解释当使用统计模型时,通常 ...

  3. sklearn获得某个参数的不同取值在训练集和测试集上的表现的曲线刻画

    from sklearn.svm import SVC from sklearn.datasets import make_classification import numpy as np X,y ...

  4. sklearn学习3----模型选择和评估(1)训练集和测试集的切分

    来自链接:https://blog.csdn.net/zahuopuboss/article/details/54948181 1.sklearn.model_selection.train_test ...

  5. sklearn——train_test_split 随机划分训练集和测试集

    sklearn——train_test_split 随机划分训练集和测试集 sklearn.model_selection.train_test_split随机划分训练集和测试集 官网文档:http: ...

  6. 机器学习入门06 - 训练集和测试集 (Training and Test Sets)

    原文链接:https://developers.google.com/machine-learning/crash-course/training-and-test-sets 测试集是用于评估根据训练 ...

  7. Sklearn-train_test_split随机划分训练集和测试集

    klearn.model_selection.train_test_split随机划分训练集和测试集 官网文档:http://scikit-learn.org/stable/modules/gener ...

  8. 十折交叉验证10-fold cross validation, 数据集划分 训练集 验证集 测试集

    机器学习 数据挖掘 数据集划分 训练集 验证集 测试集 Q:如何将数据集划分为测试数据集和训练数据集? A:three ways: 1.像sklearn一样,提供一个将数据集切分成训练集和测试集的函数 ...

  9. [DeeplearningAI笔记]改善深层神经网络1.1_1.3深度学习使用层面_偏差/方差/欠拟合/过拟合/训练集/验证集/测试集

    觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.1 训练/开发/测试集 对于一个数据集而言,可以将一个数据集分为三个部分,一部分作为训练集,一部分作为简单交叉验证集(dev)有时候也成为验 ...

随机推荐

  1. 获取URL值带参数跳转

    //要跳转界面 api.openWin({ name: 'PayOrder', url: 'PayOrder.html?id=2', pageParam:{name:pr} }); //跳转后的界面 ...

  2. 成功解决internal/modules/cjs/loader.js:596 throw err; ^ Error: Cannot find module 'minimatch'

    成功解决internal/modules/cjs/loader.js:596 throw err; ^ Error: Cannot find module 'minimatch' 解决办法 npm i ...

  3. select和FD_SET等

    转自:http://blog.csdn.net/cstarbl/article/details/7645298 select函数用于在非阻塞中,当一个套接字或一组套接字有信号时通知你,系统提供sele ...

  4. idea maven sync Cannot resolve xxx 的解决方案

    经常会出现这种奇葩情况,提示找不到包 其实是因为网络波动或者突然断掉,导致包更新出现问题 直接去maven的仓库目录 找到不能找到的包 删掉相关目录 然后重新更新maven就行了 比如 直接去仓库目录 ...

  5. LeetCode 14. 最长公共前缀(Longest Common Prefix)

    题目描述 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow ...

  6. java面试要点

    基础篇 基本功 面向对象的特征 final, finally, finalize 的区别 int 和 Integer 有什么区别 重载和重写的区别 抽象类和接口有什么区别 说说反射的用途及实现 说说自 ...

  7. flutter 快速生成Widget

    快速生成对象 List.generate(20, (i){ return Text("$i"); }), 快速生成Widget ListView.builder( itemCoun ...

  8. Linux_系统破坏性修复实验

    目录 目录 修改系统用户密码 grub修复 系统修复 最后 修改系统用户密码 随便介绍一个修改Linux系统用户密码的方法. 步骤: 开机读秒时按任意键 进入grub列表项配置按e 选择系统kerne ...

  9. 阶段3 2.Spring_08.面向切面编程 AOP_4 spring基于XML的AOP-配置步骤

    resources下新建bean.xml文件 xmlns:aop 先配置IOC aop 通知类就是logger.id配置为logAdvice表示日志的通知 梳理流程 首先我们在这有个Service它需 ...

  10. 二十二:视图之add_url_rule和app.route

    flask注册视图有两种方式 一:add_url_rule()add_url_rule源码:rule:接口地址view_func=视图函数endpoint=终结点,可以理解为给当前视图取的别名,最直观 ...