各位朋友大家好,今天开始和大家一起学习python机器学习,初学的老师在数据科学领域往往会问学习R语言好,还是python好这个经久不衰的问题。我的建议是R语言的优点是它的灵活性和代码的简洁性,但正是由于上面的优点使得它的代码可读性不高。而python则是公认的胶水语言,虽然也很简洁灵活,但是从代码的书写量来讲相对于R语言来讲是多的,但它的易懂性是R无法匹敌的,以上这些特点就决定了两者相辅相成的结论。做统计,做机器学习倾向于R语言,而做深度学习则倾向于python。当然两者在做数据清洗时是不相上下的,R有成熟的tidyverse,python有成熟的pandas。今天我们就从传统机器学习开始给大家用Python跑跑数据,希望能多和CSDN的老师交流。
首先把传统机器学习的流程给大家,今天我们用Kaggle的Glod Price数据集来作为演示,数据集的下载链接如下:https://www.kaggle.com/altruistdelhite04/gold-price-data
#首先载入编程所需要的库
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestRegressor
from sklearn import metrics
import os
#载入数据
os.chdir(r"G:\Pythoncode")
gold_data = pd.read_csv('gld_price_data.csv')
#我们查看一下前5行数据
gold_data.head()
#我们看一下数据里面有没有空值
gold_data.isnull().sum()
#我们进行特征变量和预测变量的划分
X = gold_data.drop(['Date','GLD'],axis=1)
Y = gold_data['GLD']
#我们把除了Date和GLD列以外的列均作为特征变量,将GLD作为预测变量
#下面是划分训练接和测试集
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size = 0.2, random_state=2)
#我们调入随机森林模型对象
regressor = RandomForestRegressor(n_estimators=100)
#拟合训练集
regressor.fit(X_train,Y_train)
#模型拟合好以后,我们利用测试集进行评估
test_data_prediction = regressor.predict(X_test)
#计算模型评估指标,我们这里计算的是R方
error_score = metrics.r2_score(Y_test, test_data_prediction)
print("R squared error : ", error_score)
#最后我们比较一下真实值和预测值
#现将Y_test转换成为列表
Y_test = list(Y_test)
#我们进行可视化
#画真实值
plt.plot(Y_test, color='blue', label = 'Actual Value')
#画预测值
plt.plot(test_data_prediction, color='green', label='Predicted Value')
#设置图片的名称
plt.title('Actual Price vs Predicted Price')
#x轴的名称
plt.xlabel('Number of values')
#y轴的名称
plt.ylabel('GLD Price')
plt.legend()
plt.show()
这就是python做传统机器学习的整个流程,希望大家多多支持,共同学习!