我是靠谱客的博主 沉默季节,最近开发中收集的这篇文章主要介绍机器学习笔记2:线性回归、逻辑回归,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

  • 线性回归
    • 1. 可以使用tushare爬取股票代码
    • 2. 零散的小知识
  • 逻辑回归
    • 逻辑回归的操作步骤
    • 分析数据
    • 数据预处理
    • 训练模型进行预测
  • 作业题
    • 1. 处理其他数据的方法
    • 2. 过采样处理
    • 3. 训练和预测
    • 4. 不过采样结果

机器学习本周讲的是线性回归、逻辑回归
原理见上一篇博客:https://www.cnblogs.com/bugutian/p/11123484.html
课程资料:https://github.com/GreedyAIAcademy/Machine-Learning

线性回归

其他的前面都学了,新的知识

1. 可以使用tushare爬取股票代码

import tushare as ts
df = ts.get_hist_data('000001')
print(df)
df.to_csv('000001.csv')

2. 零散的小知识

plotly.graph_objs : 可画股票的K线图
np.shape(df) 矩阵又多少行多少列如(611,14)
reshape() 将多维数组编程一维数组
df['label'] = df['close'].shift(-num) 用shift将结果上移num条记录

逻辑回归

逻辑回归的操作步骤

  • 步骤1:分析数据
  • 步骤2:数据预处理
  • 步骤3:训练模型进行预测

分析数据

分析数据的字段,确定那些因素是良好的预测因素

数据预处理

  1. 缺失数据处理
  • 删除: 缺失数据少时删除行,缺失数据多时删除列
  • 取平均值: 用平均值代替缺失值
  • 取中位数: 用中位数代替缺失值
    到底选用中替代方法,不能排脑袋决定,选哪种方法,主要看哪种可能和结果关联度大
  1. 过采样
    如果数据不平衡,如y=0的数据量是y=1数据量的10倍,此时需要用到过采样,过采样的结果使二元结果的数据量为1:1.

训练模型进行预测

都一样。

logreg = LogisticRegression()
logreg.fit(os_data_X, os_data_y.values.reshape(-1))
y_pred = logreg.predict(X_test)
logreg.score(X_test, y_test)

作业题

地址:https://github.com/GreedyAIAcademy/Machine-Learning/tree/master/3.LinearRegression.LogisticRegression/homework

1. 处理其他数据的方法

由于其他数据只是缺失1两条信息,因此将这些数据删除

data = data.dropna()
data.isnull().sum()

2. 过采样处理

python from imblearn.over_sampling import SMOTE os = SMOTE(random_state=0) columns = X_train.columns os_data_X,os_data_y=os.fit_sample(X_train, y_train) os_data_X = pd.DataFrame(data=os_data_X,columns=columns ) os_data_y= pd.DataFrame(data=os_data_y,columns=['survived']) # we can Check the numbers of our data print("过采样以后的数据量: ",len(os_data_X)) print("未生还数: ",len(os_data_y[os_data_y['survived']==0])) print("生还数: ",len(os_data_y[os_data_y['survived']==1])) print("未生还的百分比: ",len(os_data_y[os_data_y['survived']==0])/len(os_data_X)) print("生还的百分比: ",len(os_data_y[os_data_y['survived']==1])/len(os_data_X))python

3. 训练和预测

from sklearn.linear_model import LogisticRegression
from sklearn import metrics
logreg = LogisticRegression()
logreg.fit(os_data_X, os_data_y.values.reshape(-1))
y_pred = logreg.predict(X_test)
print("准确率为 %2.3f" % accuracy_score(y_test, y_pred))

准确率为 0.794

4. 不过采样结果

logreg2 = LogisticRegression()
logreg2.fit(X_train, y_train)
y_pred2 = logreg2.predict(X_test)
print("准确率为 %2.3f" % accuracy_score(y_test, y_pred2))

准确率为 0.817
可见过采样之后的准确率不一定高。

转载于:https://www.cnblogs.com/bugutian/p/11153212.html

最后

以上就是沉默季节为你收集整理的机器学习笔记2:线性回归、逻辑回归的全部内容,希望文章能够帮你解决机器学习笔记2:线性回归、逻辑回归所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部