Data Science and Data Proicessing

파이썬 프로그래밍

Python 개발자를위한 10 가지 멋진 프로젝트 아이디어

Python 기술에 도전하는 미친 프로젝트 아이디어

Image for post
~의 사진사이먼 아 브람스의 위에Unsplash

알고 계십니까파이썬로 알려져 있습니다다재다능한 프로그래밍 언어?

예, 그렇습니다모든 단일 프로젝트에서 사용해서는 안됩니다.,

이를 사용하여 데스크톱 응용 프로그램, 게임, 모바일 앱, 웹 사이트 및 시스템 소프트웨어를 만들 수 있습니다. 구현에 가장 적합한 언어이기도합니다.인공 지능기계 학습알고리즘.

그래서 지난 몇 주 동안유니Python 개발자를위한 ue 프로젝트 아이디어. 이 프로젝트 아이디어는이 놀라운 언어에 대한 귀하의 관심을 다시 불러 일으킬 것입니다. 가장 좋은 점은 재미 있지만 도전적인 프로젝트를 통해 Python 프로그래밍 기술을 향상시킬 수 있다는 것입니다.

하나씩 살펴 보겠습니다.

1- 음성 명령을 사용하여 소프트웨어 GUI 만들기

Image for post
상호 작용 샘플 — 님의 사진전진의 위에Unsplash— 저자 편집

These days, massive progress has been made in the field of desktop application development. You will see many drag & drop GUI builders and speech recognition libraries. So, why not join them together and create a user interface by talking with the computer?

이것은 순전히 새로운 개념이며 몇 가지 연구 끝에 아무도 그것을 시도하지 않았다는 것을 알았습니다. 따라서 아래에 언급 된 것보다 조금 더 어려울 수 있습니다.

다음은 Python을 사용하여이 프로젝트를 시작하기위한 몇 가지 지침입니다. 우선, 다음 패키지가 필요합니다.

이제 아이디어는 다음과 같은 일부 음성 명령을 하드 코딩하는 것입니다.

Image for post

당신은 요점을 알고 있습니까? 이와 같은 명령을 더 추가하는 것은 매우 간단하고 간단합니다.

이것이 될 것이므로최소 실행 가능 제품 (MVP). 따라서 많은 조건문 (예 : if… else)을 하드 코딩해야한다면 완전히 괜찮을 것입니다.

몇 가지 기본 명령을 설정 한 후에는 코드를 테스트 할 차례입니다. 지금은 창에서 매우 기본적인 로그인 양식을 만들 수 있습니다.

이 아이디어의 가장 큰 유연성은 게임 개발, 웹 사이트 및 모바일 앱에 대해 구현할 수 있다는 것입니다. 다른 프로그래밍 언어에서도.

2- AI 베팅 봇

Image for post
테니스 경기 — 님의 사진Moises Alex의 위에Unsplash

베팅은 사람들이 결과를 예측하고 옳다면 그 대가로 보상을받는 활동입니다. 이제 지난 몇 년 동안 인공 지능 또는 기계 학습에서 발생한 많은 기술 발전이 있습니다.

예를 들어, 다음과 같은 프로그램에 대해 들어 보셨을 것입니다.AlphaGo 마스터,알파 고 제로, 및AlphaZero재생할 수 있습니다Go (게임)어떤 프로 인간 선수보다 낫습니다. 당신은 심지어 얻을 수 있습니다소스 코드Leela Zero라는 유사한 프로그램의

제가 전하고 싶은 것은 AI가 우리보다 더 똑똑해지고 있다는 것입니다. 모든 가능성을 고려하여 더 나은 것을 예측하고 과거의 경험에서 배울 수 있음을 의미합니다.

Python에서지도 학습 개념을 적용하여 AI Betting Bot을 만들어 보겠습니다. 시작하는 데 필요한 라이브러리는 다음과 같습니다.

처음에는 결과를 예측하기 위해 게임 (예 : 테니스, 축구 등)을 선택해야합니다. 이제 모델 학습에 사용할 수있는 이전 일치 결과 데이터를 검색합니다.

예를 들어 테니스 경기의 데이터는 다음 사이트에서 .csv 형식으로 다운로드 할 수 있습니다.tennis-data.co.uk 웹 사이트.

베팅에 익숙하지 않은 경우 방법은 다음과 같습니다.

  • $ 10을 베팅하고 싶습니다.로저 페더러1.3의 배당률로.
  • 그가 이기면 $ 10 (실제 금액)과 $ 3 (수익)을 받게됩니다.
  • 그가지면 당신의 돈 (예 : $ 10)도 잃게됩니다.

모델을 훈련 한 후에는신뢰 수준각 예측에 대해 예측이 옳은 횟수를 확인하여 봇의 성능을 확인하고 마지막으로 주시해야합니다.투자 수익 (ROI).

유사한 오픈 소스 다운로드AI 베팅 봇 프로젝트에두아르 토마스.

3- 트레이딩 봇

Image for post
무역 — 님의 사진닉 총의 위에Unsplash

Trading Bot은 예측을 위해 AI도 필요하기 때문에 이전 프로젝트와 매우 유사합니다.

이제 질문은 AI가 주가의 변동을 정확하게 예측할 수 있는지 여부입니다.

그리고 대답은 예입니다.

시작하기 전에 거래 봇을 개발하기위한 데이터가 필요합니다.

Investopedia의 이러한 리소스는 봇 교육에 도움이 될 수 있습니다.

이 두 기사를 모두 읽은 후에는 주식을 구매할 때와 구매하지 않을 때를 더 잘 이해할 수 있습니다. 이 지식은 자동으로 결정을 내리는 Python 프로그램으로 쉽게 변환 될 수 있습니다.

이 오픈 소스 거래 봇에서 참조 할 수도 있습니다.freqtrade. Python을 사용하여 빌드되고 여러 기계 학습 알고리즘을 구현합니다.

4- Iron Man Jarvis (AI 기반 가상 도우미)

Image for post
Ai 도우미 인터페이스 — 님의 사진조슈아 소르 티노의 위에Unsplash

이 아이디어는 할리우드 영화 시리즈에서 가져온 것입니다.아이언 맨. 영화는 기술, 로봇, AI를 중심으로 전개됩니다.

여기에서 Iron Man은 인공 지능을 사용하여 가상 비서를 구축했습니다. 이 프로그램은자비스아이언 맨의 일상적인 작업을 도와줍니다.

Iron Man은 간단한 영어를 사용하여 Jarvis에게 지침을 제공하고 Jarvis도 영어로 응답합니다. 이는 우리 프로그램이 음성 인식과 텍스트 음성 변환 기능이 필요하다는 것을 의미합니다.

다음 라이브러리를 사용하는 것이 좋습니다.

지금은 다음과 같은 음성 명령을 하드 코딩 할 수 있습니다.

다음과 같은 수많은 다른 작업에 Jarvis를 사용할 수도 있습니다.

  • 모바일에서 알람을 설정합니다.
  • 지속적으로 홈 보안 카메라를 확인하고 누군가가 밖에서 기다리고있을 경우 알려줍니다. 얼굴 인식 및 인식과 같은 더 많은 기능을 추가 할 수 있습니다. 누가 또는 얼마나 많은 사람들이 있는지 알아내는 데 도움이됩니다.
  • 방 창문을 열거 나 닫습니다.
  • 조명을 켜거나 끕니다.
  • 이메일에 자동으로 응답합니다.
  • 작업을 예약합니다.

Facebook의 창립자 인 "Mark Zuckerberg"조차도자비스사이드 프로젝트로.

5- 다가오는 아티스트 콘서트에 대한 정보를 얻기 위해 웹 사이트 모니터링

Image for post
티켓 — 님의 사진앤디 리의 위에Unsplash

송킥다가오는 콘서트에 대한 정보를 제공하는 매우 인기있는 서비스입니다. 이것의API다음과 같은 방법으로 예정된 콘서트를 검색하는 데 사용할 수 있습니다.

  • 예술가
  • 위치
  • 장소
  • 날짜와 시간

Songkick의 API를 사용하여 매일 특정 콘서트를 계속 확인하는 Python 스크립트를 만들 수 있습니다. 마지막으로 콘서트가 열릴 때마다 자신에게 이메일을 보내십시오.

때때로 Songkick은표를 사다그들의 웹 사이트에 링크. 그러나이 링크는 다른 콘서트를 위해 다른 웹 사이트로 이동할 수 있습니다. 이는 웹 스크래핑을 이용하더라도 자동으로 티켓을 구매하기가 매우 어렵다는 것을 의미합니다.

대신 수동 조치를위한 애플리케이션에있는 그대로 티켓 구매 링크를 표시 할 수 있습니다.

6- 무료 Let ’s Encrypt SSL 인증서 자동 갱신

Image for post
Let ’s Encrypt 로고 —https://letsencrypt.org/

암호화하자무료 SSL 인증서를 제공하는 인증 기관입니다. 그러나 문제는이 인증서가 90 일 동안 만 유효하다는 것입니다. 90 일 후에는 갱신해야합니다.

제 생각에는 이것은 Python을 사용한 자동화를위한 훌륭한 시나리오입니다. 만료되기 전에 웹 사이트 SSL 인증서를 자동으로 갱신하는 코드를 작성할 수 있습니다.

이것을 확인하십시오GitHub의 코드영감을 위해.

7- 군중 속의 개인 인식

Image for post
얼굴 인식 — 님의 이미지 the Author

요즘 정부는 시민의 보안을 강화하기 위해 공공 장소에 감시 카메라를 설치했습니다. 이러한 카메라의 대부분은 단순히 비디오를 녹화하기위한 것이므로 법의학 전문가는 개인을 수동으로 인식하거나 추적해야합니다.

카메라에있는 각 사람을 실시간으로 인식하는 Python 프로그램을 만들면 어떨까요? 우선, 우리가 가지고 있지 않은 국가 ID 카드 데이터베이스에 액세스해야합니다.

따라서 쉬운 옵션은 가족 구성원의 기록으로 데이터베이스를 만드는 것입니다.

그런 다음얼굴 인식라이브러리를 만들고 카메라의 출력과 연결합니다.

8- 접촉 추적

Image for post
추적 응용 프로그램에 문의 — 님의 사진Markus Winkler의 위에Unsplash

연락처 추적은 특정 기간 동안 서로 연락 한 모든 사람을 식별하는 방법입니다. COVID-19 또는 HIV와 같은 전염병에 주로 유용합니다. 감염된 사람에 대한 데이터가 없으면 확산을 막을 수 없기 때문입니다.

Python은 다음과 같은 기계 학습 알고리즘과 함께 사용할 수 있습니다.DBSCAN (노이즈가있는 애플리케이션의 밀도 기반 공간 클러스터링)연락처 추적을 위해.

이것은 부수적 인 프로젝트이므로 공식 데이터에 액세스 할 수 없습니다. 지금은 다음을 사용하여 현실적인 테스트 데이터를 생성하는 것이 좋습니다.모카 루.

당신은 볼 수 있습니다이 기사특정 코드 구현을 위해.

9- 한 폴더에서 다른 폴더로 파일 자동 이동

Image for post
우분투에서 노틸러스 파일 관리자 — 님의 사진 the Author

이것은 폴더를 계속 모니터링하는 매우 기본적인 Python 프로그램입니다. 해당 폴더에 파일이 추가 될 때마다 유형을 확인하고 그에 따라 특정 폴더로 이동합니다.

예를 들어 다운로드 폴더를 추적 할 수 있습니다. 이제 새 파일을 다운로드하면 파일 유형에 따라 자동으로 다른 폴더로 이동합니다.

.exe 파일은 대부분 소프트웨어 설정이므로 "software"폴더로 이동하십시오. 반면,“images”폴더 안에있는 움직이는 이미지 (png, jpg, gif).

이렇게하면 빠른 액세스를 위해 다양한 유형의 파일을 구성 할 수 있습니다.

10- YouTube에서 경력 경로 비디오 수집

Image for post
Youtube 홈페이지 — 님의 사진콘 카람 펠라 스의 위에Unsplash

경력을 위해 배워야하는 기술의 이름을 받아들이는 응용 프로그램을 만듭니다.

예를 들어 웹 개발자가 되려면 다음을 배워야합니다.

  • HTML5
  • CSS3
  • 자바 스크립트
  • 백엔드 언어 (PHP, Node.js, Python, ASP.NET 또는 Java)
  • 부트 스트랩 4
  • 워드 프레스
  • 백엔드 프레임 워크 (Laravel, Codeigniter, Django, Flask 등)
  • 기타

스킬을 입력하면"경력 경로 생성"단추. 프로그램에 검색을 지시합니다.유튜브각 기술에 따라 관련 비디오 / 재생 목록을 선택합니다. 스킬에 대한 유사한 동영상이 많은 경우 조회수, 댓글, 좋아요 등이 가장 많은 동영상을 선택합니다.

그런 다음 프로그램은 이러한 비디오를 기술에 따라 그룹화하고 GUI에 썸네일, 제목 및 링크를 표시합니다.

또한 각 비디오의 길이를 분석하고 집계 한 다음이 경력 경로를 배우는 데 걸리는 시간을 알려줍니다.

이제 사용자로서 우리는이 커리어의 마스터가되기 위해 단계적으로 주문되는 이러한 비디오를 볼 수 있습니다.

결론

고유 한 프로그래밍 프로젝트에 도전하면 활동성을 유지하고 기술을 향상 시키며 새로운 가능성을 탐색하는 데 도움이됩니다.

위에서 언급 한 프로젝트 아이디어 중 일부는마지막 해 프로젝트.

Python 프로그래밍 언어로 창의성을 보여주고 이러한 아이디어를 자랑스럽게 생각할 때입니다.

읽어 주셔서 감사합니다!

PYTHON PROGRAMMING

10 Crazy Cool Project Ideas for Python Developers

Crazy project ideas to challenge your Python skills

Image for post
Photo by Simon Abrams on Unsplash

Did you know Python is known as an all-rounder programming language?

Yes, it is, though it shouldn’t be used on every single project,

You can use it to create desktop applications, games, mobile apps, websites, and system software. It is even the most suitable language for the implementation of Artificial Intelligence and Machine Learning algorithms.

So, I spent the last few weeks collecting unique project ideas for Python developers. These project ideas will hopefully bring back your interest in this amazing language. The best part is that you can enhance your Python programming skills with these fun but challenging projects.

Let’s have a look at them one-by-one.

1- Create a Software GUI Using Voice Commands

Image for post
Interaction Sample — Original Photo by Headway on Unsplash — Edited by the Author

These days, massive progress has been made in the field of desktop application development. You will see many drag & drop GUI builders and speech recognition libraries. So, why not join them together and create a user interface by talking with the computer?

This is purely a new concept and after some research, I found that no one has ever attempted to do it. So, it might be a little bit more challenging than the ones mentioned below.

Here are some instructions to get started on this project using Python. First of all, you need these packages:-

Now, the idea is to hardcode some speech commands like:

Image for post

You got the point, right? It’s very simple and straightforward to add more commands like these.

As this is going to be a Minimum Viable Product (MVP). So, it will be completely ok if you have to hardcode many conditional statements (e.g. if…else).

After setting up some basic commands, it’s time to test the code. For now, you can try to build a very basic login form in a window.

The major flexibility of this idea is that it can be implemented for game development, websites, and mobile apps. Even in different programming languages.

2- AI Betting Bot

Image for post
Tennis Match — Photo by Moises Alex on Unsplash

Betting is an activity where people predict an outcome and if they are right then they receive a reward in return. Now, there are many technological advances that happened in Artificial Intelligence or Machine Learning in the past few years.

For example, you might have heard about programs like AlphaGo Master , AlphaGo Zero , and AlphaZero that can play Go (game) better than any professional human player. You can even get the source code of a similar program called Leela Zero.

The point I want to convey is that AI is getting smarter than us. Meaning that it can predict something better by taking into account all the possibilities and learn from past experiences.

Let’s apply some supervised learning concepts in Python to create an AI Betting Bot. Here are some libraries you need to get started.

At first, you need to select a game (e.g. tennis, football, etc.) for predicting the results. Now search for historical match results data that can be used to train the model.

For example, the data of tennis matches can be downloaded in .csv format from tennis-data.co.uk website .

In case you are not familiar with betting, here’s how it works.

  • You want to bet $10 on Roger Federer with an odd of 1.3.
  • If he wins, you will receive $10 (actual amount), plus $3 (profit).
  • If he loses, you will lose your money (e.g. $10) too.

After training the model, we have to compute the Confidence Level for each prediction, find out the performance of our bot by checking how many times the prediction was right, and finally also keep an eye on Return On Investment (ROI).

Download a similar open-source AI Betting Bot Project by Edouard Thomas.

3- Trading Bot

Image for post
Trading — Photo by Nick Chong on Unsplash

Trading Bot is very similar to the previous project because it also requires AI for prediction.

Now the question is whether an AI can correctly predict the fluctuation of stock prices?

And, the answer is Yes.

Before getting started, we need some data to develop a trading bot.

These resources from Investopedia might help in training the bot.

After reading both of these articles, you will now have a better understanding of when to buy stocks and when not. This knowledge can easily be transformed into a Python program that automatically makes the decision for us.

You can also take reference from this open-source trading bot called freqtrade . It is built using Python and implements several machine learning algorithms.

4- Iron Man Jarvis (AI based Virtual Assistant)

Image for post
AI Assistant Interface — Photo by Joshua Sortino on Unsplash

This idea is taken from the Hollywood movie series Iron Man. The movie revolves around technology, robots, and AI.

Here, the Iron Man has built a virtual assistant for himself using artificial intelligence. The program is known as Jarvis that helps Iron Man in everyday tasks.

Iron Man gives instructions to Jarvis using simple English language and Jarvis responds in English too. It means that our program will need speech recognition as well as text-to-speech functionalities.

I would recommend using these libraries:

For now, you can hardcode the speech commands like:

You can also use Jarvis for tons of other tasks like:

  • Set alarm on mobile.
  • Continuously check the home security camera and inform in case someone is waiting outside. You can add more features like face detection and recognition. It helps you find out who or how many people are there.
  • Open/Close room windows.
  • Turn on/off lights.
  • Automatically respond to emails.
  • Schedule tasks.

Even the founder of Facebook, “Mark Zuckerberg” has built a Jarvis as a side-project.

5- Monitor a Website to Get Informed About an Upcoming Concert of Artist

Image for post
Tickets — Photo by Andy Li on Unsplash

Songkick is a very popular service that provides information about upcoming concerts. Its API can be used to search for upcoming concerts by:

  • Artist
  • Location
  • Venue
  • Date and Time

You can create a Python script that keeps checking a specific concert daily using Songkick’s API. At last, send an email to yourself whenever the concert is available.

Sometimes Songkick even displays buy tickets link on their website. But, this link could go to a different website for different concerts. It means that it is very difficult to automatically purchase tickets even if we make use of web scraping.

Rather, we can simply display the buy tickets link as it is in our application for manual action.

6- Automatically Renew Free Let’s Encrypt SSL Certificates

Image for post
Let’s Encrypt Logo — https://letsencrypt.org/

Let’s Encrypt is a certificate authority that offers free SSL certificates. But, the issue is that this certificate is only valid for 90 days. After 90 days, you have to renew it.

In my opinion, this is a great scenario for automation using Python. We can write some code that automatically renews a website SSL certificate before expiring.

Check out this code on GitHub for inspiration.

7- Recognize Individuals in Crowd

Image for post
Face Recognition — Image by the Author

These days, governments had installed surveillance cameras in public places to increase the security of their citizens. Most of these cameras are merely to record video and then the forensic experts have to manually recognize or trace the individual.

What if we create a Python program that recognizes each person in camera in real-time. First of all, we need access to a national ID card database, which we probably don’t have.

So, an easy option is to create a database with your family members’ records.

You can then use a Face Recognition library and connect it with the output of the camera.

8- Contact Tracing

Image for post
Contact Tracing App — Photo by Markus Winkler on Unsplash

Contact Tracing is a way to identify all those people that come into contact with each other during a specific time period. It is mostly useful in a pandemic like COVID-19 or HIV. Because without any data about who is infected we can’t stop its spread.

Python can be used with a machine learning algorithm called DBSCAN (Density-Based Spatial Clustering of Applications with Noise) for contact tracing.

As this is just a side-project, so we don’t have access to any official data. For now, it is better to generate some realistic test data using Mockaroo.

You may have a look at this article for specific code implementation.

9- Automatically Move Files From One Folder to Another

Image for post
Nautilus File Manager in Ubuntu — Image by the Author

This is a very basic Python program that keeps monitoring a folder. Whenever a file is added in that folder it checks its type and moves it to a specific folder accordingly.

For example, we can track our downloads folder. Now, when a new file is downloaded, then it will automatically be moved in another folder according to its type.

.exe files are most probably software setups, so move them inside the “software” folder. Whereas, moving images (png, jpg, gif) inside the “images” folder.

This way we can organize different types of files for quick access.

10- Gather Career Path Videos From YouTube

Image for post
YouTube Homepage — Photo by Kon Karampelas on Unsplash

Create an application that accepts the names of skills that we need to learn for a career.

For example, to become a web developer, we need to learn:

  • HTML5
  • CSS3
  • JavaScript
  • Backend language (PHP, Node.js, Python, ASP.NET, or Java)
  • Bootstrap 4
  • WordPress
  • Backend Framework (Laravel, Codeigniter, Django, Flask, etc.)
  • etc.

After entering the skills, there will be a “Generate Career Path” button. It instructs our program to search YouTube and select relevant videos/playlists according to each skill. In case there are many similar videos for skill then it will select the one with the most views, comments, likes, etc.

The program then groups these videos according to skills and display their thumbnail, title, and link in the GUI.

It will also analyze the duration of each video, aggregate them, and then inform us about how much time it will take to learn this career path.

Now, as a user, we can watch these videos which are ordered in a step by step manner to become a master in this career.

Conclusion

Challenging yourself with unique programming projects keeps you active, enhance your skills, and helps you explore new possibilities.

Some of the project ideas I mentioned above can also be used as your Final Year Project.

It’s time to show your creativity with Python programming language and turn these ideas into something you will proud of.

Thanks for reading!

7 가지 멋진 명령 줄 도구

익숙한 도구와 아직 시도하지 않은 도구

8 월 24 일 · 6최소 읽기
Image for post
~의 사진맥스웰 넬슨의 위에Unsplash.

터미널 / 명령 줄은 개발자가 벨트 아래에있는 신성한 도구입니다. 프로그래머에게 가장 많이 사용되는 도구입니다. 나는 그것이 얼마나 가볍고 당신이 그것으로 할 수있는 믿을 수없는 양 때문이라고 믿는다. 일부 개발자는 터미널 내부에서 모든 작업을 수행하기 위해 추가 작업을 수행하기도합니다. 그들에 대한 명성.

개인적으로 훌륭하다고 생각하고 매일 거의 사용하는 CLI (Command-Line Interface) 도구를 몇 가지 보여 드리겠습니다. 물론, 명령 줄을위한 도구가 너무 많아이 목록이 표면을 거의 긁지 않습니다.

1. 정력

포함되지 않는 터미널 목록의 종류정력? 여부에 대한 수많은 논쟁이 있습니다.정력이다그만큼 프로그래밍을위한 편집자이거나 미치광이를 위해 고안된 도구라면 여기에서 논의하지 않겠습니다.

익숙하지 않은 분들을 위해정력, 기본적으로 향상되는 텍스트 편집기입니다.vi모든 UNIX 시스템과 함께 제공되는 도구입니다. 터미널을 통해 파일을 편집하거나 만들 수 있습니다.

Image for post
vim의 기본 사용법.

이 도구는 터미널에있는 동안 신속하게 파일을 편집하고 IDE 또는 VSCode 또는 Sublime Text와 같은 GUI 텍스트 편집기를 열지 않으려는 경우에 유용합니다.

많은 단축키가 현대의 텍스트 편집기만큼 직관적이지 않기 때문에이 도구는 처음 학습 할 때 사용하기가 조금 까다로울 수 있습니다. 그러나 학습에 시간을 투자한다면정력, 개발자에게 매우 강력 할 수 있습니다. 이는 이유정력거대한 커뮤니티가 있습니다. 이 커뮤니티는 규모가 너무 커서 개발자가 인기있는 IDE 및 텍스트 편집 기용 플러그인을 만들어정력경험.

2. vtop

상단시스템이 실행중인 프로세스에 대한 정보와 시스템의 메모리 및 CPU 사용량에 대한 일반 정보를 표시하기 위해 터미널 내에서 사용되는 매우 일반적인 명령입니다. 사용한 적이 있다면상단,보기에는 약간 혼란 스러울 수 있습니다. 그렇다면이 정보를 좀 더 쉽게 처리 할 수있는 방법은 무엇입니까? 소개vtop, 구현상단그래프가 있습니다!

Image for post
행동하는 vtop.

나는 모든 것에 대한 시각적 가이드가 있고상단정보는 살인자입니다. 시스템 부하를 주시 할 수 있도록 하루 종일이 작업을 실행합니다.

당신은 필요합니다npm이 도구를 위해.

3. fzf

다음은 정말 멋진 도구입니다. 라고 불린다fzf. 입력 한 내용에 따라 파일을 찾을 수있는 범용 명령 줄 퍼지 파인더입니다. 그 자체로는 OK 도구입니다. 현재 디렉토리에있는 모든 다른 파일을 나열합니다. Spotlight 검색이라고 생각할 수 있지만 터미널에 있습니다.

Image for post
내 집에서 퍼지 찾기.

이제이 도구의 진정한 힘은fzf같은 다른 기존 명령과 함께죽임또는고양이. 이렇게하려면 패키지와 함께 제공되거나 저장소 내부에서 제공되는 설치 스크립트를 실행해야합니다.

/usr/local/opt/fzf/installor~/.fzf/install

터미널을 다시 시작하거나출처너의.bashrc. 몇 가지 질문을하고 모든 질문에 답하면 잠금이 해제됩니다.fzf의 최대 잠재력.

이제 다음과 같은 명령을 실행할 수 있습니다.

cat **[TAB]
vim **[TAB]
ssh **[TAB]

fzf다음 명령으로 작동 할 수있는 가능한 모든 항목을 찾습니다.

Image for post
IDE를 찾는 파일과 유사합니다.

이것의 또 다른 멋진 응용 프로그램은죽임명령. 이것은 아마도 내가 가장 많이 사용하는 것입니다. 타이핑의 시대ps -ef | grep [프로세스 이름]죽일 프로세스 ID를 수동으로 입력하거나 복사하는 것은 오래 전부터 사라졌습니다. 대신 실행할 수 있습니다.죽이기 [탭]또는kill -9 [탭]. 죽이려는 프로세스를 퍼지 찾고 Enter를 누르십시오. 프로세스 ID가 자동으로 채워집니다.

Image for post
멋진 사용 사례.

제가 살펴볼 수있는 다른 사용 사례가 많이 있지만 이것이 제가 지적하고 싶은 주요 사용 사례입니다.

4. 쓰레기 CLI

이제까지rm -rf영구적으로 삭제하고 싶은 것이 아님을 즉시 깨달으셨습니까? 나는 이것이 나만이 아니기를 바랍니다. 그런 종류의 불안감에 대처하고 싶지 않다면쓰레기 CLI.

이 도구는 기본적으로 항목을 존재에서 완전히 지우는 대신 시스템의 휴지통에 넣습니다.

Image for post
파일을 망각 대신 휴지통으로 이동합니다.

입력하는 대신폐물, 내 별칭이 있습니다..bashrc그 대체rm명령:

alias rm=trash

이제 무언가를 사용하여 삭제하면rm, 영원히 사라지는 것에 대해 걱정할 필요가 없습니다. 원하는 경우 휴지통에서 간단히 검색 할 수 있습니다. 그리고 예, 이것은 다른 플래그와 함께 작동합니다.rm제공합니다.

5. 속도 테스트

이것은 매우 간단합니다. Chrome을 열지 않고도 인터넷 속도를 확인하려면속도 테스트당신을위한 것입니다.

Image for post
내 모든 끔찍한 속도를 보여주지는 않습니다. 당신은 아이디어를 얻습니다.

이것은 제가 자주 사용하는 도구이며 Chrome에서 추가 리소스를 씹을 필요가 없도록 뒷주머니에 항상 넣고 싶습니다. 또한 터미널에서하는 것도 꽤 멋지다.

당신은 필요합니다npm이 도구를 위해.

6. 위킷

이것은 훨씬 작은 저장소이며 나는 그것을 좋아합니다. iTerm2를 통해 하루 종일 터미널을 열어 두었 기 때문에 Wikipedia를 검색 할 수 있다는 것은 대단합니다.위킷터미널에서 할 수 있습니다. 내가 매일 이것을 얼마나 자주 사용하는지에 놀라실 것입니다.

Image for post
Apple을 검색하려면 "wikit apple company".

당신은 필요합니다npm이 도구를 위해.

7. 코인 탑

이 마지막은 모든 사람을위한 것은 아니지만 매일 사용합니다. 암호 화폐 세계에있는 분들은이 도구에 대해 이미 알고있을 것입니다.

저는 여기저기서 암호 화폐를 다루고 있으며 가격은 말할 것도없고 다양한 종류의 동전을 따라가는 것은 지칠 수 있습니다. 암호 화폐 세계에서 가격이 너무 빨리 움직이면서코인 탑생명의 은인입니다.

코인 탑에 연극이다상단명령. 그러나 시스템 정보를 표시하는 대신코인 탑암호 화폐에 대한 정보를 표시합니다.

Image for post
스턴 크

결론

매일 사용하는 CLI 도구가 훨씬 더 많지만이 도구는 내 툴킷에서 눈에 띄는 도구입니다. CLI 도구에 대해 영원히 갈 수 있습니다. 소프트웨어 세계에서 제가 가장 좋아하는 것들 중 하나입니다. 아주 사소한 작업을 수행 할 수있는 새로운 CLI 도구를 찾을 때마다 항상 흥분됩니다.

또한 이러한 도구의 대부분이 커뮤니티 기반이라는 사실이 마음에 듭니다. 많은 개발자들이 깔끔하다고 생각하기 때문에 작은 도구를 작업하고 있습니다.

다음 시간에서 만나요!

7 Awesome Command-Line Tools

Some familiar tools and some you probably haven’t tried yet

Aug 24 · 6 min read
Image for post
Photo by Maxwell Nelson on Unsplash.

The terminal/command line is a sacred tool that developers have under their belt. It is possibly the most used tool for programmers. I believe that is because of how lightweight it is and also the unbelievable amount of things you can do with it. Some developers even go the extra mile to do everything inside of the terminal. Kudos to them.

I’ll be showing some of the CLI (Command-Line Interface) tools that I personally think are awesome and use pretty much on a daily basis. Granted, there are so many tools out there for the command line that this list barely scratches the surface.

1. vim

What kind of terminal list wouldn’t include vim? There are tons of debates about whether or not vim is the editor for programming or if it’s a tool invented for lunatics, but we will not be discussing that here.

For those of you who are not familiar with vim, it is a text editor that improves on the out-of-the-box vi tool shipped with any UNIX system. It allows you to edit or create a file through your terminal.

Image for post
Basic usage of vim.

This tool is helpful if you want to quickly edit a file while you are in the terminal and don’t want to open up your IDE or a GUI text editor like VSCode or Sublime Text.

Keep in mind that this tool can be a little tricky to use when first learning it, as many of the shortcuts are not as intuitive as modern-day text editors. However, if you do invest the time to learn vim, it can be extremely powerful for a developer. This is why vim has a huge community. This community is so large that developers will even make plug-ins for popular IDEs and text editors to emulate the vim experience.

2. vtop

top is a very common command that is used within the terminal to display information about processes that your system has running and general information about the memory and CPU usage of your machine. If you have ever used top, it can be a little confusing to look at. So how can we make this information a little easier to process? Introducing vtop, an implementation of top that has graphs!

Image for post
vtop in action.

I like having a visual guide for anything, and having one for top information is killer. I have this running all day so that I can keep an eye on my system’s load.

You’re going to need npm for this tool.

3. fzf

This next one is a really cool tool. It’s called fzf. It’s a general-purpose command-line fuzzy finder that allows you to find files based on whatever you type. On its own, it’s an OK tool. It will list all the different files in the current directory you’re in. You can think of it as a Spotlight search, but in your terminal.

Image for post
Fuzzy-finding in my home.

Now the real power of this tool comes when you combine fzf with other existing commands like kill or cat. In order to do this, you’re going to need to run the install script that is provided with the package or inside the repository:

/usr/local/opt/fzf/installor~/.fzf/install

You will need to restart your terminal or source your .bashrc. It will ask you some questions, and once you’ve answered all of them, you will have unlocked fzf's fullest potential.

Now you can run commands like:

cat **[TAB]
vim **[TAB]
ssh **[TAB]

fzf will kick into gear and find all the possible entries that can work with the command:

Image for post
Similar to file finding an IDE.

Another cool application of this is using it with the kill command. This is probably the one I use most. The days of typing ps -ef | grep [process-name] and then either manually typing or copying the process ID to kill are long gone. Instead, you can run kill [tab] or kill -9 [tab]. Fuzzy-find the process you want to kill and press enter. It will automatically fill the process ID in for you.

Image for post
Awesome use case.

There are tons of other use cases that I can go over, but these are the main ones I would like to point out.

4. trash-cli

Ever rm -rf something and immediately realize that it wasn’t something you wanted to delete forever? I hope this isn't just me. If you don’t want to deal with that kind of anxiety, then I would recommend using trash-cli.

This tool basically just puts items inside your system’s trash instead of wiping it completely from existence.

Image for post
Moves files into the trash instead of oblivion.

Instead of typing out trash, I have an alias in my .bashrc that replaces the rm command:

alias rm=trash

Now when something is deleted using rm, you don’t have to worry about it being gone forever. You can simply retrieve it from the trash if you like. And yes, this works with different flags that rm provides.

5. speed-test

This one is pretty straightforward. If you want to see how fast your internet is without having to open up Chrome, speed-test is for you.

Image for post
I’m not showing you all my horrible speeds. You get the idea.

This is a tool I use quite frequently and always like to have in my back pocket just so that I don’t have to chew up additional resources from Chrome. Also, it’s pretty cool to do it in the terminal.

You’re going to need npm for this tool.

6. wikit

This one is a much smaller repo, and I love it. I have my terminal open all day via iTerm2, so being able to search Wikipedia is awesome. wikit allows you to do that from the terminal. You’d be surprised by how often I use this one on a day-to-day basis.

Image for post
“wikit apple company” if you want to search Apple.

You’re going to need npm for this tool.

7. cointop

This last one might not be for everyone, but I use it every day. For those of you who are in the crypto world, then you probably already know about this tool.

I dabble in cryptocurrency here and there, and keeping up with so many different types of coins — let alone their prices — can be exhausting. With prices moving so quickly in the crypto world, cointop is a lifesaver.

cointop is a play on the top command. However, instead of displaying system information, cointop displays information about cryptocurrencies.

Image for post
stonks

Conclusion

There are so many more CLI tools that I use on a day-to-day basis, but these are the ones that stand out to me in my toolkit. I can go on forever about CLI tools. They are one of my favorite things to tinker with in the world of software. I always get excited whenever I find a new CLI tool that allows me to accomplish something so minuscule.

I also love the fact that most of these tools are community-driven — a bunch of developers just working on a small tool because they think they’re neat.

I’ll see you all in the next one!

이 4 가지하지 말아야 할 사항으로 Python Lambda 함수 마스터

람다를 사용하되 오용하지 마십시오.

9 월 25 일 · 최소 읽기
Narrow stairs leading to a beach on a sunny day.
~의 사진카칙 시모니 안의 위에Unsplash.

Lambda 함수는 Python의 익명 함수입니다. 소규모 작업을 수행해야 할 때 로컬 환경에서 사용하면 편리한 기술입니다. 어떤 사람들은 단순히 람다라고 부르며 다음 구문을 사용합니다.

lambda arguments: expression

람다 함수의 생성은람다키워드 다음에 인수 목록과 콜론으로 구분 된 단일 표현식이옵니다. 예를 들어람다 x : 2 * x단순히 입력 된 숫자에 2를 곱하는 반면람다 x, y : x + y단순히 두 숫자의 합을 계산합니다. 구문은 매우 간단합니다. 그렇죠?

람다 함수가 무엇인지 알고 있다는 가정하에이 문서는 람다 함수를 올바르게 사용하는 방법에 대한 몇 가지 일반적인 지침을 제공하기위한 것입니다.

1. 값을 반환하지 마십시오

구문을 살펴보면 람다 함수에 대해 아무것도 반환하지 않는 것을 알 수 있습니다. 람다 함수는 하나의 표현식 만 포함 할 수 있기 때문입니다. 그러나 사용반환keyword는 아래와 같이 필수 구문과 호환되지 않는 명령문을 구성합니다.

람다로 돌아 오지 않음

이 실수는 아마도 표현과 진술을 구별 할 수 없기 때문에 발생합니다. 다음과 같은 진술반환,시험,, 및만약특정 작업을 수행합니다. 그러나 표현식은 숫자 또는 기타 Python 객체와 같은 단일 값으로 평가할 수있는 표현식입니다.

람다 함수를 사용하면 단일 표현식은 다음에 사용되는 단일 값을 평가합니다.분류함수.

2. 더 나은 대안을 잊지 마세요

가장 일반적인 사용 사례 중 하나는 람다 함수를다음과 같은 일부 내장 유틸리티 함수의 인수정렬 됨 ()max (), 위에 표시된대로. 상황에 따라 다른 대안을 사용할 수 있습니다. 다음 예를 고려하십시오.

내장 기능 사용

데이터 과학에서 많은 사람들이판다데이터를 처리하는 라이브러리. 람다 함수를 사용하여 기존 데이터에서 새 데이터를 만들 수 있습니다.지도()기능, 아래와 같이. 람다 함수를 사용하는 대신 Pandas에서 지원되기 때문에 산술 함수를 직접 사용할 수 있습니다.

시리즈의 Lambda 함수

3. 변수에 할당하지 마십시오

일부 사람들은 람다 함수가 간단한 함수를 선언하는 다른 방법이라고 잘못 생각하는 것을 보았으며 사람들이 다음을 수행하는 것을 보았을 것입니다.

람다 함수 이름 지정

람다 함수 이름 지정의 유일한 용도는 아마도 람다 함수가 실제로 다른 함수와 마찬가지로 호출되고 함수 유형을 갖는 함수임을 보여주기위한 교육 목적 일 것입니다. 그 외에는 람다 함수를 변수에 할당하면 안됩니다.

람다 함수 이름 지정의 문제점은 디버깅이 덜 간단하다는 것입니다. 일반 기능을 사용하여 생성되는 다른 기능과 달리데프키워드, 람다 함수에는 이름이 없으므로 익명 함수라고도합니다. 이 뉘앙스를 확인하려면 다음과 같은 간단한 예를 고려하십시오.

람다 함수 디버깅
  • 코드에 람다 함수에 문제가있는 경우 (예 :inversive0),역 추적오류 정보는 람다 함수에 버그가 있음을 알려줄 수 있습니다.
  • 반대로 정기적으로 정의 된 함수를 사용하면역 추적문제가있는 기능 (예 :inversive1).

이와 관련하여 람다 함수를 두 번 이상 사용하려는 유혹이있는 경우 가장 좋은 방법은 다음을 사용하여 일반 함수를 사용하는 것입니다.데프이 키워드는 독 스트링을 가질 수도 있습니다.

4. 목록 이해를 잊지 마세요

어떤 사람들은 다음과 같은 고차 함수와 함께 람다 함수를 사용하기를 좋아합니다.지도또는필터. 이 사용법에 대한 다음 예를 고려하십시오.

지도 및 필터 기능

람다 함수를 사용하는 대신 가독성이 더 좋은 목록 이해를 사용할 수 있습니다. 아래와 같이 목록 이해력을 사용하여 동일한 목록 개체를 만듭니다. 보시다시피 이전 사용지도필터람다 함수가있는 함수는 목록 이해에 비해 더 복잡합니다. 따라서 고차 함수를 포함하는 목록을 만들 때 목록 이해력 사용을 고려해야합니다.

목록 이해

결론

이 기사에서는 누군가가 람다 함수로 할 수있는 4 가지 일반적인 실수를 검토했습니다. 이러한 실수를 피하면 코드에서 람다 함수를 올바르게 사용할 수 있습니다.

람다 함수를 사용하는 경험 법칙은 단순하게 유지하고 로컬에서 한 번만 사용하는 것입니다.

Master Python Lambda Functions With These 4 Don’ts

Use lambdas, but don’t misuse them

Sep 25 · 3 min read
Narrow stairs leading to a beach on a sunny day.
Photo by Khachik Simonian on Unsplash.

Lambda functions are anonymous functions in Python. Using them is a handy technique in a local environment when you need to perform a small job. Some people simply refer to them as lambdas, and they have the following syntax:

lambda arguments: expression

The creation of a lambda function is signaled by the lambda keyword, followed by the list of arguments and a single expression separated by a colon. For instance, lambda x: 2 * x simply multiplies any input number by two, while lambda x, y: x+y simply calculates the sum of two numbers. The syntax is pretty straightforward, right?

With the assumption that you know what a lambda function is, this article is intended to provide some general guidelines on how to use lambda functions properly.

1. Don’t Return Any Value

Looking at the syntax, you may notice that we don’t return anything for the lambda function. It’s all because lambda functions can only contain a single expression. However, the use of the return keyword will constitute a statement that is incompatible with the required syntax, as shown below:

No return in lambda

This mistake probably arises due to the inability to differentiate expressions from statements. Statements like those involving return, try, with, and if perform particular actions. However, expressions are those that can be evaluated to a single value, such as a number or other Python objects.

With lambda functions, the single expression will evaluate a single value that is used subsequently, such as being sorted by the sorted function.

2. Don’t Forget About Better Alternatives

One of the most common use cases is to set a lambda function to the key argument of some built-in utility functions, such as sorted() and max(), as shown above. Depending on the situation, we can use other alternatives. Consider the following examples:

Use of built-in functions

In data science, many people use the pandas library to process data. We can use the lambda function to create new data from existing data using the map() function, as shown below. Instead of using a lambda function, we can simply use the arithmetic function directly because it’s supported in pandas:

Lambda function in series

3. Don’t Assign It to a Variable

I’ve seen some people mistakenly think that a lambda function is an alternative way to declare a simple function, and you may have seen people do the following:

Name lambda function

The only use of naming a lambda function is probably for teaching purposes to show that a lambda function is indeed a function just like other functions — to be called and having a type of function. Other than that, we shouldn’t assign a lambda function to a variable.

The problem with naming a lambda function is that it makes debugging less straightforward. Unlike other functions that are created using the regular def keyword, lambda functions don’t have names, which is why they’re sometimes referred to as anonymous functions. Consider the following trivial example to see this nuance:

Debugging of lambda functions
  • When your code has problems with a lambda function (i.e. inversive0), the Traceback error information can only tell you that a lambda function has bugs.
  • By contrast, with a regularly defined function, the Traceback will clearly inform you of the problematic function (i.e. inversive1).

Related to this, if you have the temptation to use a lambda function more than once, the best practice is to use a regular function using the def keyword, which will also allow you to have docstrings.

4. Don’t Forget About List Comprehension

Some people like to use lambda functions with higher-order functions, such as map or filter. Consider the following example for this usage:

The map and filter functions

Instead of using the lambda function, we can use list comprehension, which has better readability. As shown below, we use list comprehension to create the same list objects. As you can see, the previous usage of map and filter functions with lambda functions is more cumbersome compared to list comprehension. So you should consider using list comprehension when you’re creating lists involving higher-order functions.

List comprehension

Conclusion

In this article, we reviewed four common mistakes that someone may make with lambda functions. By avoiding these mistakes, you should be able to use lambda functions properly in your code.

The rule of thumb for using lambda functions is to keep it simple and use them just once locally.

하나의 추가 문자로 Python 코드 작성 방식 변경

작은 구문 변경 하나, 코딩 기술을위한 하나의 큰 단계

5 월 23 일 · 최소 읽기
Image for post
~의 사진안젤리나 키추 코바의 위에Unsplash

구문 언어

공 구르기

별표는 어디에 있습니까?

Image for post
~의 사진이바나 카지나의 위에Unsplash
포장 풀기의 힘

다른 사람의 코드를 위반하지 마십시오

Image for post
~의 사진다니엘 타 피오르의 위에Unsplash

Args, Kwargs

작업 코드와 깨는 코드

요약하면

Change The Way You Write Python Code With One Extra Character

one small syntax change, one giant step for your coding skills

May 23 · 3 min read
Image for post
Photo by Angelina Kichukova on Unsplash

The Syntax Language

Getting the ball rolling

Where Does the Astrix do?

Image for post
Photo by Ivana Cajina on Unsplash
The Power Of Unpacking

Don’t Break Someone Else’s Code

Image for post
Photo by Daniel Tafjord on Unsplash

Args, Kwargs

working code and breaking code

Sum Up

Python을 사용한 데이터 전처리

데이터를 이해하기 쉽게 만들기

Image for post
~의 사진루크 체서의 위에Unsplash

고품질 데이터가 더 나은 예측으로 이어진다는 사실을 고려할 때 데이터 전처리는 데이터 과학 및 기계 학습의 기본 단계가되었습니다. 데이터 처리의 중요성에 대해 이야기하고 다양한 접근 방식을 순서대로 논의합니다.

데이터 전처리 란?

원시 데이터를 이해할 수있는 형식으로 변환하는 기술입니다. 실제 데이터 (원시 데이터)는 항상 불완전하며 특정 오류가 발생할 수 있으므로 모델을 통해 데이터를 전송할 수 없습니다. 이것이 모델을 통해 데이터를 보내기 전에 데이터를 전처리해야하는 이유입니다.

내가 따라온 단계는 다음과 같습니다.

  1. 라이브러리 가져 오기
  2. 데이터 세트 읽기
  3. 데이터 세트를 독립 및 종속으로 분할
  4. 결 측값 처리
  5. 범주 형 값 처리
  6. 표준화 / 기능 확장

1 단계 : 라이브러리 가져 오기

첫 번째 단계는 일반적으로 프로그램에 필요한 라이브러리를 가져 오는 것입니다. 라이브러리는 기본적으로 호출 및 사용할 수있는 모듈 모음입니다. 여기서 우리는

판다: 데이터 조작 및 데이터 분석을 위해 팬더를 사용합니다.
Numpy: Python을 사용한 과학 컴퓨팅을위한 기본 패키지입니다.

2 단계 : 데이터 세트 가져 오기

대부분의 데이터 세트는 .csv (쉼표로 구분 된 값) 형식으로 제공됩니다. 데이터 세트를 프로그램과 동일한 폴더에 보관하고 다음과 같은 방법을 사용하여 읽는 것이 중요합니다.read_csv라이브러리에서 찾을 수 있습니다.판다.

3 단계 : 데이터를 독립 및 종속 기능으로 분할

독립 변수 (X)와 종속 변수 (Y)를 만들어 데이터 세트에 특성 행렬을 만들겠습니다. 열을 읽으려면 다음을 사용합니다.iloc판다[행 선택, 열 선택]이라는 두 개의 매개 변수를 사용합니다.

: 매개 변수로 데이터의 모든 행을 선택합니다. 열의 경우 마지막 열을 제외한 모든 열이 선택됨을 의미하는 -1이 있습니다.

Image for post
~의 사진미리 암 제시어의 위에Unsplash

4 단계 : 결 측값 처리

때때로 우리는 데이터 세트에서 일부 데이터가 누락 된 것을 발견합니다. 누락 된 값은 성능 매트릭스 및 예측의 품질을 저하 시키므로 신중하게 처리해야합니다. 어떤 모델도 이러한 NULL 또는 NaN 값을 자체적으로 처리 할 수 ​​없으므로 처리해야합니다. 먼저 데이터 세트에 null 값이 있는지 여부를 확인해야합니다. isnull () 메소드를 사용하여이를 수행 할 수 있습니다.

누락 된 값을 처리하는 방법에 대한 올바른 결정을 내리면 강력한 데이터 모델이 생성되므로 분석가가 직면 한 가장 큰 문제 중 하나입니다. 결 측값을 대치하는 다양한 방법을 살펴 보겠습니다.

행 삭제

가장 일반적으로 사용되는 방법입니다. null 값이있는 행과 누락 된 값의 60 % 이상이있는 경우 특정 열을 삭제합니다. 이 방법은 해당 열이 해당 특성이 모델 예측에 대해 덜 중요하거나 중요하지 않은 모델의 예측에 영향을 미치지 않는 경우에만 사용됩니다.

평균 / 중앙값 / 모드로 바꾸기

이 방법은 수치 데이터로 구성된 기능에 적용 할 수 있습니다. 특성의 평균, 중앙값 또는 최빈값을 계산하고이를 누락 된 값으로 바꿀 수 있습니다. 이 방법은 행과 열을 제거하는 것에 비해 더 나은 결과를 제공합니다.

범주 형 데이터 처리

때때로 우리의 데이터는 텍스트 형식입니다. 텍스트 형식으로 카테고리를 찾을 수 있습니다. 모델이 수학 방정식과 계산을 기반으로하기 때문에 기계가 텍스트를 이해하고 처리하는 것은 복잡해집니다. 따라서 데이터를 숫자로 인코딩해야합니다.

이를 위해 우리는scikit-learn의 LabelEncoder작업에 사용할.해당 클래스의 객체를 생성합니다. 객체 labelencoder_X를 호출합니다.fit_transformLabelEncoder 클래스의 메서드가 도움이 될 것입니다.

이제 텍스트가 숫자로 대체되었습니다. 카테고리가 세 개 이상인 경우 다른 카테고리에 정수를 계속 할당하여 혼란을 유발합니다. 4 개의 범주가 있고 첫 번째 범주에 0을 할당하고 마지막 범주에 3을 할당한다고 가정합니다. 그러나 1은 0보다 크고 3은 1보다 크기 때문에 모델의 방정식은 3이 0보다 우선 순위가 가장 높다고 생각합니다. 이 문제를 해결하기 위해 n 개의 범주에 대해 n 개의 열이있는 더미 변수를 사용합니다.OneHotEncoder.

우리는 다른 클래스를 가져올 것입니다scikit의 OneHotEncoder가 학습합니다.우리는 해당 클래스의 객체를 생성하고 열의 인덱스 값을 취하고 OneHotEncoding에도 fit_transform ()을 사용하는 categorical_features라는 매개 변수를 고려할 것입니다.

ColumnTransformer를 사용하면 입력을 별도로 변환하고 생성 된 기능을 연결하여 단일 공간을 형성 할 수 있습니다. 이기종 데이터 변환에 유용합니다.

기능 확장

독립 변수의 값을 표준화하는 데 사용됩니다. 변수의 범위를 제한하여 쉽게 비교할 수 있도록하는 방법입니다.

왜 필요한가요?

대부분의 기계 학습 모델은 유클리드 거리를 기반으로합니다. 훨씬 큰 값에 비해 낮은 값의 제곱 차이는 거의 존재하지 않는 것처럼 처리됩니다. 우리는 그런 일이 일어나기를 원하지 않습니다. 그렇기 때문에 모든 변수를 동일한 척도로 변환해야합니다.

대부분의 기계 학습 모델은 유클리드 거리를 기반으로합니다. (x2-x1)의 제곱근 값이 (y2-y1)보다 크면 (y2-y1)은 무시됩니다. 우리는 이런 일이 일어나기를 원하지 않습니다. 그렇기 때문에 모든 변수를 동일한 척도로 변환해야합니다. 이를 수행 할 수있는 두 가지 방법이 있습니다.

표준화

정규화를 통해 0.0에서 1.0 사이의 특성 값을 조정합니다.

Image for post

표준화

평균이 0이고 표준 편차가 1이되도록 특성을 확장합니다.

Image for post

scikit 전처리 라이브러리에서 StandardScaler를 가져 와서 해당 클래스의 객체를 만들어야합니다.

이제 X_train 세트를 맞추고 변형 할 때입니다. 훈련 및 테스트 세트에 표준 스케일러를 적용 할 때. 훈련 세트에만 맞추고 변환해야합니다. 테스트 세트의 경우 변환해야합니다. 테스트 세트에 맞출 필요가 없습니다. 이렇게하면 모든 값이 표준화 된 척도로 변환됩니다.

제 기사를 읽어 주셔서 감사합니다. 여러분의 의견을 듣게되어 기쁩니다. 최신 기사에 대한 업데이트를 받으려면 Medium에서 저를 팔로우하십시오. 당신은 또한 나와 연결할 수 있습니다Linkedin트위터.Machine Learning 및 Deep Learning에 대한 내 블로그를 확인하십시오.

Data-Preprocessing with Python

Sep 29 · 6 min read

Making data understandable

Considering the fact that high-quality data leads to better predictions, data preprocessing has become a fundamental step in data science and machine learning. We’ll talk about the importance of processing data and discuss different approaches in sequence.

What is Data PreProcessing

It is a technique that transforms raw data into an understandable format. Real-world data(raw data) is always incomplete and that data cannot be sent through models as it would cause certain errors. That is why we need to preprocess data before sending it through a model.

Here are the steps I have followed;

  1. Import libraries
  2. Read the Dataset
  3. Split the dataset into independent and dependent
  4. Handling missing values
  5. Handling categorical values
  6. Standardization/ Feature Scaling

Step 1: Import Libraries

The first step is usually importing the libraries that will be needed in the program. A library is essentially a collection of modules that can be called and used. Here we will be using

Pandas: We use pandas for data manipulation and data analysis.
Numpy: It is a fundamental package for scientific computing with Python.

Step 2: Import the Dataset

Most of the dataset’s come in .csv(comma-separated value) format. It’s important to keep the dataset in the same folder as your program and read it using a method called read_csv which can be found in the library called pandas.

Step 3: Split the data into independent and dependent features

We will create a matrix of features in our dataset by creating an Independent variable(X) and a dependent variable (Y).To read the columns, we will use iloc of pandas which takes two parameters — [row selection, column selection].

: as a parameter, it selects all rows in the data. For columns, we have -1, which means all the columns will be selected except for the last one.

Image for post
Photo by Myriam Jessier on Unsplash

Step 4: Handling Missing Values

Sometimes we find some data is missing in the dataset. Missing values need to be handled carefully because they reduce the quality of any of our performance matrix and prediction. No model can handle these NULL or NaN values on its own so we need to deal with it. Firstly, we need to check whether we have null values in our dataset or not. We can do that using the isnull() method.

Handling the missing values is one of the greatest challenges faced by analysts because making the right decision on how to handle it generates robust data models. Let us look at different ways of imputing the missing values.

Deleting Rows

This is the most commonly used method. We either delete a row which has null values and a particular column if it has more than 60% of missing values. This method is only used when that column does not affect the model's prediction that is that feature has less significance or no significance for predicting the model.

Replacing With Mean/Median/Mode

This method can be applied to the features which consist of numerical data. We can calculate the mean, median, or mode of the feature and replace it with the missing values. This method gives better results compared to the removal of rows and columns.

Handling Categorical Data

Sometimes our data is in text form. We can find categories in text form. It gets complicated for machines to understand texts and process them since the models are based on mathematical equations and calculations. Therefore we need to encode the data into numbers.

To make this happen we import a library called LabelEncoder from scikit-learn which we will use for the task. We will create an object of that class. We will call our object labelencoder_X. fit_transform method in the LabelEncoder class will help us.

Now, the text has been replaced by numbers, what if there are more than two categories we keep assigning integers to different categories which lead to confusion. Suppose we have four categories and we assign the first category with 0 and the last category with 3. However, since 1 is greater than 0 and 3is greater than 1 the equations in the model we think 3 has the highest priority than 0. In order to resolve this problem, we use dummy variables where we will have n number of columns for n categories for that we make use of OneHotEncoder.

We will import another class called OneHotEncoder from scikit learn. we will create an object of that class and consider a parameter called categorical_features which takes a value of the index of the column and use fit_transform() for OneHotEncoding as well.

ColumnTransformer allows the input to be transformed separately and the features generated are concatenated to form a single space. It is useful for a heterogeneous data transformations

Feature Scaling

It is used to standardize the values of Independent variables. It is a method used to limit the range of variables so that they can be easily compared.

Why is it necessary?

Most of the machine learning models are based on Euclidean distances. The square difference with the lower value in comparison to the far greater value will almost be treated as if it does not exist. We do not want that to happen. That is why it is necessary to transform all our variables into the same scale.

Most of the Machine Learning models are based on Euclidean distances. Consider if the square root value of (x2-x1) is greater than (y2-y1), then (y2-y1) will be neglected. We don’t want this to happen. That is why it is necessary to transform all our variables into the same scale. There are two ways you can do this.

Normalization

With the help of Normalization, we scale the feature values in between 0.0 and 1.0

Image for post

Standardization

It scales features to have a mean of zero and a standard deviation one.

Image for post

we need to import StandardScaler from the scikit preprocessing library and create an object of that class.

It’s time to fit and transform our X_train set. When we apply Standard Scaler to our training and testing sets. We need to fit and transform only to the training set, In case of the test set, we need to transform, no need to fit it to the test set. This will transform all the values to a standardized scale.

Thank you for reading my article. I will be happy to hear your opinions. Follow me on Medium to get updated on my latest articles. You can also connect with me on Linkedin and Twitter. Check out my blogs on Machine Learning and Deep Learning.

+ Recent posts