" id="b1img" alt="米课”N+1“思维建站-非官方免费技术支持,Wordpress/Zencart/Opencart建站、SEO" title="米课”N+1“思维建站-非官方免费技术支持,Wordpress/Zencart/Opencart建站、SEO">
  • " alt="米课”N+1“思维建站-非官方免费技术支持,Wordpress/Zencart/Opencart建站、SEO" title="米课”N+1“思维建站-非官方免费技术支持,Wordpress/Zencart/Opencart建站、SEO" />
  • " alt="Windows/Linux服务器运维技术支持 环境搭建、应用发布、服务器管理、虚拟化、云计算" title="Windows/Linux服务器运维技术支持 环境搭建、应用发布、服务器管理、虚拟化、云计算" />
  • " alt="高校/小型企业网络运维与建设免费技术支持,网络规划、网络优化、故障排除、网络管理" title="高校/小型企业网络运维与建设免费技术支持,网络规划、网络优化、故障排除、网络管理" />

别了网工——我的数据分析之路(五)机器学习入门(逻辑回归分类)

资源分享2018-05-20 itlogger阅读(260) 评论(0)
1.分类问题的本质
其本质是构造一个函数,将连续型变量映射成离散型变量。
2.训练数据和测试数据
a) 训练数据:训练数据是用来学习模型的。训练数据的质量对生成一个成功的机器学习模型来说至关重要,理想的训练数据应该是多样化并尽可能与模型需要用到的特性相关的。
b) 测试数据:被用来对生成的模型的准确度进行评估的数据。测试数据不能用来训练模型。
3.如何判断分类结果的准确性
机器学习对于分类问题可以定义一个决策面,当有新数据时,就可以预测出属于哪个分类。对于分类问题,机器学习模型的工作就是将训练数据的特征和标签转化成决策面。
预测结果的标签与训练数的标签进行比较,正确率=正确分类的个数/数据总数
4.机器学习如何分类
输入:训练数据
输出:分类结果
5.什么是逻辑回归
  • Logistic回归虽然名字里带“回归”,但是它实际上是一种分类方法,主要用于两分类问题(即输出只有两种,分别代表两个类别)
  • 回归模型中,y是一个定性变量,比如y=0或1,logistic方法主要应用于研究某些事件发生的概率,逻辑函数值表示概率。
  • 线性回归Z=a+bx
逻辑回归决策面
6.分类与回归的区别
属性
分类
回归
输出类型
离散数据(分类标签)
连续数据
你想找到什么
决策面
最优拟合线
评估指标
通常使用正确率作为指标
决定系统R平方
7.逻辑回归——Python实现
from collections import OrderedDict
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
import numpy as np
#1).提出问题:学习时间与成绩的关系?
examDict={‘time’:[0.5,0.75,1,1.25,1.5,1.75,1.75,2,2.25,2.5,2.75,3,3.25,3.5,4,4.25,4.5,4.75,5,5.5],’pass’:[0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1]}
examOrderDict=OrderedDict(examDict)
examDf = pd.DataFrame(examOrderDict)
#特征
exam_X=examDf.loc[:,’time’]
#标签
exam_y=examDf.loc[:,’pass’]
#2).建立训练数据和测试数据
X_train,X_test,y_train,y_test = train_test_split(exam_X,exam_y,test_size=.2,train_size=.8)
#输出数据大小
print(‘原始数据特征:’,exam_X.shape,’训练数据特征:’,X_train.shape,’测试数据特征’,X_test.shape)
print(‘原始数据标签:’,exam_y.shape,’训练数据标签:’,y_train.shape,’测试数据标签’,y_test.shape)
#导入线性回归包
from sklearn.linear_model import LogisticRegression
#3).创建逻辑回归模型
model=LogisticRegression();
#4).训练模型
X_train2 = X_train.values.reshape(-1,1)
X_test = X_test.values.reshape(-1,1)
model.fit(X_train2,y_train.values.ravel())
#5).模型评估:准确率
model.score(X_test,y_test)
#运行结果[[0.42386814 0.57613186]]
#6).预测通过考虑的概率
print (model.predict_proba(3))
print (model.predict([[3]]))
输出结果:
标签为0的概率值 标签为1大的概率值
[[0.39630972 0.60369028]]
[1]

转载请注明 :IT樵客
文章地址:http://www.itlogger.com/res/2471.html
标签:
相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注