机器学习入门

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

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. 深度学习笔记(十二)车道线检测 LaneNet

    论文:Towards End-to-End Lane Detection: an Instance Segmentation Approach 代码:https://github.com/MaybeS ...

  2. 3.1 JAVA集合框架以及区别

    涉及的参考链接:https://www.runoob.com/java/java-collections.html,http://how2j.cn/k/collection/collection-ar ...

  3. Value '0000-00-00' can not be represented as java.sql.Date解决办法

    java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp 问题描述 ...

  4. 20191010-8 alpha week 1/2 Scrum立会报告+燃尽图 06

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2019fall/homework/8751 一.小组情况组长:贺敬文组员:彭思雨 王志文 位军营 杨萍队名:胜 ...

  5. P5436 【XR-2】缘分

    P5436 [XR-2]缘分 题解 很显然给出一个n,要想使缘分最大,一定要选 n 和 n-1 对吧 但是这里有一个特盘,当 n=1 时,缘分应该为1 而不是0 代码 #include<bits ...

  6. P1200 [USACO1.1]你的飞碟在这儿Your Ride Is He…

    P1200 [USACO1.1]你的飞碟在这儿Your Ride Is He…   大写祖母转数字  -64   发现dalao   #include<bits/stdc++.h> usi ...

  7. 转 Cookie、Session

    https://www.cnblogs.com/liwenzhou/p/8343243.html Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况 ...

  8. oracle数据字典视图

    数据字典的概念       还记得我们在手工建库的时候,运行的两个脚本文件.一个是catalog.sql,另一个是catproc.sql.catalog.sql是用来创建数据库的内部字典表的.catp ...

  9. JSP指令标签、动作标签

    JSP有三大指令: * page指令   * include指令   * taglib指令    在JSP中没有任何指令是必须的!!! 但基本上每个JSP都是使用page指令! page指令 page ...

  10. java:LeakFilling (Mybatis)

    1.实体类属性与数据库中字段名字不一样时,或者起别名时: TbOrderMapper.xml配置文件中,配置resultMap标签: 其它相同的标签也需要配,否则查询不出来对应数据. 2.一对一关联: ...