共有

知識ポイント:
パッケージの逆アセンブリ時間を潤滑する | POSIXlt
デシジョンツリー分類を使用し、ランダムフォレスト予測を使用する
フィットに対数を使用し、exp関数を削減する
トレーニングセットはKaggle Washington Bike Sharingから取得シェア自転車と天候、時間等の関係を分析するための計画的なレンタサイクルデータ。データ セットには、合計 11 個の変数と 10,000 行を超えるデータが含まれています。
まず、公式データを見てみましょう。両方のテーブルに 2011 年から 2012 年のデータが含まれていますが、テスト ファイルには各月の日付がすべて含まれていますが、登録されたユーザーは存在しません。そしてカジュアルユーザー。 Train ファイルには 1 か月あたり 1 ~ 20 日しかありませんが、ユーザーには 2 つのタイプがあります。
解決策: Train ファイルに 21 ~ 30 の番号が付いたユーザーの数を入力します。評価基準は、予測と実際の数量の比較です。

最初にファイルとパッケージをロードします
library(lubridate)library(randomForest)library(readr)setwd("E:") data<-read_csv("train.csv")head(data)
ここで落とし穴に遭遇しました。R言語のデフォルトのread.csvを使用して正しいファイル形式を読み取ることができませんでした。これはさらに悪いことです。これを xlsx に変更すると、すべての時間が 43045 のような奇妙な数値になります。以前にas.Dateを試したところ正しく変換できましたが、今回は分と秒があるためタイムスタンプしか使えませんが、結果は良くありません。
最後に、「readr」パッケージをダウンロードし、read_csv ステートメントを使用してスムーズに解釈しました。
テストの日付は列車の日付よりも完全ですが、ユーザーの数が欠落しているため、列車とテストをマージする必要があります。
test$registered=0test$casual=0test$count=0 data<-rbind(train,test)
時刻の抽出: ここでの時刻は比較的単純で時間数であるため、文字列を直接取得することもできます。
data$hour1<-substr(data$datetime,12,13) table(data$hour1)
1 時間あたりの合計使用量をカウントすると、次のようになります (なぜこんなにすっきりしているのでしょう):

次のステップは、箱ひげ図を使用してユーザーとユーザーを確認することです。時間、週 これらの関係のいくつか。ヒスト ヒストグラムの代わりに箱ひげ図を使用する理由は何ですか? 箱ひげ図は離散点表現であるため、以下の適合を求めるために対数が使用されます。図からわかるように、時間の観点からは、登録ユーザーと非登録ユーザーの使用時間が非常に長くなります。違う。

5-hour-tregestered.png

5-hour-casual.png

4-boxplot-day.png
相関係数: 変数間の線形関連性の尺度であり、異なるデータ間の相関の程度をテストします。計算結果から、ユーザー数は気温よりも影響が大きい風速と負の相関があることがわかります。値の範囲は [-1, 1] で、0 に近づくほど関連性が低くなります。

cor.png
デシジョン ツリー モデルは、シンプルで使いやすいノンパラメトリック分類子です。データについて先験的な仮定を必要とせず、計算は高速で、結果の解釈が容易で、堅牢でノイズの多いデータやデータの欠落を恐れません。登録ユーザーと時間のディシジョン ツリーを作成する決定木モデルの基本的な計算手順は次のとおりです。まず、n 個の独立変数の 1 つを選択し、最適な分割点を見つけて、データを 2 つのグループに分割します。グループ化されたデータについては、特定の条件が満たされるまで上記の手順を繰り返します。
ディシジョン ツリー モデリングでは、解決する必要がある 3 つの重要な問題があります:
独立変数の選択方法
分割点の選択方法
分割を停止する条件を決定する
train$hour1<-as.integer(train$hour1)d<-rpart(registered~hour1,data=train)rpart.plot(d)

3-raprt-hour1.png
あとは決定木の結果に応じて手動で分類しているので、やはりコードだらけです…
train$hour1<-as.integer(train$hour1)data$dp_reg=0data$dp_reg[data$hour1<7.5]=1data$dp_reg[data$hour1>=22]=2data$dp_reg[data$hour1>=9.5 & data$hour1<18]=3data$dp_reg[data$hour1>=7.5 & data$hour1<18]=4data$dp_reg[data$hour1>=8.5 & data$hour1<18]=5data$dp_reg[data$hour1>=20 & data$hour1<20]=6data$dp_reg[data$hour1>=18 & data$hour1<20]=7同様に、make (時間 | 温度) X (登録 | ランダム ユーザー) デシジョン ツリーを待って手動分類を続行します....

3-raprt-temp.png
年份月份,周末假日等手动分类
data$year_part=0data$month<-month(data$datatime)data$year_part[data$year=='2011']=1data$year_part[data$year=='2011' & data$month>3]=2data$year_part[data$year=='2011' & data$month>6]=3data$year_part[data$year=='2011' & data$month>9]=4
data$day_type=""data$day_type[data$holiday==0 & data$workingday==0]="weekend"data$day_type[data$holiday==1]="holiday"data$day_type[data$holiday==0 & data$workingday==1]="working day"data$weekend=0data$weekend[data$day=="Sunday"|data$day=="Saturday"]=1
接下来用随机森林语句预测
在机器学习中,随机森林是一个包含多个决策树的分类器, 并且其输出的类别是由个别树输出的类别的众数而定。
随机森林中的子树的每一个分裂过程并未用到所有的待选特征,而是从所有的待选特征中随机选取一定的特征,再在其中选取最优的特征。这样决策树都能够彼此不同,提升系统的多样性,从而提升分类性能。
ntree指定随机森林所包含的决策树数目,默认为500,通常在性能允许的情况下越大越好;
mtry指定节点中用于二叉树的变量个数,默认情况下数据集变量个数的二次方根(分类模型)或三分之一(预测模型)。一般是需要进行人为的逐次挑选,确定最佳的m值—摘自datacruiser笔记。这里我主要学习,所以虽然有10000多数据集,但也只定了500。就这500我的小电脑也跑了半天。
train<-dataset.seed(1234) train$logreg<-log(train$registered+1)test$logcas<-log(train$casual+1) fit1<-randomForest(logreg~hour1+workingday+day+holiday+day_type+temp_reg+humidity+atemp+windspeed+season+weather+dp_reg+weekend+year+year_part,train,importance=TRUE,ntree=250) pred1<-predict(fit1,train) train$logreg<-pred1
这里不知道怎么回事,我的day和day_part加进去就报错,只有删掉这两个变量计算,还要研究修补。
然后用exp函数还原
train$registered<-exp(train$logreg)-1 train$casual<-exp(train$logcas)-1 train$count<-test$casual+train$registered
最后把20日后的日期截出来,写入新的csv文件上传。
train2<-train[as.integer(day(data$datetime))>=20,]submit_final<-data.frame(datetime=test$datetime,count=test$count)write.csv(submit_final,"submit_final.csv",row.names=F)
大功告成!
github代码加群
原来的示例是炼数成金网站的kaggle课程第二节,基本按照视频的思路。因为课程没有源代码,所以要自己修补运行完整。历时两三天总算把这个功课做完了。下面要修正的有:
好好理解三个知识点(lubridate包/POSIXlt,log线性,决策树和随机森林);
用WOE和IV代替cor函数分析相关关系;
用其他图形展现的手段分析
随机树变量重新测试学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入学习交流群
626062078,我们一起学Python!
完成了一个“浩大完整”的数据分析,还是很有成就感的!
以上がPythonによるビッグデータ処理を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Pythonを1日2時間学ぶだけで十分ですか?それはあなたの目標と学習方法に依存します。 1)明確な学習計画を策定し、2)適切な学習リソースと方法を選択します。3)実践的な実践とレビューとレビューと統合を練習および統合し、統合すると、この期間中にPythonの基本的な知識と高度な機能を徐々に習得できます。

Web開発におけるPythonの主要なアプリケーションには、DjangoおよびFlaskフレームワークの使用、API開発、データ分析と視覚化、機械学習とAI、およびパフォーマンスの最適化が含まれます。 1。DjangoandFlask Framework:Djangoは、複雑な用途の迅速な発展に適しており、Flaskは小規模または高度にカスタマイズされたプロジェクトに適しています。 2。API開発:フラスコまたはdjangorestFrameworkを使用して、Restfulapiを構築します。 3。データ分析と視覚化:Pythonを使用してデータを処理し、Webインターフェイスを介して表示します。 4。機械学習とAI:Pythonは、インテリジェントWebアプリケーションを構築するために使用されます。 5。パフォーマンスの最適化:非同期プログラミング、キャッシュ、コードを通じて最適化

Pythonは開発効率でCよりも優れていますが、Cは実行パフォーマンスが高くなっています。 1。Pythonの簡潔な構文とリッチライブラリは、開発効率を向上させます。 2.Cのコンピレーションタイプの特性とハードウェア制御により、実行パフォーマンスが向上します。選択を行うときは、プロジェクトのニーズに基づいて開発速度と実行効率を比較検討する必要があります。

Pythonの実際のアプリケーションには、データ分析、Web開発、人工知能、自動化が含まれます。 1)データ分析では、PythonはPandasとMatplotlibを使用してデータを処理および視覚化します。 2)Web開発では、DjangoおよびFlask FrameworksがWebアプリケーションの作成を簡素化します。 3)人工知能の分野では、TensorflowとPytorchがモデルの構築と訓練に使用されます。 4)自動化に関しては、ファイルのコピーなどのタスクにPythonスクリプトを使用できます。

Pythonは、データサイエンス、Web開発、自動化スクリプトフィールドで広く使用されています。 1)データサイエンスでは、PythonはNumpyやPandasなどのライブラリを介してデータ処理と分析を簡素化します。 2)Web開発では、DjangoおよびFlask Frameworksにより、開発者はアプリケーションを迅速に構築できます。 3)自動化されたスクリプトでは、Pythonのシンプルさと標準ライブラリが理想的になります。

Pythonの柔軟性は、マルチパラダイムサポートと動的タイプシステムに反映されていますが、使いやすさはシンプルな構文とリッチ標準ライブラリに由来しています。 1。柔軟性:オブジェクト指向、機能的および手続き的プログラミングをサポートし、動的タイプシステムは開発効率を向上させます。 2。使いやすさ:文法は自然言語に近く、標準的なライブラリは幅広い機能をカバーし、開発プロセスを簡素化します。

Pythonは、初心者から上級開発者までのすべてのニーズに適した、そのシンプルさとパワーに非常に好まれています。その汎用性は、次のことに反映されています。1)学習と使用が簡単、シンプルな構文。 2)Numpy、Pandasなどの豊富なライブラリとフレームワーク。 3)さまざまなオペレーティングシステムで実行できるクロスプラットフォームサポート。 4)作業効率を向上させるためのスクリプトおよび自動化タスクに適しています。

はい、1日2時間でPythonを学びます。 1.合理的な学習計画を作成します。2。適切な学習リソースを選択します。3。実践を通じて学んだ知識を統合します。これらの手順は、短時間でPythonをマスターするのに役立ちます。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

Dreamweaver Mac版
ビジュアル Web 開発ツール
